beldmit: (Программизм)
[personal profile] beldmit
Когда-то в ТЦИ делали исследовательский проект по интернациональной почте (то есть с не-латиницей до собаки). Я в рамках этого проекта начал реализовывать драфт по поддержке таких адресов в X.509-сертификатах. Реализовал, понятно, с ошибками, но патч засабмитил, его почитали в OpenSSL и заставили переделать драфт. В итоге документ стал RFC 8398 только в этом году.

Автор документа меня, однако, запомнил, и спросил, не допилю ли я патч. Начал допиливать и стал изживать одну из претензий к собственно патчу — зависимость от лишней библиотеки в OpenSSL сочли недопустимой. Ок, всего одна функция. Причём частично прописана в RFC в формате C-шного кода.

А дальше, блин, начинается кино. Разбить доменное имя на части по точке. Сконвертировать каждую часть в последовательность байт (UTF8 же), склеить. Не вылезя нигде за пределы буфера. А длину буфера вернуть, чтобы вызывающая сторона знала, какой буфер передать. В общем, тут даже при готовых функциях то, что на Perl с использованием библиотеки — три вызова, split, map и join, на C даёт пол-экрана.

Написать я это написал. Даже скомпилировал. А вот запускать и отлаживать страшно.

Специально для [personal profile] ufm: нет, не-ASCII символы в именах доменов и email-адресах — не коварный замысел страшных любителей чебурнета, а нормальный ход нормальных любителей денег. Которым аудиторию по месту (нелатиноалфавитную) очень хочется расширить.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 07:10 am
Powered by Dreamwidth Studios