LINUX.ORG.RU
решено ФорумAdmin

atftpd замена слешей в запросе клиента


0

1

Доброго дня.

Нужен совет. Настраиваю загрузку через pxe, среди прочих нужно грузить и инсталяционный пакет оффтопика, а он запрашивает файлы в привычной ему записи пути - с обратными слешами. Atftpd без доработки напильником обратные слеши на прямые не подменяет. Почитал документацию, обнаружил, что можно подменять символы в запросах при помощи pcre. В документации сказано следующее:

Imagine you have a network of machines that all download an identical
config file, but each machine requests its file as <serialno>.conf where <serialno> is the serial number of the machine. This set up is useful when you wish each machine to have custom configs. When you which to have identical configurations on each box this is annoying. The solution is to map all requested files ending in .conf to one master.conf file via a regex. The exact expression I use is

^\w*\.conf$ master.conf

The left hand side is the expression to match, the right hand side is the substitution. This is equivalent to perls s/// statement. One or more of these expressions can be stored in a file (one per line) and feed to atftpd via a --pcre <filename> switch on the command line.

Так вот, либо я чего-то глухо не понимаю, либо утверждение «This is equivalent to perls s/// statement» не вполне соответствует истине, ибо в перле s/\\/\//g делает рровно то, что нужно, а запись

\\ /

в файле подстановок даёт совершенно иной эффект:

atftpd --pcre-test /etc/default/atftpd.pcre

\foo\foo

Substitution: «\foo\foo» -> «/»

Как его забороть? Интернет полнится примерами для tftpd, использующего map-файлы с синтаксисом sed, а ни одного примера для atftpd я найти не смог.

Так и не заборол atftpd, использую вместо него tftpd-hpa.

LexxTheFox ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.