From 4c892b02399e5efada29db44fb789eb6b744c06f Mon Sep 17 00:00:00 2001 From: Samuel Cormier-Iijima Date: Thu, 28 Feb 2008 16:24:44 -0500 Subject: [PATCH] Add g_socket_create_source --- gnio/gsocket.c | 14 ++++++++++++-- gnio/gsocket.h | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/gnio/gsocket.c b/gnio/gsocket.c index 4678e46..1be3ad9 100644 --- a/gnio/gsocket.c +++ b/gnio/gsocket.c @@ -404,7 +404,7 @@ g_socket_accept (GSocket *socket, if ((ret = accept (socket->priv->fd, NULL, 0)) < 0) { - g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "error accepting connection"); + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "error accepting connection: %s", g_strerror (errno)); return NULL; } @@ -467,7 +467,7 @@ g_socket_send (GSocket *socket, if ((ret = send (socket->priv->fd, buffer, size, 0)) < 0) { - g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "error receiving data: %s", g_strerror (errno)); + g_set_error (error, G_IO_ERROR, g_io_error_from_errno (errno), "error sending data: %s", g_strerror (errno)); return -1; } @@ -485,3 +485,13 @@ g_socket_close (GSocket *socket) close (socket->priv->fd); #endif } + +GSource * +g_socket_create_source (GSocket *socket, + GIOCondition condition, + GCancellable *cancellable) +{ + g_return_val_if_fail (G_IS_SOCKET (socket) && (cancellable == NULL || G_IS_CANCELLABLE (cancellable)), NULL); + + return _g_fd_source_new (socket->priv->fd, G_IO_IN | G_IO_HUP | G_IO_ERR, cancellable); +} diff --git a/gnio/gsocket.h b/gnio/gsocket.h index 84e2ba9..1e92e55 100644 --- a/gnio/gsocket.h +++ b/gnio/gsocket.h @@ -109,6 +109,10 @@ gssize g_socket_send (GSocket *socket, void g_socket_close (GSocket *socket); +GSource * g_socket_create_source (GSocket *socket, + GIOCondition condition, + GCancellable *cancellable); + G_END_DECLS #endif /* G_SOCKET_H */ -- 2.20.1