From b0ff05dee9aa9b68dd003223964d5ad513292ce4 Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Fri, 12 Apr 2013 17:29:16 +0200 Subject: [PATCH] read device name in FreeBSD --- src/tun.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/tun.c b/src/tun.c index 1cb661b7..9bf32fa9 100644 --- a/src/tun.c +++ b/src/tun.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -414,6 +415,20 @@ int open_tun(main_server_st* s, struct lease_st** l) return -1; } + /* find device name */ + { + struct stat st; + + ret = fstat(tunfd, &st); + if (ret < 0) { + e = errno; + mslog(s, NULL, LOG_ERR, "%s: stat: %s\n", strerror(e)); + goto fail; + } + + snprintf(lease->name, sizeof(lease->name), "%s", devname(st.st_rdev, S_IFCHR)); + } + set_cloexec_flag (tunfd, 1); #endif