removed node display and network parameters from text client
[citadel.git] / textclient / src / citadel_ipc.c
index 1225bf9877a3bd87a106e0af2dfd3b1a43ae8b7a..e0e299ac59dbf3409c02dff6450b6b0785ee7c11 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
@@ -66,8 +66,6 @@ char ctdl_run_dir[PATH_MAX]="";
 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",
@@ -178,12 +176,6 @@ void calc_dirs_n_files(int relh, int home, const char *relhome, char  *ctdldir,
                         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);
@@ -236,7 +228,7 @@ int CtdlIPCNoop(CtdlIPC *ipc)
  */
 int CtdlIPCEcho(CtdlIPC *ipc, const char *arg, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
        
        if (!arg) return -2;
@@ -258,7 +250,7 @@ int CtdlIPCEcho(CtdlIPC *ipc, const char *arg, char *cret)
  */
 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);
@@ -286,7 +278,7 @@ int CtdlIPCQuit(CtdlIPC *ipc)
  */
 int CtdlIPCLogout(CtdlIPC *ipc)
 {
-       register int ret;
+       int ret;
        char aaa[SIZ];
 
        CtdlIPC_lock(ipc);
@@ -305,7 +297,7 @@ int CtdlIPCLogout(CtdlIPC *ipc)
  */
 int CtdlIPCTryLogin(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!username) return -2;
@@ -327,7 +319,7 @@ int CtdlIPCTryLogin(CtdlIPC *ipc, const char *username, char *cret)
  */
 int CtdlIPCTryPassword(CtdlIPC *ipc, const char *passwd, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!passwd) return -2;
@@ -349,7 +341,7 @@ int CtdlIPCTryPassword(CtdlIPC *ipc, const char *passwd, char *cret)
  */
 int CtdlIPCTryApopPassword(CtdlIPC *ipc, const char *response, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!response) return -2;
@@ -374,7 +366,7 @@ int CtdlIPCTryApopPassword(CtdlIPC *ipc, const char *response, char *cret)
  */
 int CtdlIPCCreateUser(CtdlIPC *ipc, const char *username, int selfservice, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!username) return -2;
@@ -395,7 +387,7 @@ int CtdlIPCCreateUser(CtdlIPC *ipc, const char *username, int selfservice, char
  */
 int CtdlIPCChangePassword(CtdlIPC *ipc, const char *passwd, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!passwd) return -2;
@@ -417,7 +409,7 @@ int CtdlIPCChangePassword(CtdlIPC *ipc, const char *passwd, char *cret)
 /* 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" };
@@ -474,7 +466,7 @@ int CtdlIPCKnownRooms(CtdlIPC *ipc, enum RoomList which, int floor, struct march
 /* 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;
@@ -508,7 +500,7 @@ int CtdlIPCSetConfig(CtdlIPC *ipc, struct ctdluser *uret, char *cret)
 /* RENU */
 int CtdlIPCRenameUser(CtdlIPC *ipc, char *oldname, char *newname, char *cret)
 {
-       register int ret;
+       int ret;
        char cmd[256];
 
        if (!oldname) return -2;
@@ -525,7 +517,7 @@ int CtdlIPCRenameUser(CtdlIPC *ipc, char *oldname, char *newname, char *cret)
 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;
@@ -580,8 +572,8 @@ int CtdlIPCGotoRoom(CtdlIPC *ipc, const char *room, const char *passwd,
 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];
@@ -628,7 +620,7 @@ int CtdlIPCGetMessages(CtdlIPC *ipc, enum MessageList which, int whicharg,
 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;
@@ -665,12 +657,8 @@ int CtdlIPCGetSingleMessage(CtdlIPC *ipc, long msgnum, int headers, int as_mime,
                                        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))
@@ -802,7 +790,7 @@ int CtdlIPCGetSingleMessage(CtdlIPC *ipc, long msgnum, int headers, int as_mime,
 /* WHOK */
 int CtdlIPCWhoKnowsRoom(CtdlIPC *ipc, char **listing, char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
 
        if (!cret) return -2;
@@ -817,7 +805,7 @@ int CtdlIPCWhoKnowsRoom(CtdlIPC *ipc, char **listing, char *cret)
 /* INFO */
 int CtdlIPCServerInfo(CtdlIPC *ipc, char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
        char *listing = NULL;
        char buf[SIZ];
@@ -888,7 +876,7 @@ int CtdlIPCServerInfo(CtdlIPC *ipc, char *cret)
 /* RDIR */
 int CtdlIPCReadDirectory(CtdlIPC *ipc, char **listing, char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
 
        if (!cret) return -2;
@@ -905,7 +893,7 @@ int CtdlIPCReadDirectory(CtdlIPC *ipc, char **listing, char *cret)
  */
 int CtdlIPCSetLastRead(CtdlIPC *ipc, long msgnum, char *cret)
 {
-       register int ret;
+       int ret;
        char aaa[64];
 
        if (!cret) return -2;
@@ -924,7 +912,7 @@ int CtdlIPCSetLastRead(CtdlIPC *ipc, long msgnum, char *cret)
 /* INVT */
 int CtdlIPCInviteUserToRoom(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -943,7 +931,7 @@ int CtdlIPCInviteUserToRoom(CtdlIPC *ipc, const char *username, char *cret)
 /* KICK */
 int CtdlIPCKickoutUserFromRoom(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -1;
@@ -961,7 +949,7 @@ int CtdlIPCKickoutUserFromRoom(CtdlIPC *ipc, const char *username, char *cret)
 /* GETR */
 int CtdlIPCGetRoomAttributes(CtdlIPC *ipc, struct ctdlroom **qret, char *cret)
 {
-       register int ret;
+       int ret;
 
        if (!cret) return -2;
        if (!qret) return -2;
@@ -987,7 +975,7 @@ int CtdlIPCGetRoomAttributes(CtdlIPC *ipc, struct ctdlroom **qret, char *cret)
 /* 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;
@@ -1019,7 +1007,7 @@ int CtdlIPCGetRoomAide(CtdlIPC *ipc, char *cret)
 /* SETA */
 int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1038,7 +1026,7 @@ int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret)
 /* 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;
 
@@ -1097,7 +1085,7 @@ int CtdlIPCDeleteMessage(CtdlIPC *ipc, long msgnum, char *cret)
 /* 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;
@@ -1130,7 +1118,7 @@ int CtdlIPCDeleteRoom(CtdlIPC *ipc, int for_real, char *cret)
 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;
@@ -1165,7 +1153,7 @@ int CtdlIPCForgetRoom(CtdlIPC *ipc, char *cret)
 /* MESG */
 int CtdlIPCSystemMessage(CtdlIPC *ipc, const char *message, char **mret, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
        size_t bytes;
 
@@ -1196,7 +1184,7 @@ int CtdlIPCNextUnvalidatedUser(CtdlIPC *ipc, char *cret)
 /* GREG */
 int CtdlIPCGetUserRegistration(CtdlIPC *ipc, const char *username, char **rret, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
        size_t bytes;
 
@@ -1223,7 +1211,7 @@ int CtdlIPCGetUserRegistration(CtdlIPC *ipc, const char *username, char **rret,
 /* VALI */
 int CtdlIPCValidateUser(CtdlIPC *ipc, const char *username, int axlevel, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1288,7 +1276,7 @@ int CtdlIPCSetRegistration(CtdlIPC *ipc, const char *info, char *cret)
 /* CHEK */
 int CtdlIPCMiscCheck(CtdlIPC *ipc, struct ctdlipcmisc *chek, char *cret)
 {
-       register int ret;
+       int ret;
 
        if (!cret) return -1;
        if (!chek) return -1;
@@ -1306,7 +1294,7 @@ int CtdlIPCMiscCheck(CtdlIPC *ipc, struct ctdlipcmisc *chek, char *cret)
 /* DELF */
 int CtdlIPCDeleteFile(CtdlIPC *ipc, const char *filename, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1325,7 +1313,7 @@ int CtdlIPCDeleteFile(CtdlIPC *ipc, const char *filename, char *cret)
 /* MOVF */
 int CtdlIPCMoveFile(CtdlIPC *ipc, const char *filename, const char *destroom, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1345,7 +1333,7 @@ int CtdlIPCMoveFile(CtdlIPC *ipc, const char *filename, const char *destroom, ch
 /* RWHO */
 int CtdlIPCOnlineUsers(CtdlIPC *ipc, char **listing, time_t *stamp, char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
 
        if (!cret) return -1;
@@ -1367,7 +1355,7 @@ int CtdlIPCFileDownload(CtdlIPC *ipc, const char *filename, void **buf,
                        (CtdlIPC*, unsigned long, unsigned long),
                char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
        time_t last_mod;
        char mimetype[SIZ];
@@ -1414,7 +1402,7 @@ int CtdlIPCAttachmentDownload(CtdlIPC *ipc, long msgnum, const char *part,
                        (CtdlIPC*, unsigned long, unsigned long),
                char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
        time_t last_mod;
        char filename[SIZ];
@@ -1453,7 +1441,7 @@ int CtdlIPCImageDownload(CtdlIPC *ipc, const char *filename, void **buf,
                        (CtdlIPC*, unsigned long, unsigned long),
                char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
        time_t last_mod;
        char mimetype[SIZ];
@@ -1494,7 +1482,7 @@ int CtdlIPCFileUpload(CtdlIPC *ipc, const char *save_as, const char *comment,
                        (CtdlIPC*, unsigned long, unsigned long),
                char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
        FILE *uploadFP;
        char MimeTestBuf[64];
@@ -1540,7 +1528,7 @@ int CtdlIPCImageUpload(CtdlIPC *ipc, int for_real, const char *path,
                        (CtdlIPC*, unsigned long, unsigned long),
                char *cret)
 {
-       register int ret;
+       int ret;
        FILE *uploadFP;
        char *aaa;
        char MimeTestBuf[64];
@@ -1581,7 +1569,7 @@ int CtdlIPCImageUpload(CtdlIPC *ipc, int for_real, const char *path,
 /* QUSR */
 int CtdlIPCQueryUsername(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1613,7 +1601,7 @@ int CtdlIPCFloorListing(CtdlIPC *ipc, char **listing, char *cret)
 /* 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;
@@ -1641,7 +1629,7 @@ int CtdlIPCDeleteFloor(CtdlIPC *ipc, int for_real, int floornum, char *cret)
 /* EFLR */
 int CtdlIPCEditFloor(CtdlIPC *ipc, int floornum, const char *floorname, char *cret)
 {
-       register int ret;
+       int ret;
        char aaa[SIZ];
 
        if (!cret) return -2;
@@ -1664,7 +1652,7 @@ int CtdlIPCIdentifySoftware(CtdlIPC *ipc, int developerid, int clientid,
                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 ||
@@ -1691,7 +1679,7 @@ int CtdlIPCIdentifySoftware(CtdlIPC *ipc, int developerid, int clientid,
 int CtdlIPCSendInstantMessage(CtdlIPC *ipc, const char *username, const char *text,
                char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1753,7 +1741,7 @@ int CtdlIPCSetBio(CtdlIPC *ipc, char *bio, char *cret)
 /* RBIO */
 int CtdlIPCGetBio(CtdlIPC *ipc, const char *username, char **listing, char *cret)
 {
-       register int ret;
+       int ret;
        size_t bytes;
        char *aaa;
 
@@ -1834,7 +1822,7 @@ int CtdlIPCTerminateServerScheduled(CtdlIPC *ipc, int mode, char *cret)
 int CtdlIPCEnterSystemMessage(CtdlIPC *ipc, const char *filename, const char *text,
                char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1854,7 +1842,7 @@ int CtdlIPCEnterSystemMessage(CtdlIPC *ipc, const char *filename, const char *te
 /* HCHG */
 int CtdlIPCChangeHostname(CtdlIPC *ipc, const char *hostname, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1873,7 +1861,7 @@ int CtdlIPCChangeHostname(CtdlIPC *ipc, const char *hostname, char *cret)
 /* RCHG */
 int CtdlIPCChangeRoomname(CtdlIPC *ipc, const char *roomname, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1892,7 +1880,7 @@ int CtdlIPCChangeRoomname(CtdlIPC *ipc, const char *roomname, char *cret)
 /* UCHG */
 int CtdlIPCChangeUsername(CtdlIPC *ipc, const char *username, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1912,8 +1900,8 @@ int CtdlIPCChangeUsername(CtdlIPC *ipc, const char *username, char *cret)
 /* 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) {
@@ -1926,10 +1914,9 @@ time_t CtdlIPCServerTime(CtdlIPC *ipc, char *cret)
 
 
 /* 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;
@@ -1958,7 +1945,7 @@ int CtdlIPCAideGetUserParameters(CtdlIPC *ipc, const char *who,
 /* ASUP */
 int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct ctdluser *uret, char *cret)
 {
-       register int ret;
+       int ret;
        char *aaa;
 
        if (!cret) return -2;
@@ -1968,15 +1955,54 @@ int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct ctdluser *uret, char
        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 */
@@ -1990,7 +2016,7 @@ int CtdlIPCGetMessageExpirationPolicy(CtdlIPC *ipc, GPEXWhichPolicy which,
                strof(mailboxespolicy)
        };
        char cmd[256];
-       register int ret;
+       int ret;
 
        if (!cret) return -2;
        if (!policy) return -2;
@@ -2055,10 +2081,9 @@ int CtdlIPCSetSystemConfig(CtdlIPC *ipc, const char *listing, char *cret)
 
 
 /* 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;
 
@@ -2070,18 +2095,16 @@ int CtdlIPCGetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
        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;
@@ -2091,10 +2114,9 @@ int CtdlIPCSetSystemConfigByType(CtdlIPC *ipc, const char *mimetype,
        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;
 }
 
 
@@ -2107,8 +2129,7 @@ int CtdlIPCGetRoomNetworkConfig(CtdlIPC *ipc, char **listing, char *cret)
        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);
 }
 
 
@@ -2118,8 +2139,7 @@ int CtdlIPCSetRoomNetworkConfig(CtdlIPC *ipc, const char *listing, char *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);
 }
 
 
@@ -2162,8 +2182,7 @@ int CtdlIPCStartEncryption(CtdlIPC *ipc, char *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 */
@@ -2171,35 +2190,18 @@ int CtdlIPCStartEncryption(CtdlIPC *ipc, char *cret)
        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);
@@ -2208,23 +2210,16 @@ int CtdlIPCStartEncryption(CtdlIPC *ipc, char *cret)
 
        /* 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;
@@ -2246,7 +2241,7 @@ static void endtls(SSL *ssl)
 /* QDIR */
 int CtdlIPCDirectoryLookup(CtdlIPC *ipc, const char *address, char *cret)
 {
-    register int ret;
+       int ret;
        char *aaa;
 
        if (!address) return -2;
@@ -2257,8 +2252,8 @@ int CtdlIPCDirectoryLookup(CtdlIPC *ipc, const char *address, char *cret)
 
        sprintf(aaa, "QDIR %s", address);
        ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, NULL, NULL, cret);
-    free(aaa);
-    return ret;
+       free(aaa);
+       return ret;
 }
 
 
@@ -2336,7 +2331,7 @@ int CtdlIPCSendListing(CtdlIPC *ipc, const char *listing)
 /* 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;
@@ -2369,7 +2364,7 @@ size_t CtdlIPCPartialRead(CtdlIPC *ipc, void **buf, size_t offset, size_t bytes,
 /* CLOS */
 int CtdlIPCEndDownload(CtdlIPC *ipc, char *cret)
 {
-       register int ret;
+       int ret;
 
        if (!cret) return -2;
        if (!ipc->downloading) return -2;
@@ -2383,7 +2378,7 @@ int CtdlIPCEndDownload(CtdlIPC *ipc, char *cret)
 
 /* MSGP */
 int CtdlIPCSpecifyPreferredFormats(CtdlIPC *ipc, char *cret, char *formats) {
-       register int ret;
+       int ret;
        char cmd[SIZ];
        
        snprintf(cmd, sizeof cmd, "MSGP %s", formats);
@@ -2399,7 +2394,7 @@ int CtdlIPCReadDownload(CtdlIPC *ipc, void **buf, size_t bytes, size_t resume,
                        (CtdlIPC*, unsigned long, unsigned long),
               char *cret)
 {
-       register size_t len;
+       size_t len;
 
        if (!cret) return -1;
        if (!buf) return -1;
@@ -2410,7 +2405,7 @@ int CtdlIPCReadDownload(CtdlIPC *ipc, void **buf, size_t bytes, size_t resume,
        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) {
@@ -2431,9 +2426,9 @@ int CtdlIPCHighSpeedReadDownload(CtdlIPC *ipc, void **buf, size_t bytes,
                        (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;
@@ -2480,7 +2475,7 @@ int CtdlIPCHighSpeedReadDownload(CtdlIPC *ipc, void **buf, size_t bytes,
 /* UCLS */
 int CtdlIPCEndUpload(CtdlIPC *ipc, int discard, char *cret)
 {
-       register int ret;
+       int ret;
        char cmd[8];
 
        if (!cret) return -1;
@@ -2499,8 +2494,8 @@ int CtdlIPCWriteUpload(CtdlIPC *ipc, FILE *uploadFP,
                        (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];
@@ -2517,7 +2512,7 @@ int CtdlIPCWriteUpload(CtdlIPC *ipc, FILE *uploadFP,
                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);
@@ -2584,7 +2579,7 @@ int CtdlIPCGenericCommand(CtdlIPC *ipc,
                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;
@@ -2972,8 +2967,7 @@ static void CtdlIPC_init_OpenSSL(void)
        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 */
@@ -2982,27 +2976,20 @@ static void CtdlIPC_init_OpenSSL(void)
                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);
 
@@ -3043,7 +3030,6 @@ int
 ReadNetworkChunk(CtdlIPC* ipc)
 {
        fd_set read_fd;
-/*     int tries;*/
        int ret = 0;
        int err = 0;
        struct timeval tv;
@@ -3060,12 +3046,9 @@ ReadNetworkChunk(CtdlIPC* ipc)
                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';
@@ -3307,11 +3290,13 @@ CtdlIPC* CtdlIPC_new(int argc, char **argv, char *hostbuf, char *portbuf)
        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) {
@@ -3330,8 +3315,7 @@ CtdlIPC* CtdlIPC_new(int argc, char **argv, char *hostbuf, char *portbuf)
                }
        }
 
-       if ((!strcmp(cithost, "localhost"))
-          || (!strcmp(cithost, "127.0.0.1"))) {
+       if ((!strcmp(cithost, "localhost")) || (!strcmp(cithost, "127.0.0.1"))) {
                ipc->isLocal = 1;
        }
 
@@ -3343,6 +3327,7 @@ CtdlIPC* CtdlIPC_new(int argc, char **argv, char *hostbuf, char *portbuf)
                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);
@@ -3355,6 +3340,7 @@ CtdlIPC* CtdlIPC_new(int argc, char **argv, char *hostbuf, char *portbuf)
                return ipc;
        }
 
+       printf("[%s:%s]\n", cithost, citport);
        ipc->sock = tcp_connectsock(cithost, citport);
        if (ipc->sock == -1) {
                ifree(ipc);