Start on qwknet support

This commit is contained in:
Andrew Pamment
2018-06-24 10:28:18 +10:00
parent 4b90398cbf
commit ecb1c986f0
12 changed files with 474 additions and 4 deletions

View File

@@ -20,6 +20,7 @@
#define NETWORK_FIDO 1
#define NETWORK_WWIV 2
#define NETWORK_MAGI 3
#define NETWORK_QWK 4
#define TYPE_LOCAL_AREA 0
#define TYPE_NETMAIL_AREA 1
@@ -82,7 +83,6 @@ struct mail_conference {
int mail_area_count;
struct mail_area **mail_areas;
struct fido_addr *fidoaddr;
int wwivnode;
int maginode;
};

View File

@@ -695,6 +695,12 @@ int bwave_add_message(int confr, int area, unsigned int dwritten, char *to, char
jsf.Buffer = (char *)buffer;
JAM_PutSubfield(jsp, &jsf);
jmh.MsgIdCRC = JAM_Crc32(buffer, strlen(buffer));
} else if (conf.mail_conferences[confr]->nettype == NETWORK_QWK) {
jsf.LoID = JAMSFLD_OADDRESS;
jsf.HiID = 0;
jsf.DatLen = strlen(conf.bwave_name);
jsf.Buffer = (char *)conf.bwave_name;
JAM_PutSubfield(jsp, &jsf);
}
} else if (conf.mail_conferences[confr]->mail_areas[area]->type == TYPE_NETMAIL_AREA && conf.mail_conferences[confr]->nettype == NETWORK_FIDO) {
jmh.Attribute |= JAM_MSG_TYPENET;
@@ -1081,6 +1087,8 @@ void bwave_upload_reply() {
}
} else if (conf.mail_conferences[confr]->nettype == NETWORK_MAGI) {
snprintf(originlinebuffer, 256, "\r--- %s\r * Origin: %s (@%d)\r", upl_hdr.reader_tear, tagline, conf.mail_conferences[confr]->maginode);
} else if (conf.mail_conferences[confr]->nettype == NETWORK_QWK) {
snprintf(originlinebuffer, 256, "\r--- $s\r * Origin: %s (%s)\r", upl_hdr.reader_tear, tagline, conf.bwave_name);
} else {
snprintf(originlinebuffer, 256, "\r");
}

View File

@@ -555,6 +555,8 @@ char *external_editor(struct user_record *user, char *to, char *from, char *quot
}
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_MAGI && !email) {
snprintf(buffer, 256, "\r--- MagickaBBS v%d.%d%s (%s/%s)\r * Origin: %s (@%d)\r", VERSION_MAJOR, VERSION_MINOR, VERSION_STR, name.sysname, name.machine, tagline, conf.mail_conferences[user->cur_mail_conf]->maginode);
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_QWK && !email) {
snprintf(buffer, 256, "\r--- MagickaBBS v%d.%d%s (%s/%s)\r * Origin: %s (%s)\r", VERSION_MAJOR, VERSION_MINOR, VERSION_STR, name.sysname, name.machine, tagline, conf.bwave_name);
} else {
snprintf(buffer, 256, "\r");
}
@@ -691,6 +693,8 @@ char *editor(struct user_record *user, char *quote, int quotelen, char *from, in
}
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_MAGI && !email) {
snprintf(buffer, 256, "\r--- MagickaBBS v%d.%d%s (%s/%s)\r * Origin: %s (@%d)\r", VERSION_MAJOR, VERSION_MINOR, VERSION_STR, name.sysname, name.machine, tagline, conf.mail_conferences[user->cur_mail_conf]->maginode);
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_QWK && !email) {
snprintf(buffer, 256, "\r--- MagickaBBS v%d.%d%s (%s/%s)\r * Origin: %s (%s)\r", VERSION_MAJOR, VERSION_MINOR, VERSION_STR, name.sysname, name.machine, tagline, conf.bwave_name);
} else {
snprintf(buffer, 256, "\r");
}
@@ -1581,6 +1585,8 @@ int read_message(struct user_record *user, struct msg_headers *msghs, int mailno
free(from_addr);
} else if (msghs->msgs[mailno]->oaddress != NULL && conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_MAGI) {
s_printf(get_string(288), msghs->msgs[mailno]->from, atoi(msghs->msgs[mailno]->oaddress));
} else if (msghs->msgs[mailno]->oaddress != NULL && conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_QWK) {
s_printf(get_string(289), msghs->msgs[mailno]->from, msghs->msgs[mailno]->oaddress);
} else {
s_printf(get_string(106), msghs->msgs[mailno]->from);
}
@@ -1872,6 +1878,12 @@ int read_message(struct user_record *user, struct msg_headers *msghs, int mailno
JAM_PutSubfield(jsp, &jsf);
jmh.ReplyCRC = JAM_Crc32(buffer, strlen(buffer));
}
} else if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_QWK) {
jsf.LoID = JAMSFLD_OADDRESS;
jsf.HiID = 0;
jsf.DatLen = strlen(conf.bwave_name);
jsf.Buffer = (char *)conf.bwave_name;
JAM_PutSubfield(jsp, &jsf);
}
} else if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
jmh.Attribute |= JAM_MSG_TYPENET;
@@ -2327,9 +2339,14 @@ void post_message(struct user_record *user) {
JAM_PutSubfield(jsp, &jsf);
jmh.MsgIdCRC = JAM_Crc32(buffer, strlen(buffer));
}
} 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]->nettype == NETWORK_QWK) {
jsf.LoID = JAMSFLD_OADDRESS;
jsf.HiID = 0;
jsf.DatLen = strlen(conf.bwave_name);
jsf.Buffer = (char *)conf.bwave_name;
JAM_PutSubfield(jsp, &jsf);
}
} else if (conf.mail_conferences[user->cur_mail_conf]->mail_areas[user->cur_mail_area]->type == TYPE_NETMAIL_AREA) {
jmh.Attribute |= JAM_MSG_TYPENET;
jmh.Attribute |= JAM_MSG_PRIVATE;
if (conf.mail_conferences[user->cur_mail_conf]->nettype == NETWORK_FIDO) {

View File

@@ -337,6 +337,8 @@ static int mail_area_handler(void* user, const char* section, const char* name,
mc->nettype = NETWORK_FIDO;
} else if (strcasecmp(value, "magi") == 0) {
mc->nettype = NETWORK_MAGI;
} else if (strcasecmp(value, "qwk") == 0) {
mc->nettype = NETWORK_QWK;
}
} else if (strcasecmp(name, "fido node") == 0) {
mc->fidoaddr = parse_fido_addr(value);