Hello,
some further inspection reveals the following code segment (line 468,
ifplugd.c):
if (select(FD_SETSIZE, &qfds, NULL, NULL, &tv) < 0) {
if (errno == EINTR)
continue;
daemon_log(LOG_ERR, "select(): %s", strerror(errno));
goto finish;
}
This means that error conditions are checked, but a timeout (return value 0)
is not treated differently from a select() returning a specific file
descriptor.
In this case, link beat has been logged to daemon.log as not detected (the
interface does not even exist, actually), so the select() always times out.
Since -M was not specified (waiting via netlink API on appearance of the
interface), ifplugd should even fail before that:
daemon_log(LOG_INFO, "Initialization complete, link beat %sdetected%s.",
status == IFSTATUS_UP ? "" : "not ", use_ifmonitor ? (disabled ?
", interface disabled" : ", interface enabled") : "");
beep(status == IFSTATUS_UP ? 0 : 1);
if (status == IFSTATUS_UP || initial_down)
if (action(status) < 0)
goto finish;
This should probably be the place where ifplugd bails out since interface is
not there.
Hope this helps,
-Malte
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]