}
void qserver_loop() {
+ if(!get_int_field("QServer.enabled"))
+ return;
struct timeval tv;
struct QServerClient *client, *next, *prev = NULL;
int ret;
//new connection
struct sockaddr_in cli_addr;
socklen_t clilen;
+ client = malloc(sizeof(*client));
+ clilen = sizeof(cli_addr);
+ client->sock = accept(server_sockfd, (struct sockaddr *) &cli_addr, &clilen);
+ client->flags = 0;
if(qserver_clientcount >= QSERVER_MAXCLIENTS) {
qserver_put(client, "E :Maximum QServer Connections reached");
close(client->sock);
+ free(client);
} else {
- client = malloc(sizeof(*client));
- clilen = sizeof(cli_addr);
- client->sock = accept(server_sockfd, (struct sockaddr *) &cli_addr, &clilen);
- client->flags = 0;
client->lastmsg = now;
client->bufferpos = 0;
client->references = 0;
}
client->references++;
client->flags |= QSERVER_FLAG_IN_USE;
- get_userauth(cuser, qserver_parse_U_async, client);
+ get_userauth(cuser, 0, qserver_parse_U_async, client);
}
static USERAUTH_CALLBACK(qserver_parse_U_async) {
if(argc > 1 && !stricmp(argv[1], "1")) {
client->references++;
client->flags |= QSERVER_FLAG_IN_USE;
- get_userlist_if_invisible(chan, qserver_parse_ACU_async, client);
+ get_userlist_if_invisible(chan, 0, qserver_parse_ACU_async, client);
return;
}
char tmpStr[6];