[ovs-dev] [PATCH 04/13] netdev-bsd: NetBSD: keep a AF_LINK socket open
yamt at mwd.biglobe.ne.jp
yamt at mwd.biglobe.ne.jp
Tue May 21 08:49:56 UTC 2013
From: YAMAMOTO Takashi <yamt at mwd.biglobe.ne.jp>
this will be used for get_stats and set_etheraddr
Signed-off-by: YAMAMOTO Takashi <yamt at mwd.biglobe.ne.jp>
---
lib/netdev-bsd.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c
index 06f5fdf..3e91261 100644
--- a/lib/netdev-bsd.c
+++ b/lib/netdev-bsd.c
@@ -105,6 +105,11 @@ enum {
/* An AF_INET socket (used for ioctl operations). */
static int af_inet_sock = -1;
+#if defined(__NetBSD__)
+/* AF_LINK socket used for netdev_bsd_get_stats and set_etheraddr */
+static int af_link_sock = -1;
+#endif /* defined(__NetBSD__) */
+
#define PCAP_SNAPLEN 2048
@@ -176,9 +181,17 @@ netdev_bsd_init(void)
af_inet_sock = socket(AF_INET, SOCK_DGRAM, 0);
status = af_inet_sock >= 0 ? 0 : errno;
-
if (status) {
VLOG_ERR("failed to create inet socket: %s", strerror(status));
+ return status;
+ }
+
+ af_link_sock = socket(AF_LINK, SOCK_DGRAM, 0);
+ status = af_link_sock >= 0 ? 0 : errno;
+ if (status) {
+ VLOG_ERR("failed to create link socket: %s", strerror(status));
+ close(af_inet_sock);
+ af_inet_sock = -1;
}
return status;
--
1.8.0.1
More information about the dev
mailing list