Add other nettype support to lua_glue
This commit is contained in:
parent
18443d247e
commit
13dd935351
102
src/lua_glue.c
102
src/lua_glue.c
@ -407,7 +407,9 @@ int l_postMessage(lua_State *L) {
|
||||
const char *subject = lua_tostring(L, 5);
|
||||
const char *body = lua_tostring(L, 6);
|
||||
int sem_fd;
|
||||
|
||||
uuid_t mnet_msgid;
|
||||
uuid_t qwk_msgid;
|
||||
char qwkuuid[38];
|
||||
char buffer[256];
|
||||
|
||||
s_JamBase *jb;
|
||||
@ -464,47 +466,69 @@ int l_postMessage(lua_State *L) {
|
||||
jsf.Buffer = (char *)subject;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
|
||||
if (ma->type == TYPE_ECHOMAIL_AREA || ma->type == TYPE_NEWSGROUP_AREA) {
|
||||
jmh.Attribute |= JAM_MSG_TYPEECHO;
|
||||
if (mc->networked) {
|
||||
if (mc->nettype == NETWORK_FIDO) {
|
||||
if (ma->type == TYPE_ECHOMAIL_AREA || ma->type == TYPE_NEWSGROUP_AREA) {
|
||||
jmh.Attribute |= JAM_MSG_TYPEECHO;
|
||||
|
||||
if (mc->fidoaddr->point) {
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d.%d",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node,
|
||||
mc->fidoaddr->point);
|
||||
} else {
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node);
|
||||
if (mc->fidoaddr->point) {
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d.%d",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node,
|
||||
mc->fidoaddr->point);
|
||||
} else {
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node);
|
||||
}
|
||||
jsf.LoID = JAMSFLD_OADDRESS;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d.%d %08lx",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node,
|
||||
mc->fidoaddr->point,
|
||||
generate_msgid());
|
||||
|
||||
jsf.LoID = JAMSFLD_MSGID;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
jmh.MsgIdCRC = JAM_Crc32(buffer, strlen(buffer));
|
||||
} else if (ma->type == TYPE_NETMAIL_AREA) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
} else if (mc->nettype == NETWORK_MAGI) {
|
||||
uuid_generate(mnet_msgid);
|
||||
uuid_unparse_lower(mnet_msgid, buffer);
|
||||
|
||||
jsf.LoID = JAMSFLD_MSGID;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
} else if (mc->nettype == NETWORK_QWK) {
|
||||
uuid_generate(qwk_msgid);
|
||||
uuid_unparse_lower(qwk_msgid, qwkuuid);
|
||||
snprintf(buffer, sizeof buffer, "<%s@%s>", qwkuuid, conf.external_address);
|
||||
|
||||
jsf.LoID = JAMSFLD_MSGID;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
}
|
||||
jsf.LoID = JAMSFLD_OADDRESS;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
|
||||
snprintf(buffer, sizeof buffer, "%d:%d/%d.%d %08lx",
|
||||
mc->fidoaddr->zone,
|
||||
mc->fidoaddr->net,
|
||||
mc->fidoaddr->node,
|
||||
mc->fidoaddr->point,
|
||||
generate_msgid());
|
||||
|
||||
jsf.LoID = JAMSFLD_MSGID;
|
||||
jsf.HiID = 0;
|
||||
jsf.DatLen = strlen(buffer);
|
||||
jsf.Buffer = (char *)buffer;
|
||||
JAM_PutSubfield(jsp, &jsf);
|
||||
jmh.MsgIdCRC = JAM_Crc32(buffer, strlen(buffer));
|
||||
} else if (ma->type == TYPE_NETMAIL_AREA) {
|
||||
JAM_DelSubPacket(jsp);
|
||||
JAM_CloseMB(jb);
|
||||
free(jb);
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
z = JAM_LockMB(jb, 100);
|
||||
if (z == 0) {
|
||||
|
Reference in New Issue
Block a user