diff options
Diffstat (limited to '')
-rw-r--r-- | src/SocketUtil.cxx (renamed from src/socket_util.c) | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/src/socket_util.c b/src/SocketUtil.cxx index a06a0cbd5..33ea4e2fe 100644 --- a/src/socket_util.c +++ b/src/SocketUtil.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2011 The Music Player Daemon Project + * Copyright (C) 2003-2013 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify @@ -18,10 +18,12 @@ */ #include "config.h" -#include "socket_util.h" +#include "SocketUtil.hxx" +#include "SocketError.hxx" #include "fd_util.h" -#include <errno.h> +#include <glib.h> + #include <unistd.h> #ifndef G_OS_WIN32 @@ -35,49 +37,42 @@ #include <string.h> #endif -static GQuark -listen_quark(void) -{ - return g_quark_from_static_string("listen"); -} - int socket_bind_listen(int domain, int type, int protocol, const struct sockaddr *address, size_t address_length, int backlog, - GError **error) + GError **error_r) { int fd, ret; const int reuse = 1; fd = socket_cloexec_nonblock(domain, type, protocol); if (fd < 0) { - g_set_error(error, listen_quark(), errno, - "Failed to create socket: %s", g_strerror(errno)); + SetSocketError(error_r); + g_prefix_error(error_r, "Failed to create socket"); return -1; } ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *) &reuse, sizeof(reuse)); if (ret < 0) { - g_set_error(error, listen_quark(), errno, - "setsockopt() failed: %s", g_strerror(errno)); + SetSocketError(error_r); + g_prefix_error(error_r, "setsockopt() failed"); close_socket(fd); return -1; } ret = bind(fd, address, address_length); if (ret < 0) { - g_set_error(error, listen_quark(), errno, - "%s", g_strerror(errno)); + SetSocketError(error_r); close_socket(fd); return -1; } ret = listen(fd, backlog); if (ret < 0) { - g_set_error(error, listen_quark(), errno, - "listen() failed: %s", g_strerror(errno)); + SetSocketError(error_r); + g_prefix_error(error_r, "listen() failed"); close_socket(fd); return -1; } |