Revert "Revert "s3-printing: update parent smbd pcap cache""
authorDavid Disseldorp <ddiss@suse.de>
Thu, 19 May 2011 09:29:12 +0000 (11:29 +0200)
committerKarolin Seeger <kseeger@samba.org>
Thu, 18 Aug 2011 19:14:45 +0000 (21:14 +0200)
This reverts commit ad450870eacb114b3f15941a4478ba25701e035a.

Signed-off-by: Günther Deschner <gd@samba.org>
(cherry picked from commit ee094b53d7fd9c46bca57b9815993282c63af00c)

source3/include/local.h
source3/smbd/process.c
source3/smbd/server.c

index a88b17be137353194e64674829ee78194a5992f9..d65cc001a91d99158885df62120626d973175949 100644 (file)
 #define LPQ_LOCK_TIMEOUT (5)
 #define NMBD_INTERFACES_RELOAD (120)
 #define NMBD_UNEXPECTED_TIMEOUT (15)
+#define SMBD_HOUSEKEEPING_INTERVAL SMBD_SELECT_TIMEOUT
 
 /* the following are in milliseconds */
 #define LOCK_RETRY_TIMEOUT (100)
index 2abea8f4bcc3fd96d30a0f7f3331f8fb810687c9..4b2e6eb79c26bae105f3940aa637088c0e468460 100644 (file)
@@ -1854,7 +1854,7 @@ void check_reload(time_t t)
                        || (t-last_printer_reload_time  < 0) ) 
                {
                        DEBUG( 3,( "Printcap cache time expired.\n"));
-                       reload_printers();
+                       pcap_cache_reload(&reload_printers);
                        last_printer_reload_time = t;
                }
        }
@@ -2123,7 +2123,7 @@ void smbd_process(void)
        }
 
        if (!(event_add_idle(smbd_event_context(), NULL,
-                            timeval_set(SMBD_SELECT_TIMEOUT, 0),
+                            timeval_set(SMBD_HOUSEKEEPING_INTERVAL, 0),
                             "housekeeping", housekeeping_fn, NULL))) {
                DEBUG(0, ("Could not add housekeeping event\n"));
                exit(1);
index 72a15fc5575b6fcee1e3c35ee72640b271b95882..6147526172ce700d5d71f1f8758098e4cab6de16 100644 (file)
@@ -498,6 +498,14 @@ static bool smbd_open_one_socket(struct smbd_parent_context *parent,
        return true;
 }
 
+static bool parent_housekeeping_fn(const struct timeval *now, void *private_data)
+{
+       DEBUG(5, ("houskeeping\n"));
+       /* check if we need to reload services */
+       check_reload(time(NULL));
+       return true;
+}
+
 /****************************************************************************
  Open the socket communication.
 ****************************************************************************/
@@ -625,6 +633,14 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
        claim_connection(NULL,"",
                         FLAG_MSG_GENERAL|FLAG_MSG_SMBD|FLAG_MSG_DBWRAP);
 
+       if (!(event_add_idle(smbd_event_context(), NULL,
+                            timeval_set(SMBD_HOUSEKEEPING_INTERVAL, 0),
+                            "parent_housekeeping", parent_housekeeping_fn,
+                            parent))) {
+               DEBUG(0, ("Could not add housekeeping event\n"));
+               exit(1);
+       }
+
         /* Listen to messages */
 
        messaging_register(smbd_messaging_context(), NULL,