document new dependencies
[apps/pfixtools.git] / common / server.c
index f142cb7..64368f4 100644 (file)
 /*     products derived from this software without specific prior written     */
 /*     permission.                                                            */
 /*                                                                            */
-/*  THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND   */
-/*  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE     */
-/*  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR        */
-/*  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS    */
-/*  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    */
-/*  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      */
-/*  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS  */
-/*  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN   */
-/*  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)   */
-/*  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF    */
-/*  THE POSSIBILITY OF SUCH DAMAGE.                                           */
+/*  THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS   */
+/*  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED         */
+/*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE    */
+/*  DISCLAIMED.  IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY         */
+/*  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL        */
+/*  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS   */
+/*  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)     */
+/*  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,       */
+/*  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN  */
+/*  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE           */
+/*  POSSIBILITY OF SUCH DAMAGE.                                               */
+/*                                                                            */
+/*   Copyright (c) 2006-2008 the Authors                                      */
+/*   see AUTHORS and source files for details                                 */
 /******************************************************************************/
 
 /*
@@ -100,6 +103,8 @@ static void client_wipe(client_t *server)
     if (server->data && server->clear_data) {
         server->clear_data(&server->data);
     }
+    server->obuf.len = 0;
+    server->ibuf.len = 0;
     server->data = NULL;
     server->clear_data = NULL;
     server->run = NULL;
@@ -176,8 +181,6 @@ static void client_cb(EV_P_ struct ev_io *w, int events)
 {
     client_t *server = (client_t*)w;
 
-    debug("Entering client_cb for %p, %d (%d | %d)", w, events, EV_WRITE, EV_READ);
-
     if (events & EV_WRITE && server->obuf.len) {
         if (buffer_write(&server->obuf, server->io.fd) < 0) {
             client_release(server);
@@ -319,9 +322,14 @@ module_exit(server_shutdown);
 
 static void refresh_cb(EV_P_ struct ev_signal *w, int event)
 {
+    log_state = "refreshing ";
     if (!gl_config_refresh(gl_config)) {
         ev_unloop(EV_A_ EVUNLOOP_ALL);
+        info("failed");
+    } else {
+        info("done");
     }
+    log_state = "";
 }
 
 static void exit_cb(EV_P_ struct ev_signal *w, int event)
@@ -351,6 +359,7 @@ int server_loop(start_client_t starter, delete_client_t deleter,
     ev_signal_init(&ev_sigterm, exit_cb, SIGTERM);
     ev_signal_start(gl_loop, &ev_sigterm);
 
+    log_state = "";
     info("entering processing loop");
     ev_loop(gl_loop, 0);
     info("exit requested");