-/* ClientSocket.c - NeonServ v5.1
+/* ClientSocket.c - NeonServ v5.2
* Copyright (C) 2011 Philipp Kreil (pk910)
*
* This program is free software: you can redistribute it and/or modify
}
client->sock = sock;
- client->flags |= SOCKET_FLAG_CONNECTED;
+ client->flags |= SOCKET_FLAG_CONNECTED | SOCKET_FLAG_RECONNECT;
client->connection_time = time(0);
//send the IRC Headers
}
client->sock = sock;
- client->flags |= SOCKET_FLAG_CONNECTED;
+ client->flags |= SOCKET_FLAG_CONNECTED | SOCKET_FLAG_RECONNECT;
client->connection_time = time(0);
//send the IRC Headers
char sendBuf[512];
int len;
- if(client->pass) {
+ if(client->pass && strcmp(client->pass, "")) {
len = sprintf(sendBuf, "PASS :%s\n", client->pass);
write_socket(client, sendBuf, len);
}
sock->bufferpos -= used;
}
}
+ } else if(!(sock->flags & SOCKET_FLAG_CONNECTED) && (sock->flags & SOCKET_FLAG_RECONNECT)) {
+ if(time(0) - sock->connection_time >= SOCKET_RECONNECT_TIME) {
+ connect_socket(sock);
+ }
}
}
}