svn commit: r267715 - in head: contrib/wpa/src/utils usr.sbin/wpa/hostapd usr.sbin/wpa/hostapd_cli usr.sbin/wpa/wpa_cli usr.sbin/wpa/wpa_passphrase usr.sbin/wpa/wpa_supplicant
John-Mark Gurney
jmg at FreeBSD.org
Sun Jun 22 10:00:35 UTC 2014
Author: jmg
Date: Sun Jun 22 10:00:33 2014
New Revision: 267715
URL: http://svnweb.freebsd.org/changeset/base/267715
Log:
convert to using pidfile... This prevents multiple wpa_supplicants
running at the same time causing problems w/ wifi not working..
the patch will be submitted upstream... The next step if someone wants
to push it upstream is to break os_unix.c up so that all these other
utilities don't need libutil..
Reviewed by: rpaulo
Modified:
head/contrib/wpa/src/utils/os_unix.c
head/usr.sbin/wpa/hostapd/Makefile
head/usr.sbin/wpa/hostapd_cli/Makefile
head/usr.sbin/wpa/wpa_cli/Makefile
head/usr.sbin/wpa/wpa_passphrase/Makefile
head/usr.sbin/wpa/wpa_supplicant/Makefile
Modified: head/contrib/wpa/src/utils/os_unix.c
==============================================================================
--- head/contrib/wpa/src/utils/os_unix.c Sun Jun 22 08:32:31 2014 (r267714)
+++ head/contrib/wpa/src/utils/os_unix.c Sun Jun 22 10:00:33 2014 (r267715)
@@ -153,16 +153,40 @@ static int os_daemon(int nochdir, int no
#endif /* __APPLE__ */
+#ifdef __FreeBSD__
+#include <err.h>
+#include <libutil.h>
+#include <stdint.h>
+#endif /* __FreeBSD__ */
+
int os_daemonize(const char *pid_file)
{
#if defined(__uClinux__) || defined(__sun__)
return -1;
#else /* defined(__uClinux__) || defined(__sun__) */
+#ifdef __FreeBSD__
+ pid_t otherpid;
+ struct pidfh *pfh;
+
+ pfh = pidfile_open(pid_file, 0600, &otherpid);
+ if (pfh == NULL) {
+ if (errno == EEXIST) {
+ errx(1, "Daemon already running, pid: %jd.",
+ (intmax_t)otherpid);
+ }
+ warn("Cannot open or create pidfile.");
+ }
+#endif /* __FreeBSD__ */
+
if (os_daemon(0, 0)) {
perror("daemon");
+#ifdef __FreeBSD__
+ pidfile_remove(pfh);
+#endif /* __FreeBSD__ */
return -1;
}
+#ifndef __FreeBSD__
if (pid_file) {
FILE *f = fopen(pid_file, "w");
if (f) {
@@ -170,6 +194,9 @@ int os_daemonize(const char *pid_file)
fclose(f);
}
}
+#else /* __FreeBSD__ */
+ pidfile_write(pfh);
+#endif /* __FreeBSD__ */
return -0;
#endif /* defined(__uClinux__) || defined(__sun__) */
Modified: head/usr.sbin/wpa/hostapd/Makefile
==============================================================================
--- head/usr.sbin/wpa/hostapd/Makefile Sun Jun 22 08:32:31 2014 (r267714)
+++ head/usr.sbin/wpa/hostapd/Makefile Sun Jun 22 10:00:33 2014 (r267715)
@@ -46,8 +46,8 @@ CFLAGS+=-DCONFIG_DRIVER_BSD \
CFLAGS+= -DCONFIG_IPV6
.endif
#CFLAGS+= -g
-DPADD+= ${LIBPCAP}
-LDADD+= -lpcap
+DPADD+= ${LIBPCAP} ${LIBUTIL}
+LDADD+= -lpcap -lutil
# User customizations for wpa_supplicant/hostapd build environment
CFLAGS+=${HOSTAPD_CFLAGS}
Modified: head/usr.sbin/wpa/hostapd_cli/Makefile
==============================================================================
--- head/usr.sbin/wpa/hostapd_cli/Makefile Sun Jun 22 08:32:31 2014 (r267714)
+++ head/usr.sbin/wpa/hostapd_cli/Makefile Sun Jun 22 10:00:33 2014 (r267715)
@@ -10,6 +10,9 @@ SRCS= common.c edit.c eloop.c hostapd_cl
CFLAGS+= -DCONFIG_CTRL_IFACE
CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX
+DPADD+= ${LIBUTIL}
+LDADD+= -lutil
+
MAN= hostapd_cli.8
.include <bsd.prog.mk>
Modified: head/usr.sbin/wpa/wpa_cli/Makefile
==============================================================================
--- head/usr.sbin/wpa/wpa_cli/Makefile Sun Jun 22 08:32:31 2014 (r267714)
+++ head/usr.sbin/wpa/wpa_cli/Makefile Sun Jun 22 10:00:33 2014 (r267715)
@@ -15,7 +15,7 @@ CFLAGS+= -DCONFIG_CTRL_IFACE_UNIX
CFLAGS+= -D_DIRENT_HAVE_D_TYPE
CFLAGS+= -DCONFIG_READLINE -I${DESTDIR}/${INCLUDEDIR}/edit
-LDADD+= -ledit -ltermcap
-DPADD+= ${LIBEDIT} ${LIBTERMCAP}
+LDADD+= -ledit -ltermcap -lutil
+DPADD+= ${LIBEDIT} ${LIBTERMCAP} ${LIBUTIL}
.include <bsd.prog.mk>
Modified: head/usr.sbin/wpa/wpa_passphrase/Makefile
==============================================================================
--- head/usr.sbin/wpa/wpa_passphrase/Makefile Sun Jun 22 08:32:31 2014 (r267714)
+++ head/usr.sbin/wpa/wpa_passphrase/Makefile Sun Jun 22 10:00:33 2014 (r267715)
@@ -11,6 +11,9 @@ SRCS= common.c md5-internal.c md5.c os_u
CFLAGS+= -DINTERNAL_SHA1
CFLAGS+= -DINTERNAL_MD5
+DPADD+= ${LIBUTIL}
+LDADD+= -lutil
+
MAN= wpa_passphrase.8
.include <bsd.prog.mk>
Modified: head/usr.sbin/wpa/wpa_supplicant/Makefile
==============================================================================
--- head/usr.sbin/wpa/wpa_supplicant/Makefile Sun Jun 22 08:32:31 2014 (r267714)
+++ head/usr.sbin/wpa/wpa_supplicant/Makefile Sun Jun 22 10:00:33 2014 (r267715)
@@ -49,8 +49,8 @@ CFLAGS+=-DCONFIG_BACKEND_FILE \
-DCONFIG_GAS \
-DPKCS12_FUNCS
#CFLAGS+= -g
-DPADD+= ${LIBPCAP}
-LDADD+= -lpcap
+DPADD+= ${LIBPCAP} ${LIBUTIL}
+LDADD+= -lpcap -lutil
# User customizations to the wpa_supplicant build environment
CFLAGS+=${WPA_SUPPLICANT_CFLAGS}
More information about the svn-src-all
mailing list