diff options
author | Martin Willi <martin@strongswan.org> | 2007-10-02 11:20:07 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2007-10-02 11:20:07 +0000 |
commit | 06011f688267e576899841abdba8122ab8b4d021 (patch) | |
tree | c9e992d9328f4ee0cecc59f5af632a8a49de524a /src/charon | |
parent | a3f100fa09fdd463ec2a70277fe222bc93ad8a72 (diff) | |
download | strongswan-06011f688267e576899841abdba8122ab8b4d021.tar.bz2 strongswan-06011f688267e576899841abdba8122ab8b4d021.tar.xz |
remove control sockets on startup, as we don't have privileges on shutdown
Diffstat (limited to 'src/charon')
-rwxr-xr-x | src/charon/control/interfaces/stroke_interface.c | 6 | ||||
-rw-r--r-- | src/charon/control/interfaces/xml_interface.c | 8 |
2 files changed, 5 insertions, 9 deletions
diff --git a/src/charon/control/interfaces/stroke_interface.c b/src/charon/control/interfaces/stroke_interface.c index f6935d547..a15090e4a 100755 --- a/src/charon/control/interfaces/stroke_interface.c +++ b/src/charon/control/interfaces/stroke_interface.c @@ -51,9 +51,6 @@ #define PATH_BUF 256 #define STROKE_THREADS 3 -struct sockaddr_un socket_addr = { AF_UNIX, STROKE_SOCKET}; - - typedef struct private_stroke_interface_t private_stroke_interface_t; /** @@ -1676,7 +1673,6 @@ static void destroy(private_stroke_interface_t *this) { this->job->cancel(this->job); free(this); - unlink(socket_addr.sun_path); } /* @@ -1684,6 +1680,7 @@ static void destroy(private_stroke_interface_t *this) */ interface_t *interface_create() { + struct sockaddr_un socket_addr = { AF_UNIX, STROKE_SOCKET}; private_stroke_interface_t *this = malloc_thing(private_stroke_interface_t); mode_t old; @@ -1699,6 +1696,7 @@ interface_t *interface_create() return NULL; } + unlink(socket_addr.sun_path); old = umask(~(S_IRWXU | S_IRWXG)); if (bind(this->socket, (struct sockaddr *)&socket_addr, sizeof(socket_addr)) < 0) { diff --git a/src/charon/control/interfaces/xml_interface.c b/src/charon/control/interfaces/xml_interface.c index fdb8e1c75..02da1064d 100644 --- a/src/charon/control/interfaces/xml_interface.c +++ b/src/charon/control/interfaces/xml_interface.c @@ -440,9 +440,6 @@ static job_requeue_t dispatch(private_xml_interface_t *this) return JOB_REQUEUE_DIRECT; } -/** XML unix socket */ -struct sockaddr_un unix_addr = { AF_UNIX, IPSEC_PIDDIR "/charon.xml"}; - /** * Implementation of itnerface_t.destroy. */ @@ -450,7 +447,6 @@ static void destroy(private_xml_interface_t *this) { this->job->cancel(this->job); close(this->socket); - unlink(unix_addr.sun_path); free(this); } @@ -459,6 +455,7 @@ static void destroy(private_xml_interface_t *this) */ interface_t *interface_create() { + struct sockaddr_un unix_addr = { AF_UNIX, IPSEC_PIDDIR "/charon.xml"}; private_xml_interface_t *this = malloc_thing(private_xml_interface_t); mode_t old; @@ -472,7 +469,8 @@ interface_t *interface_create() free(this); return NULL; } - + + unlink(unix_addr.sun_path); old = umask(~(S_IRWXU | S_IRWXG)); if (bind(this->socket, (struct sockaddr *)&unix_addr, sizeof(unix_addr)) < 0) { |