Pull to refresh

Comments 8

лично я против подобных данных в паблике.
Ты бы еще ссылки на «самые популярные ресурсы» опубликовал.
  1. Содержимое onion-сайтов и так в открытом доступе, так как Tor-браузер в открытом доступе.
  2. Вы бы не стали возражать, если бы я поднял обычный веб-прокси? Как и в обычной сети, в онионе есть сайты разных тематик. Мне, например, нравятся их материалы по криптографии.
  3. Ссылки на различные сайты ониона выложены много где, кому надо — найдёт без моей помощи.
Хоть и не по теме, но отмечу, что у Polopo знатно утекают файловые дескрипторы на высоких нагрузках, т.к. где-то не закрываются корректно сокеты.
Для битовых операций в socks5.lua лучше было бы использовать Lua BitOp, в частности, bit.bswap
Мне кажется, лучше оставить текущий вариант. Из битовых операций вроде бы только преобразование номера порта к big endian, а это не самое нагруженное место. Если воспользоваться bit.*, всё равно потребуется привести к строке (string.char), а для этого нужно будет добыть отдельные байты (сдвигами или теми же делениями). Добавится зависимость от bit.* (а OpenResty может быть собран со стандартным Lua, в котором нет bit.*). Кроме того, такой код закладывается на то, что оборудование little-endian. Текущий вариант ни от чего не зависит и работает на любом оборудовании.
Lua BitOps поставляется вместе с FFI и там есть функция для обределения ednianess.
Действительно, есть ffi.abi(«le»). Однако кода будет больше (определить ednianess, развернуть порядок байт, достать байты, склеить в строку). Последних двух стадий избежать не получится в любом случае, а в текущем решении только они и есть.

Предлагаю написать двустрочник, который будет реализовывать ваш подход (bit.*) и протестировать его. Не думаю, что он будет работать быстрее текущего варианта. И опять же, это место кода не является бутылочным горлышком, поэтому не вижу смысла его оптимизировать.
Sign up to leave a comment.

Articles