вторник, 17 марта 2009 г.

Про патчи

Я тут недавно писал о том, как добавить к babel (а значит и к cffi) новую кодировку. Писал это я не просто так, а потому как возникла необходимость работать с cp1251, поддержка которой ещё не была реализована. Собственно, последовал своим же рекомендациям (тут возникает вопрос о курице и яйце, но неважно), написал код и отправил его в список рассылки проекта. Не прошло и двух недель :-) как мне пришло сообщение, что код принят и включен в проект. Со следующей версии (0.4) (только когда она будет?) будет доступен общественности, либо можно прямо сейчас забрать свежую версию из репозитория:
darcs get http://common-lisp.net/project/babel/darcs/babel
Сам код поддержки cp1251 (полностью списанный с iconv) можно посмотреть здесь.


Ещё недавно я показывал патч для mod_lisp, который позволяет lisp-серверу получить имя пользователя (REMOTE_USER), успешного прошедшего аутентификацию на стороне apache. Но вот беда, как я уже писал, новый hunchentoot не поддерживает mod_lisp. Это заставило меня задуматься и теперь я вообще не понимаю какого я полез использовать этот mod_lisp (да и зачем он вообще нужен не понимаю): стандартный прокси (ProxyPass) решает все проблемы. Ну, не совсем все. Опять таки, возникает проблема передачи lisp-серверу имени аутентинфицированного пользователя. К счастью, эта проблем достаточно легко решается средствами mod_rewrite следующим образом:
RewriteEngine On
RewriteCond %{LA-U:REMOTE_USER} (.+)
RewriteRule . - [E=RU:%1]
RequestHeader set REMOTE-USER %{RU}e
Немного похоже на магию, но работает: добавляет к заголовку запроса поле REMOTE-USER, которое можно использовать на стороне lisp-сервера.

Комментариев нет:

Отправить комментарий