Технические вопросы и ответы QA1306

Добрый день осуществляет формат записи TXT у Пантеры

Q: Я использую основанный на сокете DNSServiceDiscovery API, представленный в Mac OS X 10.3, и мой вызов к DNSServiceRegister возвращается-65549. Что продолжается?

A: Я использую основанный на сокете DNSServiceDiscovery API, представленный в Mac OS X 10.3, и мой вызов к DNSServiceRegister возвращается-65549. Что продолжается?

Запускаясь в Mac OS X 10.3, mDNSResponder требует, чтобы зарегистрировал записи, включая записи TXT, быть должным образом отформатированным согласно спецификации DNS. Если Ваша запись TXT будет неправильно отформатирована, то Вы будете видеть сообщение в системном журнале (/var/log/system.log) подобный Перечислению 1.

  Системное сообщение журнала перечисления 1, указывающее незаконно, отформатировало запись TXT

Sep 15 16:06:13 localhost mDNSResponder[192]: Attempt to register record with invalid rdata: 17 Ice Cube._http._tcp.local. TXT ath=/index.html

Спецификация протокола DNS-SD описывает формат для Добрый день записей TXT как состоящий из «нуля или большего количества строк, упакованных вместе в памяти без любых прошедших разрывов или дополняющий байты для выравнивания слов. Формат каждой составляющей строки в DNS запись TXT является единственным байтом длины, сопровождаемым на 0-255 байтов текстовых данных».

Перечисление 2  запись TXT, форматированная как байт длины, данные, байт длины, данные...

\011txtvers=1\020path=/index.html\025note=Bonjour Is Cool!

В Mac OS X 10.2.x, Добрый день APIs использует ASCII 1 (» \001») как пограничный маркер между составляющими строками в DNS запись TXT, и затем запись TXT автоматически преобразовывается в правильный формат.

Перечисление 3  запись TXT, отформатированная с ASCII 1 как пограничный маркер

txtvers=1\001path=/index.html\001note=Bonjour Is Cool!

В Mac OS X 10.3 и позже, CFNetServices, NSNetSerivces и основанный на Махе DNSServiceDiscovery APIs будут продолжать использовать ASCII 1 в качестве пограничного маркера, однако, недавно представил основанные на сокете подпрограммы как DNSServiceRegister и DNSServiceRegisterRecord потребуйте, чтобы записи TXT были должным образом отформатированы как байт длины, данные, байт длины, данные...



История версии документа


ДатаПримечания
14.07.2004

Обновленные TXT записывают пример

23.10.2003

Новый документ, объясняющий, как mDNSResponder осуществляет надлежащий формат записи TXT у Пантеры.