"hnod",
"msgn",
"jrnl",
- NULL,
+ "rep2",
"list",
"text",
"node",
int is_seen = 0;
int was_seen = 0;
long lo = (-1L);
- long hi = (-1L);
+ long hi = (-1L); /// TODO: we just write here. y?
visit vbuf;
long *msglist;
int num_msgs = 0;
) {
struct CitContext *CCC = CC;
struct CtdlMessage *TheMessage = NULL;
- int retcode = om_no_such_msg;
+ int retcode = CIT_OK;
struct encapmsg encap;
int r;
}
else {
- if (do_proto) cprintf("%d msg %ld has no part %s\n",
- ERROR + MESSAGE_NOT_FOUND, msg_num, section);
+ if (do_proto) {
+ cprintf("%d msg %ld has no part %s\n",
+ ERROR + MESSAGE_NOT_FOUND,
+ msg_num,
+ section);
+ }
retcode = om_no_such_msg;
}
}
/* Ok, output the message now */
- retcode = CtdlOutputPreLoadedMsg(TheMessage, mode, headers_only, do_proto, crlf, flags);
+ if (retcode == CIT_OK)
+ retcode = CtdlOutputPreLoadedMsg(TheMessage, mode, headers_only, do_proto, crlf, flags);
CtdlFreeMessage(TheMessage);
return(retcode);
}
if (outlen > 0) {
client_write(outbuf, outlen);
- outlen = 0;
}
}
msglist = realloc(msglist, (sizeof(long) * (num_msgs + num_msgs_to_be_merged)) );
if (msglist == NULL) {
MSGM_syslog(LOG_ALERT, "ERROR: can't realloc message list!\n");
+ free(msgs_to_be_merged);
+ return (ERROR + INTERNAL_ERROR);
}
memcpy(&msglist[num_msgs], msgs_to_be_merged, (sizeof(long) * num_msgs_to_be_merged) );
num_msgs += num_msgs_to_be_merged;
}
-/*
- * Serialize a struct CtdlMessage into the format used on disk and network.
- *
- * This function loads up a "struct ser_ret" (defined in server.h) which
- * contains the length of the serialized message and a pointer to the
- * serialized message in memory. THE LATTER MUST BE FREED BY THE CALLER.
- */
-void dump_message(struct CtdlMessage *msg, /* unserialized msg */
- long Siz) /* how many chars ? */
-{
- int i;
- static char *forder = FORDER;
- char *buf;
-
- /*
- * Check for valid message format
- */
- if (is_valid_message(msg) == 0) {
- struct CitContext *CCC = CC;
- MSGM_syslog(LOG_ERR, "dump_message() aborting due to invalid message\n");
- return;
- }
-
- buf = (char*) malloc (Siz + 1);
-
- for (i=0; i<26; ++i) if (msg->cm_fields[(int)forder[i]] != NULL) {
- snprintf (buf, Siz, " msg[%c] = %s ...\n", (char) forder[i],
- msg->cm_fields[(int)forder[i]]);
- if (client_write (buf, strlen(buf)) == -1)
- {
- struct CitContext *CCC = CC;
- MSGM_syslog(LOG_ERR, "dump_message(): aborting due to write failure.\n");
- return;
- }
- }
-
- return;
-}
-
-
-
/*
* Check to see if any messages already exist in the current room which
* carry the same Exclusive ID as this one. If any are found, delete them.
++num_recps;
strcpy(org_recp, this_recp);
+ alias(this_recp);
+ alias(this_recp);
mailtype = alias(this_recp);
- mailtype = alias(this_recp);
- mailtype = alias(this_recp);
- j = 0;
- for (j=0; !IsEmptyStr(&this_recp[j]); ++j) {
+
+ for (j = 0; !IsEmptyStr(&this_recp[j]); ++j) {
if (this_recp[j]=='_') {
this_recp_cooked[j] = ' ';
}
cdb_free(cdbfr);
}
if (num_msgs > 0) {
- int have_contenttype = !IsEmptyStr(content_type);
+ int have_contenttype = (content_type != NULL) && !IsEmptyStr(content_type);
int have_delmsgs = (num_dmsgnums == 0) || (dmsgnums == NULL);
int have_more_del = 1;