From 11701597c635b5e66ff29500e6a2aa739cdaf5df Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Fri, 8 Mar 2013 11:29:14 +0100 Subject: move disconnect to separate func slightly cleaner code --- sircbot.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'sircbot.c') 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); -- cgit v1.2.3