From 2f75e2daa3af5f2ee899a3e57166c54bbe0499e3 Mon Sep 17 00:00:00 2001 From: Jens Geyer Date: Tue, 15 Apr 2014 21:14:04 +0200 Subject: [PATCH] THRIFT-2460 unopened socket fd must be less than zero. Client: C glib Patch: Jaesang Kim --- .../thrift/c_glib/transport/thrift_server_socket.c | 10 +++++----- .../src/thrift/c_glib/transport/thrift_socket.c | 14 +++++++------- .../src/thrift/c_glib/transport/thrift_transport.h | 3 +++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_server_socket.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_server_socket.c index 6ab7fde1..5d1f452b 100644 --- a/lib/c_glib/src/thrift/c_glib/transport/thrift_server_socket.c +++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_server_socket.c @@ -103,7 +103,7 @@ thrift_server_socket_listen (ThriftServerTransport *transport, GError **error) ThriftTransport * thrift_server_socket_accept (ThriftServerTransport *transport, GError **error) { - int sd = 0; + int sd = THRIFT_INVALID_SOCKET; guint addrlen = 0; struct sockaddr_in address; ThriftSocket *socket = NULL; @@ -137,7 +137,7 @@ thrift_server_socket_close (ThriftServerTransport *transport, GError **error) "unable to close socket - %s", strerror(errno)); return FALSE; } - tsocket->sd = 0; + tsocket->sd = THRIFT_INVALID_SOCKET; return TRUE; } @@ -153,7 +153,7 @@ thrift_server_socket_error_quark (void) static void thrift_server_socket_init (ThriftServerSocket *socket) { - socket->sd = 0; + socket->sd = THRIFT_INVALID_SOCKET; } /* destructor */ @@ -162,11 +162,11 @@ thrift_server_socket_finalize (GObject *object) { ThriftServerSocket *socket = THRIFT_SERVER_SOCKET (object); - if (socket->sd != 0) + if (socket->sd != THRIFT_INVALID_SOCKET) { close (socket->sd); } - socket->sd = 0; + socket->sd = THRIFT_INVALID_SOCKET; } /* property accessor */ diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c b/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c index 68eb21c7..1313577a 100644 --- a/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c +++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_socket.c @@ -47,7 +47,7 @@ gboolean thrift_socket_is_open (ThriftTransport *transport) { ThriftSocket *socket = THRIFT_SOCKET (transport); - return socket->sd != 0; + return socket->sd != THRIFT_INVALID_SOCKET; } /* implements thrift_transport_open */ @@ -63,7 +63,7 @@ thrift_socket_open (ThriftTransport *transport, GError **error) #endif ThriftSocket *tsocket = THRIFT_SOCKET (transport); - g_return_val_if_fail (tsocket->sd == 0, FALSE); + g_return_val_if_fail (tsocket->sd == THRIFT_INVALID_SOCKET, FALSE); /* lookup the destination host */ #if defined(HAVE_GETHOSTBYNAME_R) @@ -122,7 +122,7 @@ thrift_socket_close (ThriftTransport *transport, GError **error) return FALSE; } - socket->sd = 0; + socket->sd = THRIFT_INVALID_SOCKET; return TRUE; } @@ -172,7 +172,7 @@ thrift_socket_write (ThriftTransport *transport, const gpointer buf, guint sent = 0; ThriftSocket *socket = THRIFT_SOCKET (transport); - g_return_val_if_fail (socket->sd != 0, FALSE); + g_return_val_if_fail (socket->sd != THRIFT_INVALID_SOCKET, FALSE); while (sent < len) { @@ -216,7 +216,7 @@ thrift_socket_flush (ThriftTransport *transport, GError **error) static void thrift_socket_init (ThriftSocket *socket) { - socket->sd = 0; + socket->sd = THRIFT_INVALID_SOCKET; } /* destructor */ @@ -231,11 +231,11 @@ thrift_socket_finalize (GObject *object) } socket->hostname = NULL; - if (socket->sd != 0) + if (socket->sd != THRIFT_INVALID_SOCKET) { close (socket->sd); } - socket->sd = 0; + socket->sd = THRIFT_INVALID_SOCKET; } /* property accessor */ diff --git a/lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h b/lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h index 20f6cd45..65b57633 100644 --- a/lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h +++ b/lib/c_glib/src/thrift/c_glib/transport/thrift_transport.h @@ -147,6 +147,9 @@ typedef enum GQuark thrift_transport_error_quark (void); #define THRIFT_TRANSPORT_ERROR (thrift_transport_error_quark ()) +/* define macro for invalid socket */ +#define THRIFT_INVALID_SOCKET (-1) + G_END_DECLS #endif /* _THRIFT_TRANSPORT_H */ -- 2.17.1