diff options
Diffstat (limited to 'libpurple/protocols/msn/servconn.c')
-rw-r--r-- | libpurple/protocols/msn/servconn.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libpurple/protocols/msn/servconn.c b/libpurple/protocols/msn/servconn.c index 96a164f391..a3bc5996f7 100644 --- a/libpurple/protocols/msn/servconn.c +++ b/libpurple/protocols/msn/servconn.c @@ -301,7 +301,8 @@ static void servconn_write_cb(gpointer data, gint source, PurpleInputCondition cond) { MsnServConn *servconn = data; - int ret, writelen; + gssize ret; + int writelen; writelen = purple_circ_buffer_get_max_read(servconn->tx_buf); @@ -385,7 +386,8 @@ read_cb(gpointer data, gint source, PurpleInputCondition cond) MsnSession *session; char buf[MSN_BUF_LEN]; char *cur, *end, *old_rx_buf; - int len, cur_len; + gssize len; + int cur_len; servconn = data; session = servconn->session; @@ -399,7 +401,7 @@ read_cb(gpointer data, gint source, PurpleInputCondition cond) } else if (len <= 0) { purple_debug_error("msn", "servconn read error," - "len: %d, errno: %d, error: %s\n", + "len: %" G_GSSIZE_FORMAT ", errno: %d, error: %s\n", len, errno, g_strerror(errno)); msn_servconn_got_error(servconn, MSN_SERVCONN_ERROR_READ); @@ -555,6 +557,9 @@ create_listener(int port) flags = fcntl(fd, F_GETFL); fcntl(fd, F_SETFL, flags | O_NONBLOCK); +#ifndef _WIN32 + fcntl(fd, F_SETFD, FD_CLOEXEC); +#endif return fd; } |