Added MSGID and REPLYID
This commit is contained in:
parent
ff1e943490
commit
7afcb10eeb
110
mail_menu.c
110
mail_menu.c
@ -298,7 +298,8 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
char *wwiv_addressee;
|
char *wwiv_addressee;
|
||||||
char *dest_addr;
|
char *dest_addr;
|
||||||
int to_us;
|
int to_us;
|
||||||
|
char *msgid = NULL;
|
||||||
|
char timestr[17];
|
||||||
jb = open_jam_base(conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->path);
|
jb = open_jam_base(conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->path);
|
||||||
if (!jb) {
|
if (!jb) {
|
||||||
printf("Error opening JAM base.. %s\n", conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->path);
|
printf("Error opening JAM base.. %s\n", conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->path);
|
||||||
@ -350,6 +351,12 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
memcpy(dest_addr, jsp->Fields[z]->Buffer, jsp->Fields[z]->DatLen);
|
memcpy(dest_addr, jsp->Fields[z]->Buffer, jsp->Fields[z]->DatLen);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (jsp->Fields[z]->LoID == JAMSFLD_MSGID) {
|
||||||
|
msgid = (char *)malloc(jsp->Fields[z]->DatLen + 1);
|
||||||
|
memset(msgid, 0, jsp->Fields[z]->DatLen + 1);
|
||||||
|
memcpy(msgid, jsp->Fields[z]->Buffer, jsp->Fields[z]->DatLen);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (jmh.Attribute & MSG_PRIVATE) {
|
if (jmh.Attribute & MSG_PRIVATE) {
|
||||||
@ -391,6 +398,9 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
if (to != NULL) {
|
if (to != NULL) {
|
||||||
free(to);
|
free(to);
|
||||||
}
|
}
|
||||||
|
if (msgid != NULL) {
|
||||||
|
free(msgid);
|
||||||
|
}
|
||||||
if (from_addr) {
|
if (from_addr) {
|
||||||
free(from_addr);
|
free(from_addr);
|
||||||
}
|
}
|
||||||
@ -498,6 +508,9 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
free(from_addr);
|
free(from_addr);
|
||||||
from_addr = NULL;
|
from_addr = NULL;
|
||||||
}
|
}
|
||||||
|
if (msgid != NULL) {
|
||||||
|
free(msgid);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -524,6 +537,8 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
jsf.Buffer = (char *)subject;
|
jsf.Buffer = (char *)subject;
|
||||||
JAM_PutSubfield(jsp, &jsf);
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_ECHOMAIL_AREA) {
|
if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_ECHOMAIL_AREA) {
|
||||||
jmh.Attribute |= MSG_TYPEECHO;
|
jmh.Attribute |= MSG_TYPEECHO;
|
||||||
|
|
||||||
@ -543,6 +558,34 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
jsf.DatLen = strlen(buffer);
|
jsf.DatLen = strlen(buffer);
|
||||||
jsf.Buffer = (char *)buffer;
|
jsf.Buffer = (char *)buffer;
|
||||||
JAM_PutSubfield(jsp, &jsf);
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
snprintf(timestr, 16, "%016lx", time(NULL));
|
||||||
|
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
×tr[strlen(timestr) - 9]);
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_MSGID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
if (msgid != NULL) {
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
&msgid[strlen(timestr) - 9]);
|
||||||
|
}
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_REPLYID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
}
|
}
|
||||||
} else if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
|
} else if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
|
||||||
jmh.Attribute |= MSG_TYPENET;
|
jmh.Attribute |= MSG_TYPENET;
|
||||||
@ -582,6 +625,34 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
jsf.Buffer = (char *)buffer;
|
jsf.Buffer = (char *)buffer;
|
||||||
JAM_PutSubfield(jsp, &jsf);
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
snprintf(timestr, 16, "%016lx", time(NULL));
|
||||||
|
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
×tr[strlen(timestr) - 9]);
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_MSGID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
if (msgid != NULL) {
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
&msgid[strlen(timestr) - 9]);
|
||||||
|
}
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_REPLYID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_WWIV) {
|
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_WWIV) {
|
||||||
sprintf(buffer, "%d", atoi(strchr(from, '@') + 1));
|
sprintf(buffer, "%d", atoi(strchr(from, '@') + 1));
|
||||||
jsf.LoID = JAMSFLD_DADDRESS;
|
jsf.LoID = JAMSFLD_DADDRESS;
|
||||||
@ -609,6 +680,9 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
free(from_addr);
|
free(from_addr);
|
||||||
from_addr = NULL;
|
from_addr = NULL;
|
||||||
}
|
}
|
||||||
|
if (msgid != NULL) {
|
||||||
|
free(msgid);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -642,6 +716,9 @@ void read_message(int socket, struct user_record *user, int mailno) {
|
|||||||
free(from_addr);
|
free(from_addr);
|
||||||
from_addr = NULL;
|
from_addr = NULL;
|
||||||
}
|
}
|
||||||
|
if (msgid != NULL) {
|
||||||
|
free(msgid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int mail_menu(int socket, struct user_record *user) {
|
int mail_menu(int socket, struct user_record *user) {
|
||||||
@ -671,7 +748,7 @@ int mail_menu(int socket, struct user_record *user) {
|
|||||||
char *body;
|
char *body;
|
||||||
char *replybody;
|
char *replybody;
|
||||||
char *wwiv_addressee;
|
char *wwiv_addressee;
|
||||||
|
char timestr[17];
|
||||||
char *msg;
|
char *msg;
|
||||||
int closed;
|
int closed;
|
||||||
uint32_t jam_crc;
|
uint32_t jam_crc;
|
||||||
@ -813,6 +890,21 @@ int mail_menu(int socket, struct user_record *user) {
|
|||||||
jsf.Buffer = (char *)buffer;
|
jsf.Buffer = (char *)buffer;
|
||||||
JAM_PutSubfield(jsp, &jsf);
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
snprintf(timestr, 16, "%016lx", time(NULL));
|
||||||
|
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
×tr[strlen(timestr) - 9]);
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_MSGID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
|
if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
|
||||||
@ -855,6 +947,20 @@ int mail_menu(int socket, struct user_record *user) {
|
|||||||
free(from_addr);
|
free(from_addr);
|
||||||
from_addr = NULL;
|
from_addr = NULL;
|
||||||
}
|
}
|
||||||
|
snprintf(timestr, 16, "%016lx", time(NULL));
|
||||||
|
|
||||||
|
sprintf(buffer, "%d:%d/%d.%d %s", conf.mail_conferences[user->cur_mail_conf]->fidoaddr->zone,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->net,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->node,
|
||||||
|
conf.mail_conferences[user->cur_mail_conf]->fidoaddr->point,
|
||||||
|
×tr[strlen(timestr) - 9]);
|
||||||
|
|
||||||
|
jsf.LoID = JAMSFLD_MSGID;
|
||||||
|
jsf.HiID = 0;
|
||||||
|
jsf.DatLen = strlen(buffer);
|
||||||
|
jsf.Buffer = (char *)buffer;
|
||||||
|
JAM_PutSubfield(jsp, &jsf);
|
||||||
|
|
||||||
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_WWIV) {
|
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_WWIV) {
|
||||||
sprintf(buffer, "%d", wwiv_to);
|
sprintf(buffer, "%d", wwiv_to);
|
||||||
jsf.LoID = JAMSFLD_DADDRESS;
|
jsf.LoID = JAMSFLD_DADDRESS;
|
||||||
|
Reference in New Issue
Block a user