/*
- * Copyright (c) 1987-2016 by the citadel.org team
+ * Copyright (c) 1987-2018 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3.
char ctdl_etc_dir[PATH_MAX]="";
char ctdl_home_directory[PATH_MAX] = "";
char file_citadel_socket[PATH_MAX]="";
-char file_citadel_config[PATH_MAX]="";
-
char *viewdefs[]={
"Messages",
ctdl_run_dir);
StripSlashes(file_citadel_socket, 0);
- snprintf(file_citadel_config,
- sizeof file_citadel_config,
- "%scitadel.config",
- ctdl_autoetc_dir);
- StripSlashes(file_citadel_config, 0);
-
DBG_PRINT(ctdl_run_dir);
DBG_PRINT(file_citadel_socket);
DBG_PRINT(ctdl_etc_dir);
*/
int CtdlIPCEcho(CtdlIPC *ipc, const char *arg, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!arg) return -2;
*/
int CtdlIPCQuit(CtdlIPC *ipc)
{
- register int ret = 221; /* Default to successful quit */
+ int ret = 221; /* Default to successful quit */
char aaa[SIZ];
CtdlIPC_lock(ipc);
*/
int CtdlIPCLogout(CtdlIPC *ipc)
{
- register int ret;
+ int ret;
char aaa[SIZ];
CtdlIPC_lock(ipc);
*/
int CtdlIPCTryLogin(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!username) return -2;
*/
int CtdlIPCTryPassword(CtdlIPC *ipc, const char *passwd, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!passwd) return -2;
*/
int CtdlIPCTryApopPassword(CtdlIPC *ipc, const char *response, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!response) return -2;
*/
int CtdlIPCCreateUser(CtdlIPC *ipc, const char *username, int selfservice, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!username) return -2;
*/
int CtdlIPCChangePassword(CtdlIPC *ipc, const char *passwd, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!passwd) return -2;
/* floor is -1 for all, or floornum */
int CtdlIPCKnownRooms(CtdlIPC *ipc, enum RoomList which, int floor, struct march **listing, char *cret)
{
- register int ret;
+ int ret;
struct march *march = NULL;
static char *proto[] =
{"LKRA", "LKRN", "LKRO", "LZRM", "LRMS", "LPRM" };
/* Caller must free the struct ctdluser; caller may pass an existing one */
int CtdlIPCGetConfig(CtdlIPC *ipc, struct ctdluser **uret, char *cret)
{
- register int ret;
+ int ret;
if (!cret) return -2;
if (!uret) return -2;
/* RENU */
int CtdlIPCRenameUser(CtdlIPC *ipc, char *oldname, char *newname, char *cret)
{
- register int ret;
+ int ret;
char cmd[256];
if (!oldname) return -2;
int CtdlIPCGotoRoom(CtdlIPC *ipc, const char *room, const char *passwd,
struct ctdlipcroom **rret, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
int CtdlIPCGetMessages(CtdlIPC *ipc, enum MessageList which, int whicharg,
const char *mtemplate, unsigned long **mret, char *cret)
{
- register int ret;
- register unsigned long count = 0;
+ int ret;
+ unsigned long count = 0;
static char *proto[] =
{ "ALL", "OLD", "NEW", "LAST", "FIRST", "GT", "LT" };
char aaa[33];
int CtdlIPCGetSingleMessage(CtdlIPC *ipc, long msgnum, int headers, int as_mime,
struct ctdlipcmessage **mret, char *cret)
{
- register int ret;
+ int ret;
char aaa[SIZ];
char *bbb = NULL;
size_t bbb_len;
safestrncpy(mret[0]->subject, &aaa[5], SIZ);
else if (!strncasecmp(aaa, "rfca=", 5))
safestrncpy(mret[0]->email, &aaa[5], SIZ);
- else if (!strncasecmp(aaa, "hnod=", 5))
- safestrncpy(mret[0]->hnod, &aaa[5], SIZ);
else if (!strncasecmp(aaa, "room=", 5))
safestrncpy(mret[0]->room, &aaa[5], SIZ);
- else if (!strncasecmp(aaa, "node=", 5))
- safestrncpy(mret[0]->node, &aaa[5], SIZ);
else if (!strncasecmp(aaa, "rcpt=", 5))
safestrncpy(mret[0]->recipient, &aaa[5], SIZ);
else if (!strncasecmp(aaa, "wefw=", 5))
/* WHOK */
int CtdlIPCWhoKnowsRoom(CtdlIPC *ipc, char **listing, char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
if (!cret) return -2;
/* INFO */
int CtdlIPCServerInfo(CtdlIPC *ipc, char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
char *listing = NULL;
char buf[SIZ];
/* RDIR */
int CtdlIPCReadDirectory(CtdlIPC *ipc, char **listing, char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
if (!cret) return -2;
*/
int CtdlIPCSetLastRead(CtdlIPC *ipc, long msgnum, char *cret)
{
- register int ret;
+ int ret;
char aaa[64];
if (!cret) return -2;
/* INVT */
int CtdlIPCInviteUserToRoom(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* KICK */
int CtdlIPCKickoutUserFromRoom(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -1;
/* GETR */
int CtdlIPCGetRoomAttributes(CtdlIPC *ipc, struct ctdlroom **qret, char *cret)
{
- register int ret;
+ int ret;
if (!cret) return -2;
if (!qret) return -2;
/* set forget to kick all users out of room */
int CtdlIPCSetRoomAttributes(CtdlIPC *ipc, int forget, struct ctdlroom *qret, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* SETA */
int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* ENT0 */
int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, int *subject_required, struct ctdlipcmessage *mr, char *cret)
{
- register int ret;
+ int ret;
char cmd[SIZ];
char *ptr;
/* MOVE */
int CtdlIPCMoveMessage(CtdlIPC *ipc, int copy, long msgnum, const char *destroom, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
int CtdlIPCCreateRoom(CtdlIPC *ipc, int for_real, const char *roomname, int type,
const char *password, int floor, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* MESG */
int CtdlIPCSystemMessage(CtdlIPC *ipc, const char *message, char **mret, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
size_t bytes;
/* GREG */
int CtdlIPCGetUserRegistration(CtdlIPC *ipc, const char *username, char **rret, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
size_t bytes;
/* VALI */
int CtdlIPCValidateUser(CtdlIPC *ipc, const char *username, int axlevel, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* CHEK */
int CtdlIPCMiscCheck(CtdlIPC *ipc, struct ctdlipcmisc *chek, char *cret)
{
- register int ret;
+ int ret;
if (!cret) return -1;
if (!chek) return -1;
/* DELF */
int CtdlIPCDeleteFile(CtdlIPC *ipc, const char *filename, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* MOVF */
int CtdlIPCMoveFile(CtdlIPC *ipc, const char *filename, const char *destroom, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* RWHO */
int CtdlIPCOnlineUsers(CtdlIPC *ipc, char **listing, time_t *stamp, char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
if (!cret) return -1;
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
time_t last_mod;
char mimetype[SIZ];
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
time_t last_mod;
char filename[SIZ];
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
time_t last_mod;
char mimetype[SIZ];
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret;
+ int ret;
char *aaa;
FILE *uploadFP;
char MimeTestBuf[64];
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret;
+ int ret;
FILE *uploadFP;
char *aaa;
char MimeTestBuf[64];
/* QUSR */
int CtdlIPCQueryUsername(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* CFLR */
int CtdlIPCCreateFloor(CtdlIPC *ipc, int for_real, const char *name, char *cret)
{
- register int ret;
+ int ret;
char aaa[SIZ];
if (!cret) return -2;
/* EFLR */
int CtdlIPCEditFloor(CtdlIPC *ipc, int floornum, const char *floorname, char *cret)
{
- register int ret;
+ int ret;
char aaa[SIZ];
if (!cret) return -2;
int revision, const char *software_name, const char *hostname,
char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (developerid < 0 || clientid < 0 || revision < 0 ||
int CtdlIPCSendInstantMessage(CtdlIPC *ipc, const char *username, const char *text,
char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* RBIO */
int CtdlIPCGetBio(CtdlIPC *ipc, const char *username, char **listing, char *cret)
{
- register int ret;
+ int ret;
size_t bytes;
char *aaa;
int CtdlIPCEnterSystemMessage(CtdlIPC *ipc, const char *filename, const char *text,
char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* HCHG */
int CtdlIPCChangeHostname(CtdlIPC *ipc, const char *hostname, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* RCHG */
int CtdlIPCChangeRoomname(CtdlIPC *ipc, const char *roomname, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* UCHG */
int CtdlIPCChangeUsername(CtdlIPC *ipc, const char *username, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
/* This function returns the actual server time reported, or 0 if error */
time_t CtdlIPCServerTime(CtdlIPC *ipc, char *cret)
{
- register time_t tret;
- register int ret;
+ time_t tret;
+ int ret;
ret = CtdlIPCGenericCommand(ipc, "TIME", NULL, 0, NULL, NULL, cret);
if (ret / 100 == 2) {
/* AGUP */
-int CtdlIPCAideGetUserParameters(CtdlIPC *ipc, const char *who,
- struct ctdluser **uret, char *cret)
+int CtdlIPCAideGetUserParameters(CtdlIPC *ipc, const char *who, struct ctdluser **uret, char *cret)
{
- register int ret;
+ int ret;
char aaa[SIZ];
if (!cret) return -2;
/* ASUP */
int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct ctdluser *uret, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
if (!aaa) return -1;
sprintf(aaa, "ASUP %s|%s|%d|%ld|%ld|%d|%ld|%ld|%d",
- uret->fullname, uret->password, uret->flags,
- uret->timescalled, uret->posted, uret->axlevel,
- uret->usernum, uret->lastcall, uret->USuserpurge);
+ uret->fullname, uret->password, uret->flags, uret->timescalled,
+ uret->posted, uret->axlevel, uret->usernum, uret->lastcall, uret->USuserpurge
+ );
ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, NULL, NULL, cret);
free(aaa);
return ret;
}
+/* AGEA */
+int CtdlIPCAideGetEmailAddresses(CtdlIPC *ipc, const char *who, char *target_buf, char *cret)
+{
+ int ret;
+ char aaa[SIZ];
+ char *emailaddrs = NULL;
+ size_t emailaddrs_len = 0;
+
+ sprintf(aaa, "AGEA %s", who);
+ ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, &emailaddrs, &emailaddrs_len, cret);
+
+ if (ret / 100 == 1) {
+ strcpy(target_buf, emailaddrs);
+ }
+
+ if (emailaddrs != NULL) {
+ free(emailaddrs);
+ }
+
+ return ret;
+}
+
+
+/* ASEA */
+int CtdlIPCAideSetEmailAddresses(CtdlIPC *ipc, const char *who, char *emailaddrs, char *cret)
+{
+ char aaa[SIZ];
+ int ret;
+
+ if (!who) return -2;
+ if (!emailaddrs) return -2;
+ if (!cret) return -2;
+
+ sprintf(aaa, "ASEA %s", who);
+ ret = CtdlIPCGenericCommand(ipc, aaa, emailaddrs, 0, NULL, NULL, cret);
+ return ret;
+}
+
+
/* GPEX */
/* which is 0 = room, 1 = floor, 2 = site, 3 = default for mailboxes */
/* caller must free the struct ExpirePolicy */
strof(mailboxespolicy)
};
char cmd[256];
- register int ret;
+ int ret;
if (!cret) return -2;
if (!policy) return -2;
/* CONF GETSYS */
-int CtdlIPCGetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
- char **listing, char *cret)
+int CtdlIPCGetSystemConfigByType(CtdlIPC *ipc, const char *mimetype, char **listing, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
size_t bytes;
aaa = malloc(strlen(mimetype) + 13);
if (!aaa) return -1;
sprintf(aaa, "CONF GETSYS|%s", mimetype);
- ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0,
- listing, &bytes, cret);
- free(aaa);
- return ret;
+ ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, listing, &bytes, cret);
+ free(aaa);
+ return ret;
}
/* CONF PUTSYS */
-int CtdlIPCSetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
- const char *listing, char *cret)
+int CtdlIPCSetSystemConfigByType(CtdlIPC *ipc, const char *mimetype, const char *listing, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!cret) return -2;
aaa = malloc(strlen(mimetype) + 13);
if (!aaa) return -1;
sprintf(aaa, "CONF PUTSYS|%s", mimetype);
- ret = CtdlIPCGenericCommand(ipc, aaa, listing, strlen(listing),
- NULL, NULL, cret);
- free(aaa);
- return ret;
+ ret = CtdlIPCGenericCommand(ipc, aaa, listing, strlen(listing), NULL, NULL, cret);
+ free(aaa);
+ return ret;
}
if (!listing) return -2;
if (*listing) return -2;
- return CtdlIPCGenericCommand(ipc, "GNET", NULL, 0,
- listing, &bytes, cret);
+ return CtdlIPCGenericCommand(ipc, "GNET", NULL, 0, listing, &bytes, cret);
}
if (!cret) return -2;
if (!listing) return -2;
- return CtdlIPCGenericCommand(ipc, "SNET", listing, strlen(listing),
- NULL, NULL, cret);
+ return CtdlIPCGenericCommand(ipc, "SNET", listing, strlen(listing), NULL, NULL, cret);
}
/* New SSL object */
temp_ssl = SSL_new(ssl_ctx);
if (!temp_ssl) {
- error_printf("SSL_new failed: %s\n",
- ERR_reason_error_string(ERR_get_error()));
+ error_printf("SSL_new failed: %s\n", ERR_reason_error_string(ERR_get_error()));
return -2;
}
/* Pointless flag waving */
SSL_set_session_id_context(temp_ssl, (const unsigned char*) "Citadel SID", 14);
#endif
- if (!access(EGD_POOL, F_OK))
- RAND_egd(EGD_POOL);
-
- if (!RAND_status()) {
- error_printf("PRNG not properly seeded\n");
- return -2;
- }
-
/* Associate network connection with SSL object */
if (SSL_set_fd(temp_ssl, ipc->sock) < 1) {
- error_printf("SSL_set_fd failed: %s\n",
- ERR_reason_error_string(ERR_get_error()));
+ error_printf("SSL_set_fd failed: %s\n", ERR_reason_error_string(ERR_get_error()));
return -2;
}
- if (status_hook != NULL)
+ if (status_hook != NULL) {
status_hook("Requesting encryption...\r");
+ }
/* Ready to start SSL/TLS */
- /* Old code
- CtdlIPC_putline(ipc, "STLS");
- CtdlIPC_getline(ipc, buf);
- if (buf[0] != '2') {
- error_printf("Server can't start TLS: %s\n", buf);
- return 0;
- }
- */
- r = CtdlIPCGenericCommand(ipc,
- "STLS", NULL, 0, NULL, NULL, cret);
+ r = CtdlIPCGenericCommand(ipc, "STLS", NULL, 0, NULL, NULL, cret);
if (r / 100 != 2) {
error_printf("Server can't start TLS: %s\n", buf);
endtls(temp_ssl);
/* Do SSL/TLS handshake */
if ((a = SSL_connect(temp_ssl)) < 1) {
- error_printf("SSL_connect failed: %s\n",
- ERR_reason_error_string(ERR_get_error()));
+ error_printf("SSL_connect failed: %s\n", ERR_reason_error_string(ERR_get_error()));
endtls(temp_ssl);
return -2;
}
ipc->ssl = temp_ssl;
- if (BIO_set_close(ipc->ssl->rbio, BIO_NOCLOSE))
- {
- int bits, alg_bits;
-
- bits = SSL_CIPHER_get_bits(SSL_get_current_cipher(ipc->ssl), &alg_bits);
- error_printf("Encrypting with %s cipher %s (%d of %d bits)\n",
- SSL_CIPHER_get_version(SSL_get_current_cipher(ipc->ssl)),
- SSL_CIPHER_get_name(SSL_get_current_cipher(ipc->ssl)),
- bits, alg_bits);
- }
+ error_printf("Encrypting with %s cipher %s\n",
+ SSL_CIPHER_get_version(SSL_get_current_cipher(ipc->ssl)),
+ SSL_CIPHER_get_name(SSL_get_current_cipher(ipc->ssl))
+ );
return r;
#else
return 0;
/* QDIR */
int CtdlIPCDirectoryLookup(CtdlIPC *ipc, const char *address, char *cret)
{
- register int ret;
+ int ret;
char *aaa;
if (!address) return -2;
sprintf(aaa, "QDIR %s", address);
ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, NULL, NULL, cret);
- free(aaa);
- return ret;
+ free(aaa);
+ return ret;
}
/* Partial read of file from server */
size_t CtdlIPCPartialRead(CtdlIPC *ipc, void **buf, size_t offset, size_t bytes, char *cret)
{
- register size_t len = 0;
+ size_t len = 0;
char aaa[SIZ];
if (!buf) return 0;
/* CLOS */
int CtdlIPCEndDownload(CtdlIPC *ipc, char *cret)
{
- register int ret;
+ int ret;
if (!cret) return -2;
if (!ipc->downloading) return -2;
/* MSGP */
int CtdlIPCSpecifyPreferredFormats(CtdlIPC *ipc, char *cret, char *formats) {
- register int ret;
+ int ret;
char cmd[SIZ];
snprintf(cmd, sizeof cmd, "MSGP %s", formats);
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register size_t len;
+ size_t len;
if (!cret) return -1;
if (!buf) return -1;
if (progress_gauge_callback)
progress_gauge_callback(ipc, len, bytes);
while (len < bytes) {
- register size_t block;
+ size_t block;
block = CtdlIPCPartialRead(ipc, buf, len, 4096, cret);
if (block == 0) {
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register size_t len;
- register int calls; /* How many calls in the pipeline */
- register int i; /* iterator */
+ size_t len;
+ int calls; /* How many calls in the pipeline */
+ int i; /* iterator */
char aaa[4096];
if (!cret) return -1;
/* UCLS */
int CtdlIPCEndUpload(CtdlIPC *ipc, int discard, char *cret)
{
- register int ret;
+ int ret;
char cmd[8];
if (!cret) return -1;
(CtdlIPC*, unsigned long, unsigned long),
char *cret)
{
- register int ret = -1;
- register size_t offset = 0;
+ int ret = -1;
+ size_t offset = 0;
size_t bytes;
char aaa[SIZ];
char buf[4096];
progress_gauge_callback(ipc, 0, bytes);
while (offset < bytes) {
- register size_t to_write;
+ size_t to_write;
/* Read some data in */
to_write = fread(buf, 1, 4096, fd);
size_t *bytes_to_receive, char *proto_response)
{
char buf[SIZ];
- register int ret;
+ int ret;
if (!command) return -2;
if (!proto_response) return -2;
ssl_method = SSLv23_client_method();
ssl_ctx = SSL_CTX_new(ssl_method);
if (!ssl_ctx) {
- error_printf("SSL_CTX_new failed: %s\n",
- ERR_reason_error_string(ERR_get_error()));
+ error_printf("SSL_CTX_new failed: %s\n", ERR_reason_error_string(ERR_get_error()));
return;
}
/* Any reasonable cipher we can get */
return;
}
SSL_CTX_set_session_cache_mode(ssl_ctx, SSL_SESS_CACHE_BOTH);
-
+
/* Load DH parameters into the context */
dh = DH_new();
if (!dh) {
- error_printf("Can't allocate a DH object: %s\n",
- ERR_reason_error_string(ERR_get_error()));
- return;
- }
- if (!(BN_hex2bn(&(dh->p), DH_P))) {
- error_printf("Can't assign DH_P: %s\n",
- ERR_reason_error_string(ERR_get_error()));
- DH_free(dh);
+ error_printf("Can't allocate a DH object: %s\n", ERR_reason_error_string(ERR_get_error()));
return;
}
- if (!(BN_hex2bn(&(dh->g), DH_G))) {
- error_printf("Can't assign DH_G: %s\n",
- ERR_reason_error_string(ERR_get_error()));
+
+ if (!(DH_generate_parameters_ex(dh, 128, DH_GENERATOR_2, 0))) {
+ error_printf("Can't generate DH parameters: %s\n", ERR_reason_error_string(ERR_get_error()));
DH_free(dh);
return;
}
- dh->length = DH_L;
+
SSL_CTX_set_tmp_dh(ssl_ctx, dh);
DH_free(dh);
ReadNetworkChunk(CtdlIPC* ipc)
{
fd_set read_fd;
-/* int tries;*/
int ret = 0;
int err = 0;
struct timeval tv;
FD_SET(ipc->sock, &read_fd);
ret = select(ipc->sock+1, &read_fd, NULL, NULL, &tv);
-// fprintf(stderr, "\nselect failed: %d %d %s\n", ret, err, strerror(err));
-
if (ret > 0) {
*(ipc->BufPtr) = '\0';
-// n = read(ipc->sock, ipc->BufPtr, ipc->BufSize - (ipc->BufPtr - ipc->Buf) - 1);
n = recv(ipc->sock, ipc->BufPtr, ipc->BufSize - (ipc->BufPtr - ipc->Buf) - 1, 0);
if (n > 0) {
ipc->BufPtr[n]='\0';
strcpy(cithost, DEFAULT_HOST); /* default host */
strcpy(citport, DEFAULT_PORT); /* default port */
- /* Allow caller to supply our values (Windows) */
- if (hostbuf && strlen(hostbuf) > 0)
+ /* Allow caller to supply our values */
+ if (hostbuf && strlen(hostbuf) > 0) {
strcpy(cithost, hostbuf);
- if (portbuf && strlen(portbuf) > 0)
+ }
+ if (portbuf && strlen(portbuf) > 0) {
strcpy(citport, portbuf);
+ }
/* Read host/port from command line if present */
for (a = 0; a < argc; ++a) {
}
}
- if ((!strcmp(cithost, "localhost"))
- || (!strcmp(cithost, "127.0.0.1"))) {
+ if ((!strcmp(cithost, "localhost")) || (!strcmp(cithost, "127.0.0.1"))) {
ipc->isLocal = 1;
}
else {
snprintf(sockpath, sizeof sockpath, "%s/%s", citport, "citadel.socket");
}
+ printf("[%s]\n", sockpath);
ipc->sock = uds_connectsock(&(ipc->isLocal), sockpath);
if (ipc->sock == -1) {
ifree(ipc);
return ipc;
}
+ printf("[%s:%s]\n", cithost, citport);
ipc->sock = tcp_connectsock(cithost, citport);
if (ipc->sock == -1) {
ifree(ipc);