X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=common%2Fserver.c;h=64368f41a8d2bd1f33f38ae23a86aa852b820688;hb=fd9afbc80e667a37f1643a8b8d6d401a6ff191e4;hp=f142cb740c1bf68db40fcf7db62a724a3fb9b6d3;hpb=09cd9ac733c72efbd4f0b7ca90f2e2ccc60d2c07;p=apps%2Fpfixtools.git diff --git a/common/server.c b/common/server.c index f142cb7..64368f4 100644 --- a/common/server.c +++ b/common/server.c @@ -16,17 +16,20 @@ /* 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");