X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnetwork%2Fserv_network.c;h=fb5476cc913f479187a7f73d5f84ff5724f0a619;hb=66f09fdd7c3f58e13ed01431dd5148302327ca6e;hp=56492925e221a7ce68e1b769378db4e9e3d75f52;hpb=05dee7a425fa295c6b1ab5f4c8ec39314e4e1d8c;p=citadel.git diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index 56492925e..fb5476cc9 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -106,10 +106,9 @@ struct RoomProcList *rplist = NULL; */ int network_usetable(struct CtdlMessage *msg) { + StrBuf *msgid; struct CitContext *CCC = CC; - char msgid[SIZ]; - struct cdbdata *cdbut; - struct UseTable ut; + time_t now; /* Bail out if we can't generate a message ID */ if (msg == NULL) { @@ -123,28 +122,29 @@ int network_usetable(struct CtdlMessage *msg) } /* Generate the message ID */ - strcpy(msgid, msg->cm_fields['I']); - if (haschar(msgid, '@') == 0) { - strcat(msgid, "@"); + msgid = NewStrBufPlain(msg->cm_fields['I'], -1); + if (haschar(ChrPtr(msgid), '@') == 0) { + StrBufAppendBufPlain(msgid, HKEY("@"), 0); if (msg->cm_fields['N'] != NULL) { - strcat(msgid, msg->cm_fields['N']); + StrBufAppendBufPlain(msgid, msg->cm_fields['N'], -1, 0); } else { + FreeStrBuf(&msgid); return(0); } } - - cdbut = cdb_fetch(CDB_USETABLE, msgid, strlen(msgid)); - if (cdbut != NULL) { - cdb_free(cdbut); - QN_syslog(LOG_DEBUG, "network_usetable() : we already have %s\n", msgid); + now = time(NULL); + if (CheckIfAlreadySeen("Networker Import", + msgid, + now, 0, + eCheckUpdate, + CCC->cs_pid, 0) != 0) + { + FreeStrBuf(&msgid); return(1); } + FreeStrBuf(&msgid); - /* If we got to this point, it's unique: add it. */ - strcpy(ut.ut_msgid, msgid); - ut.ut_timestamp = time(NULL); - cdb_store(CDB_USETABLE, msgid, strlen(msgid), &ut, sizeof(struct UseTable) ); return(0); } @@ -184,11 +184,24 @@ int network_sync_to(char *target_node, long len) { return -1; } + memset(&sc, 0, sizeof(SpoolControl)); memset(&OneRNCFG, 0, sizeof(OneRoomNetCfg)); sc.RNCfg = &OneRNCFG; sc.RNCfg->NetConfigs[ignet_push_share] = DuplicateOneGenericCfgLine(pCfgLine); - + sc.Users[ignet_push_share] = NewStrBufPlain(NULL, + StrLength(pCfgLine->Value[0]) + + StrLength(pCfgLine->Value[1]) + 10); + StrBufAppendBuf(sc.Users[ignet_push_share], + pCfgLine->Value[0], + 0); + StrBufAppendBufPlain(sc.Users[ignet_push_share], + HKEY(","), + 0); + + StrBufAppendBuf(sc.Users[ignet_push_share], + pCfgLine->Value[1], + 0); CalcListID(&sc); end_critical_section(S_NETCONFIGS);