if (colonpos < 0) return(0); /* no colon? not a valid header line */
- value = mallok((end - beg) + 2);
- safestrncpy(value, &rfc822[beg], (end-beg)+1);
- key = value;
+ key = mallok((end - beg) + 2);
+ safestrncpy(key, &rfc822[beg], (end-beg)+1);
key[colonpos - beg] = 0;
value = &key[(colonpos - beg) + 1];
unfold_rfc822_field(value);
+ lprintf(9, "Key=<%s> Value=<%s>\n", key, value);
+
/* Here's the big rfc822-to-citadel loop. */
if (!strcasecmp(key, "Date")) {
node = mallok(strlen(value));
name = mallok(strlen(value));
process_rfc822_addr(value, user, node, name);
+ lprintf(9, "Converted to <%s@%s> (%s)\n", user, node, name);
if (msg->cm_fields['A'] == NULL)
- msg->cm_fields['A'] = strdoop(user);
+ msg->cm_fields['A'] = user;
+ else
+ phree(user);
if (msg->cm_fields['N'] == NULL)
- msg->cm_fields['N'] = strdoop(node);
+ msg->cm_fields['N'] = node;
+ else
+ phree(node);
if (msg->cm_fields['H'] == NULL)
- msg->cm_fields['H'] = strdoop(name);
- phree(user);
- phree(node);
- phree(name);
+ msg->cm_fields['H'] = name;
+ else
+ phree(name);
processed = 1;
}
struct CtdlMessage *msg;
int pos, beg, end;
- int msglen;
int done;
char buf[256];
int converted;
msg->cm_format_type = 4; /* always MIME */
msg->cm_fields['M'] = rfc822;
- msglen = strlen(rfc822);
+ lprintf(9, "Unconverted RFC822 message length = %d\n", strlen(rfc822));
pos = 0;
done = 0;
msg->cm_fields['T'] = strdoop(buf);
}
+ lprintf(9, "RFC822 length remaining after conversion = %d\n",
+ strlen(rfc822));
return msg;
}
void smtp_data(void) {
char *body;
struct CtdlMessage *msg;
+ FILE *fp;
/*
if (strlen(SMTP->from) == 0) {
return;
}
- fprintf(stderr, "Converting message...\n");
+ lprintf(9, "Converting message...\n");
msg = convert_internet_message(body);
/* FIX do something with it! */
+ lprintf(9, "Saving message...\n");
CtdlSaveMsg(msg, "", BASEROOM, MES_LOCAL, 1);
CtdlFreeMessage(msg);