X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2FQServer.c;h=23cc2cc79cdbee9b7280c1667c3ee34381d9c0ba;hp=1e112332bbf1bed146797caf7ccd1a90fd705543;hb=a40e0df080a82db2b1150492a8952cdfe3559185;hpb=4b9de3472bf8bb35214bd3c31289b7c601304686 diff --git a/src/QServer.c b/src/QServer.c index 1e11233..23cc2cc 100644 --- a/src/QServer.c +++ b/src/QServer.c @@ -1,4 +1,4 @@ -/* QServer.c - NeonServ v5.5 +/* QServer.c - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -54,14 +54,16 @@ void qserver_init() { char *host = get_string_field("QServer.host"); if(!host) host = "0.0.0.0"; - int portno = get_int_field("QServer.port"); - if(!portno) - portno = 7499; + int port = get_int_field("QServer.port"); + if(!port) + port = 7499; server_iofd = iohandler_listen(host, port, qserver_callback); } } void qserver_free() { + if(!server_iofd) + return; struct QServerClient *client, *next; for (client = qserver_clients; client; client = next) { next = client->next; @@ -87,7 +89,7 @@ static void qserver_put(struct QServerClient *client, const char *text, ...) { va_list arg_list; char sendBuf[MAXLEN]; int pos; - if (!(client && !(client->flags & QSERVER_FLAG_DISCONNECT))) return; + if (!client || !client->iofd) return; sendBuf[0] = '\0'; va_start(arg_list, text); pos = vsnprintf(sendBuf, MAXLEN - 2, text, arg_list); @@ -218,7 +220,7 @@ static IOHANDLER_CALLBACK(qserver_callback) { client->iofd = NULL; break; case IOEVENT_ACCEPT: - + qserver_accept(event->data.accept_fd); break; default: break;