Removing of static vars in the Networker
authorWilfried Goesgens <dothebart@citadel.org>
Wed, 14 Sep 2011 13:34:35 +0000 (13:34 +0000)
committerWilfried Goesgens <dothebart@citadel.org>
Wed, 14 Sep 2011 13:34:35 +0000 (13:34 +0000)
  - we have to fiddle them through the SpoolControl structure into the ForeachMessage() loop.

citadel/modules/network/netspool.h
citadel/modules/network/serv_netmail.c
citadel/modules/network/serv_netspool.c
citadel/modules/network/serv_network.c

index a998138a830fc8e10e02dea28ceb3aef3d406b65..fd2b3c209d33610e70bd0fb0527540359fd96961 100644 (file)
@@ -18,10 +18,15 @@ struct SpoolControl {
        char *misc;
        FILE *digestfp;
        int num_msgs_spooled;
+
+       char *working_ignetcfg;
+       NetMap *the_netmap;
 };
 
 
-void network_spoolout_room(char *room_to_spool);
+void network_spoolout_room(char *room_to_spool,                       
+                          char *working_ignetcfg,
+                          NetMap *the_netmap);
 void network_do_spoolin(char *working_ignetcfg, NetMap *the_netmap, int *netmap_changed);
 void network_consolidate_spoolout(char *working_ignetcfg, NetMap *the_netmap);
 void free_spoolcontrol_struct(SpoolControl **scc);
index ce94c1fc4a3741b054fc487f061fb22a6afac96b..e46a1dfde1c061f70753489f9709574f1b690ed9 100644 (file)
@@ -89,6 +89,7 @@
 #include "context.h"
 #include "netconfig.h"
 #include "netspool.h"
+#include "netmail.h"
 #include "ctdl_module.h"
 
 
@@ -257,9 +258,7 @@ void network_deliver_list(struct CtdlMessage *msg, SpoolControl *sc) {
  * Spools out one message from the list.
  */
 void network_spool_msg(long msgnum, 
-                      void *userdata, 
-                      char *working_ignetcfg,
-                      NetMap *the_netmap)
+                      void *userdata)
 {
        SpoolControl *sc;
        int i;
@@ -435,8 +434,8 @@ void network_spool_msg(long msgnum,
                                if (is_valid_node(NULL, 
                                                  NULL, 
                                                  msg->cm_fields['N'], 
-                                                 working_ignetcfg, 
-                                                 the_netmap) == 0)
+                                                 sc->working_ignetcfg, 
+                                                 sc->the_netmap) == 0)
                                {
                                        ok_to_participate = 1;
                                }
@@ -522,8 +521,8 @@ void network_spool_msg(long msgnum,
                        if (is_valid_node(NULL, 
                                          NULL, 
                                          mptr->remote_nodename, 
-                                         working_ignetcfg, 
-                                         the_netmap) != 0)
+                                         sc->working_ignetcfg, 
+                                         sc->the_netmap) != 0)
                        {
                                syslog(LOG_ERR, "Invalid node <%s>\n", mptr->remote_nodename);
                                send = 0;
index c014026458964f927ea1b0c82f25626dbcc3b629..f0128f0168fffdd5135000912a40f47ba69d8786 100644 (file)
@@ -380,7 +380,10 @@ int is_recipient(SpoolControl *sc, const char *Name)
 /*
  * Batch up and send all outbound traffic from the current room
  */
-void network_spoolout_room(char *room_to_spool) {
+void network_spoolout_room(char *room_to_spool,                       
+                          char *working_ignetcfg,
+                          NetMap *the_netmap)
+{
        char buf[SIZ];
        char filename[PATH_MAX];
        SpoolControl *sc;
@@ -407,6 +410,9 @@ void network_spoolout_room(char *room_to_spool) {
        }
        syslog(LOG_INFO, "Networking started for <%s>\n", CC->room.QRname);
 
+       sc->working_ignetcfg = working_ignetcfg;
+       sc->the_netmap = the_netmap;
+
        /* If there are digest recipients, we have to build a digest */
        if (sc->digestrecps != NULL) {
                sc->digestfp = tmpfile();
index 3f284ce4ad1e9089d8528accabc4e1c647dbe1a4..b3d19e31d4e9b4284f67f44784d88a783a413af6 100644 (file)
@@ -471,7 +471,9 @@ void network_do_queue(void) {
 
                        end_critical_section(S_RPLIST);
                        if (spoolroomname[0] != 0) {
-                               network_spoolout_room(spoolroomname);
+                               network_spoolout_room(spoolroomname, 
+                                                     working_ignetcfg,
+                                                     the_netmap);
                        }
                }
        }