Полпятого утра.
Добавил в mpd55 команду set iface description TEMPLATE, где TEMPLATE - пусто или произвольное описание интерфейса (в двойных кавычках, если есть пробелы), в котором можно использовать подстановки:
- %a - локальный адрес интерфейса или UNSPEC, если адрес ещё не согласован;
- %A - адрес пира или UNSPEC, если адрес ещё не согласован;
- %i - системный индекс интерфейса;
- %I - имя интерфейса;
- %l - имя линка (link name), его mpd5 генерирует сам для динамических линков и посылает RADIUS-серверу в составе Session-Id, а также получает от него обратно в Packet Of Disconnect (POD);
- %S - состояние интерфейса (DoS/UP/DOWN);
- %t - тип линка (pppoe, pptp, l2tp etc.);
- %u - своё имя пользователя, если же мы не авторизовались пиру, то дефис в качестве placeholder;
- %U - имя пользователя пира, если он авторизовался, иначе дефис в качестве placeholder;
- %% - заменяется на один символ процента.
Описание интерфейса выводится командой ifconfig, а также видно через веб-интерфейс mpd5 в свойствах бандла и интерфейса, ну и через консольный интерфейс тоже.
Ещё перечитывал "Сказания Земноморья" Ле Гуин.
Update 21.11.2010:
http://www.grosbein.pp.ru/freebsd/patches/mpd55-desc-0.2.tar.bz2Работает в боевых условиях.
Update 22.12.2011:
http://www.grosbein.pp.ru/freebsd/patches/mpd55-desc-0.3.tar.bz2Добавил шаблон %M (MAC-адрес клиента). Сегодня вышел mpd-5.6, у него появилась штатно команда set iface description, но она ставит фиксированный дескрипшн, а не printf-like шаблон, как у меня.
Update 20.06.2013: сегодня в портах FreeBSD появился mpd-5.7, в него вошла эта реализация команды set iface description, заменившая старую. Теперь все эти функции в mpd есть "из коробки".