X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/f08c0859513712f805da09ae1e1bcefb436b4096..768d7355deef8b14f6d2d5bdc9bc8d5f01d2d0aa:/server/server.c diff --git a/server/server.c b/server/server.c index 2875ffb..5a11b8c 100644 --- a/server/server.c +++ b/server/server.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2004, 2005, 2006 Richard Kettlewell + * Copyright (C) 2004, 2005, 2006, 2007 Richard Kettlewell * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -140,6 +140,8 @@ static int reader_error(ev_source attribute((unused)) *ev, D(("server reader_error %d %d", fd, errno_value)); error(errno, "S%x read error on socket", c->tag); ev_writer_cancel(c->w); + ev_report(ev); + info("closing fd %d", fd); xclose(fd); return 0; } @@ -778,8 +780,8 @@ static int c_log(struct conn *c, static void post_move_cleanup(void) { struct queue_entry *q; - /* If we have caused the random track to not be at the end then we make it no - * longer be random. */ + /* If we have caused any random tracks to not be at the end then we make them + * no longer be random. */ for(q = qhead.next; q != &qhead; q = q->next) if(q->state == playing_random && q->next != &qhead) q->state = playing_unplayed; @@ -1110,8 +1112,10 @@ static int listen_callback(ev_source *ev, cloexec(fd); c->tag = tags++; c->ev = ev; - c->w = ev_writer_new(ev, fd, writer_error, c); - c->r = ev_reader_new(ev, fd, redirect_reader_callback, reader_error, c); + c->w = ev_writer_new(ev, fd, writer_error, c, + "client writer"); + c->r = ev_reader_new(ev, fd, redirect_reader_callback, reader_error, c, + "client reader"); c->fd = fd; c->reader = reader_callback; c->l = l; @@ -1147,7 +1151,8 @@ int server_start(ev_source *ev, int pf, cloexec(fd); l->name = name; l->pf = pf; - if(ev_listen(ev, fd, listen_callback, l)) exit(EXIT_FAILURE); + if(ev_listen(ev, fd, listen_callback, l, "server listener")) + exit(EXIT_FAILURE); return fd; }