Я проверил. Работает. При условии, что интерфейсы не включены в одну и ту же сеть (ошибка как у вас).
Может, проверить на Сизифе с #334829? Имеет смысл проверять сразу с двумя сетями и подключенными кабелями, пробовать выбирать интерфейс руками и указывать через командную строку. Возможно, это мой недосмотр многолетней давности. Везде вставил strdup(), а тут пропустил. Но ранее никто внятной диагностики не предоставлял.
Выбор по interface у вас отрабатывает.
Интерфейс только на половину отрабатывает, видимо дальше его название теряется.