diff --git a/fanout.c b/fanout.c index ffa631af80d68ddd804fb4d63d854b1765840818..ed84f29fda5b5668547a2e8e4757c09481be2cc2 100644 --- a/fanout.c +++ b/fanout.c @@ -152,7 +152,7 @@ int main (int argc, char *argv[]) hints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; hints.ai_socktype = SOCK_STREAM; int e; - int epollfd, nevents, efd, n, res; + int epollfd, efd, n, res; int portno = 1986; int optval; socklen_t optlen = sizeof(optval); @@ -500,6 +500,8 @@ xit\n"); fanout_debug (2, "max client connections: %d\n", client_limit); while (1) { + int nevents; + fanout_debug (3, "server waiting for new activity\n"); if ((nevents = epoll_wait (epollfd, events, max_events, -1)) == -1) @@ -706,9 +708,10 @@ char *str_append (char *target, const char *data) void clear_socket_buffer (int sock) { - int res; char buffer[1025]; for(;;) { + int res; + res = read (sock, buffer, 1024); if (res < 0) { @@ -916,9 +919,9 @@ void remove_client (struct client *c) void shutdown_client (struct client *c) { struct subscription *subscription_i = subscription_head; - struct subscription *subscription_tmp; while (subscription_i != NULL) { + struct subscription *subscription_tmp; subscription_tmp = subscription_i; subscription_i = subscription_i->next; if (c == subscription_tmp->client) @@ -947,11 +950,10 @@ void destroy_client (struct client *c) void client_write (struct client *c, const char *data) { - int sent; - c->output_buffer = str_append (c->output_buffer, data); while (strlen (c->output_buffer) > 0) { + int sent; sent = send (c->fd, c->output_buffer, strlen (c->output_buffer), MSG_NOSIGNAL); if (sent == -1) @@ -967,7 +969,6 @@ void client_write (struct client *c, const char *data) void client_process_input_buffer (struct client *c) { - char *line; char *message; char *action; char *channel; @@ -976,6 +977,7 @@ void client_process_input_buffer (struct client *c) fanout_debug (3, "full buffer\n\n%s\n\n", c->input_buffer); while ((i = strcpos (c->input_buffer, '\n')) >= 0) { + char *line; line = substr (c->input_buffer, 0, i -1); fanout_debug (3, "buffer has a newline at char %d\n", i); fanout_debug (3, "line is %d chars: %s\n", (u_int) strlen (line), line);