projects
/
NeonServV5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** VERSION 5.4.0 ***
[NeonServV5.git]
/
src
/
QServer.c
diff --git
a/src/QServer.c
b/src/QServer.c
index fd0e8e6676a1486bc5ab12059dbf265a279ddfe2..a9e36faa7b21d907ff6b70cf36dd69ed4964af06 100644
(file)
--- a/
src/QServer.c
+++ b/
src/QServer.c
@@
-1,4
+1,4
@@
-/* QServer.c - NeonServ v5.
3
+/* QServer.c - NeonServ v5.
4
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
* Copyright (C) 2011-2012 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
@@
-163,6
+163,8
@@
static void qserver_parse(struct QServerClient *client, char *line, int len) {
}
void qserver_loop() {
}
void qserver_loop() {
+ if(!get_int_field("QServer.enabled"))
+ return;
struct timeval tv;
struct QServerClient *client, *next, *prev = NULL;
int ret;
struct timeval tv;
struct QServerClient *client, *next, *prev = NULL;
int ret;
@@
-203,15
+205,20
@@
void qserver_loop() {
if(FD_ISSET(server_sockfd, &fds)) {
//new connection
struct sockaddr_in cli_addr;
if(FD_ISSET(server_sockfd, &fds)) {
//new connection
struct sockaddr_in cli_addr;
+ #ifdef WIN32
+ int clilen;
+ #else
socklen_t clilen;
socklen_t clilen;
+ #endif
+ 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);
if(qserver_clientcount >= QSERVER_MAXCLIENTS) {
qserver_put(client, "E :Maximum QServer Connections reached");
close(client->sock);
+ free(client);
} else {
} 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->lastmsg = now;
client->bufferpos = 0;
client->references = 0;
@@
-288,7
+295,7
@@
static void qserver_parse_U(struct QServerClient *client, char **argv, int argc)
}
client->references++;
client->flags |= QSERVER_FLAG_IN_USE;
}
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) {
}
static USERAUTH_CALLBACK(qserver_parse_U_async) {
@@
-345,7
+352,7
@@
static void qserver_parse_ACU(struct QServerClient *client, char **argv, int arg
if(argc > 1 && !stricmp(argv[1], "1")) {
client->references++;
client->flags |= QSERVER_FLAG_IN_USE;
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];
return;
}
char tmpStr[6];