--- nono/host/netdriver_tap.cpp 2026/04/29 17:04:48 1.1.1.3 +++ nono/host/netdriver_tap.cpp 2026/04/29 17:04:51 1.1.1.4 @@ -66,7 +66,7 @@ NetDriverTap::Init() if (devpath.empty()) { devpath = "auto"; } - putmsg(1, "NetDriverTap: %s", devpath.c_str()); + putmsg(1, "NetDriverTap: device \"%s\"", devpath.c_str()); // デバイス名や tap の作り方は OS ごとに異なる。 // もっと言えば、なんか適当にオープンしてほしいデフォルト挙動も全部違う。 @@ -153,14 +153,14 @@ NetDriverTap::OpenLinux() int r; // 指定がなければデフォルトパス - if (devpath.empty()) { + if (devpath == "auto") { devpath = "/dev/net/tun"; } // デバイスオープン fd = open(devpath.c_str(), O_RDWR); if (fd < 0) { - warnx("NetDriverTap.OpenLinux: %s", devpath.c_str()); + warn("NetDriverTap.OpenLinux: %s", devpath.c_str()); return false; } @@ -169,10 +169,11 @@ NetDriverTap::OpenLinux() strlcpy(ifr.ifr_name, "tap%d", sizeof(ifr.ifr_name)); r = ioctl(fd, TUNSETIFF, (void *)&ifr); if (r < 0) { - warn("NetDriverTap.OpenLinux: TUNSETIFF failed"); + warn("NetDriverTap.OpenLinux: %s: TUNSETIFF", devpath.c_str()); if (errno == EPERM) { fprintf(stderr, - " ** Set CAP_NET_ADMIN capability to the execute file.\n" + " ** Set CAP_NET_ADMIN capability to the nono executable file." + "\n" " ** ex) sudo setcap cap_net_admin=ep path/to/%s\n", getprogname()); } @@ -228,20 +229,20 @@ NetDriverTap::OpenNumbered() if (fd < 0) { // ファイルがないのを表示したら結構うるさいので除く if (errno != ENOENT) { - putmsg(1, "OpenNumbered: %s: %s", - devpath.c_str(), strerror(errno)); + putmsg(1, "%s: %s: %s", + __func__, devpath.c_str(), strerror(errno)); } continue; } // オープンできたら終了 - putmsg(1, "OpenNumbered: %s: found", devpath.c_str()); + putmsg(1, "%s: %s: found", __func__, devpath.c_str()); return true; } // 見付からなかった if (fd < 0) { errmsg = "no tap devices available"; - putmsg(1, "OpenNumbered: %s", errmsg.c_str()); + putmsg(1, "%s: %s", __func__, errmsg.c_str()); return false; } return false; @@ -265,15 +266,16 @@ NetDriverTap::OpenCloning() fd = open(devpath.c_str(), O_RDWR); if (fd < 0) { errmsg = string_format("%s: %s", devpath.c_str(), strerror(errno)); - putmsg(1, "OpenCloning: %s", errmsg.c_str()); + putmsg(1, "%s: %s", __func__, errmsg.c_str()); return false; } // オープンされたこのディスクリプタのインタフェース名を取得。 memset(&ifr, 0, sizeof(ifr)); if (ioctl(fd, TAPGIFNAME, &ifr) < 0) { - errmsg = devpath + ": TAPGIFNAME failed"; - putmsg(1, "OpenCloning: %s", errmsg.c_str()); + errmsg = string_format("%s: TAPGIFNAME: %s", + devpath.c_str(), strerror(errno)); + putmsg(1, "%s: %s", __func__, errmsg.c_str()); CloseFd(); return false; } @@ -284,7 +286,7 @@ NetDriverTap::OpenCloning() return true; #else errmsg = "TAPGIFNAME not compiled(?)"; - putmsg(1, "OpenCloning: %s", errmsg.c_str()); + putmsg(1, "%s: %s", __func__, errmsg.c_str()); return false; #endif } @@ -344,14 +346,14 @@ NetDriverTap::ThreadRun() kq = kqueue(); if (kq == -1) { - warn("kqueue failed"); + warn("kqueue"); return; } EV_SET(&kev, fd, EVFILT_READ, EV_ADD, 0, 0, (kevent_udata_t)0); r = kevent_set(kq, &kev, 1); if (r == -1) { - warn("kevent_set(fd=%d) failed", fd); + warn("kevent_set(fd=%d)", fd); return; } @@ -366,7 +368,7 @@ NetDriverTap::ThreadRun() continue; } // XXX ? - warn("kevent_poll failed"); + warn("kevent_poll"); break; } @@ -378,7 +380,7 @@ NetDriverTap::ThreadRun() if (errno == EINTR) { continue; } - warn("read(fd=%d) failed", fd); + warn("read"); break; } if (n == 0) { // EOF