]> code.citadel.org Git - citadel.git/commitdiff
* evaluate the subject required flag. not tested, the user doesn't get to know the...
authorWilfried Göesgens <willi@citadel.org>
Sun, 24 Jun 2007 22:25:00 +0000 (22:25 +0000)
committerWilfried Göesgens <willi@citadel.org>
Sun, 24 Jun 2007 22:25:00 +0000 (22:25 +0000)
citadel/citadel_ipc.c
citadel/citadel_ipc.h
citadel/messages.c
citadel/stress.c

index 36dcea8a239e6980fd41caf6f84620dd70381018..df52ea719473c0e96f6a81f997b8086a78a1646e 100644 (file)
@@ -838,7 +838,7 @@ int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret)
 
 
 /* ENT0 */
-int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr, char *cret)
+int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, int *subject_required,  const struct ctdlipcmessage *mr, char *cret)
 {
        register int ret;
        char cmd[SIZ];
@@ -851,6 +851,14 @@ int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr,
                        mr->anonymous, mr->type, mr->subject, mr->author);
        ret = CtdlIPCGenericCommand(ipc, cmd, mr->text, strlen(mr->text), NULL,
                        NULL, cret);
+       if ((flag == 0) && (subject_required != NULL)) {
+               /* Is the server strongly recommending that the user enter a message subject? */
+               if ((cret[3] != '\0') && (cret[4] != '\0')) {
+                       *subject_required = extract_int(&cret[4], 1);
+               }
+
+               
+       }
        return ret;
 }
 
index 6d748d8e5a0e013693895ef07be2943f24ef564f..3e36ade4eafa2e007176f78e76998e4349b8a901 100644 (file)
@@ -214,8 +214,9 @@ int CtdlIPCSetRoomAttributes(CtdlIPC *ipc, int forget, struct ctdlroom *qret,
                char *cret);
 int CtdlIPCGetRoomAide(CtdlIPC *ipc, char *cret);
 int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret);
-int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr,
-               char *cret);
+int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, int *subject_required, 
+                                          const struct ctdlipcmessage *mr,
+                                          char *cret);
 int CtdlIPCRoomInfo(CtdlIPC *ipc, char **iret, char *cret);
 int CtdlIPCDeleteMessage(CtdlIPC *ipc, long msgnum, char *cret);
 int CtdlIPCMoveMessage(CtdlIPC *ipc, int copy, long msgnum,
index 41d391858668e691c9e579944c12cd09f8ed0423..3dd851db2cb43ebf15056c7036638677d754f1df 100644 (file)
@@ -1124,6 +1124,7 @@ int entmsg(CtdlIPC *ipc,
        struct ctdlipcmessage message;
        unsigned long *msgarr = NULL;
        int r;                  /* IPC response code */
+       int subject_required = 0;
 
        if (c > 0)
                mode = 1;
@@ -1147,7 +1148,7 @@ int entmsg(CtdlIPC *ipc,
                newprompt("Display name for this message: ", message.author, 40);
        }
 
-       r = CtdlIPCPostMessage(ipc, 0, &message, buf);
+       r = CtdlIPCPostMessage(ipc, 0, &subject_required, &message, buf);
 
        if (r / 100 != 2 && r / 10 != 57) {
                scr_printf("%s\n", buf);
@@ -1207,7 +1208,7 @@ int entmsg(CtdlIPC *ipc,
 
        /* If it's mail, we've got to check the validity of the recipient... */
        if (strlen(message.recipient) > 0) {
-               r = CtdlIPCPostMessage(ipc, 0, &message, buf);
+               r = CtdlIPCPostMessage(ipc, 0, &subject_required,  &message, buf);
                if (r / 100 != 2) {
                        scr_printf("%s\n", buf);
                        return (1);
@@ -1252,7 +1253,7 @@ int entmsg(CtdlIPC *ipc,
        break_big_lines(message.text);
 
        /* Transmit message to the server */
-       r = CtdlIPCPostMessage(ipc, 1, &message, buf);
+       r = CtdlIPCPostMessage(ipc, 1, NULL, &message, buf);
        if (r / 100 != 4) {
                scr_printf("%s\n", buf);
                return (1);
index 5b950ecd6746dfb019348ffdd886685a21721a61..4e0761f570f9e5c04cc1bdbc626e8949b4728d17 100644 (file)
@@ -127,6 +127,7 @@ void* worker(void* data)
        int argc_;
        char** argv_;
        long tmin = LONG_MAX, trun = 0, tmax = LONG_MIN;
+       int subject_required;
 
        args = (void*)data;
        argc_ = (int)args[0];
@@ -240,7 +241,7 @@ void* worker(void* data)
                }
 
                /* Post the message */
-               r = CtdlIPCPostMessage(ipc, 1, &msg, aaa);
+               r = CtdlIPCPostMessage(ipc, 1, NULL, &msg, aaa);
                if (r / 100 != 4) {
                        fprintf(stderr, "Citadel refused message entry: %s\n", aaa);
                        pthread_mutex_lock(&count_mutex);