socket-proxyd: no need to redefine sockaddr union

This commit is contained in:
Lennart Poettering 2013-11-07 16:43:25 +01:00
parent 3deadb918f
commit 1ec6af16f5

View file

@ -63,14 +63,6 @@ typedef struct Connection {
sd_event_source *server_event_source, *client_event_source;
} Connection;
union sockaddr_any {
struct sockaddr sa;
struct sockaddr_un un;
struct sockaddr_in in;
struct sockaddr_in6 in6;
struct sockaddr_storage storage;
};
static const char *arg_remote_host = NULL;
static void connection_free(Connection *c) {
@ -106,7 +98,7 @@ static void context_free(Context *context) {
set_free(context->connections);
}
static int get_remote_sockaddr(union sockaddr_any *sa, socklen_t *salen) {
static int get_remote_sockaddr(union sockaddr_union *sa, socklen_t *salen) {
int r;
assert(sa);
@ -117,7 +109,7 @@ static int get_remote_sockaddr(union sockaddr_any *sa, socklen_t *salen) {
strncpy(sa->un.sun_path, arg_remote_host, sizeof(sa->un.sun_path)-1);
sa->un.sun_path[sizeof(sa->un.sun_path)-1] = 0;
*salen = offsetof(union sockaddr_any, un.sun_path) + strlen(sa->un.sun_path);
*salen = offsetof(union sockaddr_union, un.sun_path) + strlen(sa->un.sun_path);
} else if (arg_remote_host[0] == '@') {
sa->un.sun_family = AF_UNIX;
@ -125,7 +117,7 @@ static int get_remote_sockaddr(union sockaddr_any *sa, socklen_t *salen) {
strncpy(sa->un.sun_path+1, arg_remote_host+1, sizeof(sa->un.sun_path)-2);
sa->un.sun_path[sizeof(sa->un.sun_path)-1] = 0;
*salen = offsetof(union sockaddr_any, un.sun_path) + 1 + strlen(sa->un.sun_path + 1);
*salen = offsetof(union sockaddr_union, un.sun_path) + 1 + strlen(sa->un.sun_path + 1);
} else {
_cleanup_freeaddrinfo_ struct addrinfo *result = NULL;
@ -154,7 +146,7 @@ static int get_remote_sockaddr(union sockaddr_any *sa, socklen_t *salen) {
}
assert(result);
if (result->ai_addrlen > sizeof(union sockaddr_any)) {
if (result->ai_addrlen > sizeof(union sockaddr_union)) {
log_error("Address too long.");
return -E2BIG;
}
@ -388,7 +380,7 @@ fail:
}
static int add_connection_socket(Context *context, sd_event *event, int fd) {
union sockaddr_any sa = {};
union sockaddr_union sa = {};
socklen_t salen;
Connection *c;
int r;