Networker: more verbose INFO-logging about what we do / did with files.
[citadel.git] / citadel / modules / network / serv_netspool.c
index 786717f6558c04db33a60f8b8812554eaf47d380..02dbcabb23f3f7664b95a45f63ca001daf57a1fe 100644 (file)
@@ -224,6 +224,7 @@ void InspectQueuedRoom(SpoolControl **pSC,
 
 void CalcListID(SpoolControl *sc)
 {
+       StrBuf *RoomName;
        const char *err;
        int fd;
        struct CitContext *CCC = CC;
@@ -264,6 +265,9 @@ void CalcListID(SpoolControl *sc)
        }
 
        StrBufAppendBufPlain(sc->ListID, HKEY("<"), 0);
+       RoomName = NewStrBufPlain (sc->room.QRname, -1);
+       StrBufAsciify(RoomName, '_');
+       StrBufReplaceChars(RoomName, ' ', '_');
 
        if (StrLength(sc->Users[roommailalias]) > 0)
        {
@@ -282,7 +286,7 @@ void CalcListID(SpoolControl *sc)
        else
        {
                StrBufAppendBufPlain(sc->ListID, HKEY("room_"), 0);
-               StrBufAppendBufPlain(sc->ListID, sc->room.QRname, -1, 0);
+               StrBufAppendBuf(sc->ListID, RoomName, 0);
                StrBufAppendBufPlain(sc->ListID, HKEY("."), 0);
                StrBufAppendBufPlain(sc->ListID, config.c_fqdn, -1, 0);
                /*
@@ -299,15 +303,15 @@ void CalcListID(SpoolControl *sc)
        {
                sc->Users[roommailalias] = NewStrBuf();
                
-               StrBufPrintf(sc->Users[roommailalias],
-                            "room_%s@%s",
-                            CCC->room.QRname,
-                            config.c_fqdn);
+               StrBufAppendBufPlain(sc->Users[roommailalias], HKEY("room_"), 0);
+               StrBufAppendBuf(sc->Users[roommailalias], RoomName, 0);
+               StrBufAppendBufPlain(sc->Users[roommailalias], HKEY("@"), 0);
+               StrBufAppendBufPlain(sc->Users[roommailalias], config.c_fqdn, -1, 0);
 
-               StrBufAsciify(sc->Users[roommailalias], '_');
                StrBufLowerCase(sc->Users[roommailalias]);
        }
 
+       FreeStrBuf(&RoomName);
 }
 
 
@@ -395,6 +399,7 @@ void network_spoolout_room(SpoolControl *sc)
  */
 void network_process_buffer(char *buffer, long size, HashList *working_ignetcfg, HashList *the_netmap, int *netmap_changed)
 {
+       long len;
        struct CitContext *CCC = CC;
        StrBuf *Buf = NULL;
        struct CtdlMessage *msg = NULL;
@@ -433,8 +438,10 @@ void network_process_buffer(char *buffer, long size, HashList *working_ignetcfg,
 
        for (pos = 3; pos < size; ++pos) {
                field = buffer[pos];
-               msg->cm_fields[field] = strdup(&buffer[pos+1]);
-               pos = pos + strlen(&buffer[(int)pos]);
+               len = strlen(buffer + pos + 1);
+               msg->cm_fields[field] = malloc(len + 1);
+               memcpy (msg->cm_fields[field], buffer+ pos + 1, len + 1);
+               pos = pos + len + 1;
        }
 
        /* Check for message routing */
@@ -621,7 +628,7 @@ void network_process_file(char *filename,
        long msgend = (-1L);
        long msgcur = 0L;
        int ch;
-
+       int nMessages = 0;
 
        fp = fopen(filename, "rb");
        if (fp == NULL) {
@@ -650,6 +657,7 @@ void network_process_file(char *filename,
                }
 
                ++msgcur;
+               nMessages ++;
        }
 
        msgend = msgcur - 1;
@@ -660,8 +668,15 @@ void network_process_file(char *filename,
                                        working_ignetcfg,
                                        the_netmap,
                                        netmap_changed);
+               nMessages ++;
        }
 
+       if (nMessages > 0)
+               QN_syslog(LOG_INFO,
+                         "network: processed %d messages in %s\n",
+                         nMessages,
+                         filename);
+
        fclose(fp);
        unlink(filename);
 }
@@ -924,7 +939,7 @@ void network_consolidate_spoolout(HashList *working_ignetcfg, HashList *the_netm
                        if (err == NULL) {
                                unlink(filename);
                                QN_syslog(LOG_DEBUG,
-                                         "Spoolfile %s now %ld k\n",
+                                         "Spoolfile %s now "SIZE_T_FMT" k\n",
                                          spooloutfilename,
                                          (dsize + fsize)/1024
                                        );