aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-03-08 11:29:14 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2013-03-08 11:29:14 +0100
commit11701597c635b5e66ff29500e6a2aa739cdaf5df (patch)
treec7064d38bf2665e11373e4614957935bf6ff760e
parent29e3e409a36256cd1bf49c58970ebbeff8151497 (diff)
downloadsircbot-11701597c635b5e66ff29500e6a2aa739cdaf5df.tar.bz2
sircbot-11701597c635b5e66ff29500e6a2aa739cdaf5df.tar.xz
move disconnect to separate func
slightly cleaner code
-rw-r--r--sircbot.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sircbot.c b/sircbot.c
index bb965ad..89c175c 100644
--- a/sircbot.c
+++ b/sircbot.c
@@ -303,6 +303,14 @@ int parse_irc_data(struct sircbot_session *sb, char *buf)
return 0;
}
+static int irc_server_disconnect(struct irc_session *is)
+{
+ syslog(LOG_ERR, "%s: connection closed", is->server);
+ close(is->fd);
+ is->fd = -1;
+ return 0;
+}
+
/* callback functions */
static int irc_server_cb(struct sircbot_session *sb, struct pollfd *fds,
void *ctx)
@@ -311,13 +319,9 @@ static int irc_server_cb(struct sircbot_session *sb, struct pollfd *fds,
int r;
struct irc_session *sess = (struct irc_session *) ctx;
- if (fds->revents & POLLHUP) {
+ if (fds->revents & POLLHUP)
/* server hang up on us */
- printf("DEBUG: %s: connection closed\n", sess ? sess->server : "null");
- close(sess->fd);
- sess->fd = -1;
- return 0;
- }
+ return irc_server_disconnect(sess);
if (fds->revents & POLLERR) {
log_err(sess->server);