projects
/
NeonServV5.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
d367ee1
)
reimplemented auto reconnect for bots
author
pk910
<philipp@zoelle1.de>
Thu, 18 Oct 2012 18:52:21 +0000
(20:52 +0200)
committer
pk910
<philipp@zoelle1.de>
Thu, 18 Oct 2012 18:52:21 +0000
(20:52 +0200)
src/ClientSocket.c
patch
|
blob
|
history
diff --git
a/src/ClientSocket.c
b/src/ClientSocket.c
index d8faf26d4a0ec7c56ae3475f083b300300517df3..a624a305498337f8f2ff690144e78df2005a51c1 100644
(file)
--- a/
src/ClientSocket.c
+++ b/
src/ClientSocket.c
@@
-100,9
+100,10
@@
struct ClientSocket* create_socket(char *host, int port, char *bindto, char *pas
void connect_socket(struct ClientSocket *client) {
client->iofd = iohandler_connect(client->host, client->port, ((client->flags & SOCKET_FLAG_SSL) ? 1 : 0), client->bind, socket_callback);
client->iofd->data = client;
void connect_socket(struct ClientSocket *client) {
client->iofd = iohandler_connect(client->host, client->port, ((client->flags & SOCKET_FLAG_SSL) ? 1 : 0), client->bind, socket_callback);
client->iofd->data = client;
+ client->flags |= SOCKET_FLAG_RECONNECT;
}
}
-
int
close_socket(struct ClientSocket *client) {
+
static int _
close_socket(struct ClientSocket *client) {
if(client == NULL) return 0;
if((client->flags & SOCKET_FLAG_CONNECTED)) {
iohandler_printf(client->iofd, "QUIT :[NeonServ %s.%d] disconnect requested.\n", NEONSERV_VERSION, patchlevel);
if(client == NULL) return 0;
if((client->flags & SOCKET_FLAG_CONNECTED)) {
iohandler_printf(client->iofd, "QUIT :[NeonServ %s.%d] disconnect requested.\n", NEONSERV_VERSION, patchlevel);
@@
-122,6
+123,12
@@
int close_socket(struct ClientSocket *client) {
return 1;
}
return 1;
}
+int close_socket(struct ClientSocket *client) { //external call (don't reconnect)
+ if(client == NULL) return 0;
+ client->flags &= ~SOCKET_FLAG_RECONNECT;
+ return _close_socket(client);
+}
+
int destroy_socket(struct ClientSocket *client) {
if(client == NULL) return 0;
close_socket(client);
int destroy_socket(struct ClientSocket *client) {
if(client == NULL) return 0;
close_socket(client);
@@
-235,7
+242,7
@@
static IOHANDLER_CALLBACK(socket_callback) {
break;
case IOEVENT_NOTCONNECTED:
case IOEVENT_CLOSED:
break;
case IOEVENT_NOTCONNECTED:
case IOEVENT_CLOSED:
- close_socket(client);
+
_
close_socket(client);
if(client->flags & SOCKET_FLAG_RECONNECT) {
struct timeval timeout;
gettimeofday(&timeout, NULL);
if(client->flags & SOCKET_FLAG_RECONNECT) {
struct timeval timeout;
gettimeofday(&timeout, NULL);