fix for ctrl interface socket setup

Submitted by:	brooks
This commit is contained in:
Sam Leffler 2005-06-05 21:13:08 +00:00
parent 75c61a94a4
commit b1bb8b1684

View File

@ -10,6 +10,8 @@
* license. * license.
* *
* See README and COPYING for more details. * See README and COPYING for more details.
*
* $FreeBSD$
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -88,7 +90,7 @@ struct wpa_ctrl * wpa_ctrl_open(const char *ctrl_path)
} }
ctrl->local.sun_family = AF_UNIX; ctrl->local.sun_family = AF_UNIX;
snprintf(ctrl->local.sun_path, sizeof(ctrl->local.sun_path), snprintf(ctrl->local.sun_path, sizeof(ctrl->local.sun_path) - 1,
"/tmp/wpa_ctrl_%d-%d", getpid(), counter++); "/tmp/wpa_ctrl_%d-%d", getpid(), counter++);
if (bind(ctrl->s, (struct sockaddr *) &ctrl->local, if (bind(ctrl->s, (struct sockaddr *) &ctrl->local,
sizeof(ctrl->local.sun_family) + sizeof(ctrl->local.sun_family) +
@ -99,10 +101,9 @@ struct wpa_ctrl * wpa_ctrl_open(const char *ctrl_path)
} }
ctrl->dest.sun_family = AF_UNIX; ctrl->dest.sun_family = AF_UNIX;
strncpy(ctrl->dest.sun_path, ctrl_path, sizeof(ctrl->dest.sun_path)); strncpy(ctrl->dest.sun_path, ctrl_path, sizeof(ctrl->dest.sun_path) - 1);
if (connect(ctrl->s, (struct sockaddr *) &ctrl->dest, if (connect(ctrl->s, (struct sockaddr *) &ctrl->dest,
sizeof(ctrl->dest.sun_family) + sizeof(ctrl->dest)) < 0) {
strlen(ctrl->dest.sun_path)) < 0) {
close(ctrl->s); close(ctrl->s);
unlink(ctrl->local.sun_path); unlink(ctrl->local.sun_path);
free(ctrl); free(ctrl);