Monday September 08 2014 17:09, Mithgol the Webmaster wrote to Yuri Myakotin: MW> Я тут ещё немного почитал и понял, что мне в FTNMTP ясно видятся две MW> проблемы, которые кажутся мне своего рода граблями, потому что MW> разработчики фидософта понаступали на них не раз и не два.
MW> Во-первых, в заголовке есть поля фиксированного размера, со временем MW> они будут переполняться. По сути там одно такое - id эхомейл/нетмейл сообщений. Hо - больше 4млрд уникальных сообщений в базе узла?? :) Вряд ли в ближайшие 100 лет столько наберется. У меня в базе сохраняется фулл фид, но за 2+ года и 2млн пока не набралось.
Все строки - zero-terminated, т.е. хоть мегабайтами делай.
MW> Хотя признаюсь: так как почитал я немного, то MW> могу этой проблеме придавать слишком большое значение. Однако я всё же MW> предпочёл бы некий формат навроде JSON или YAML, Hа низкоуровневом C подобный формат обрабатывать - это ад. Я как раз и выбирал форматы, удобные и для обработки, и для прямого сохранения в sql базу (тот же формат времени - выбран ODBCшный SQL_TIMESTAMP_STRUCT, который напрямую в/из баз пишется). Те же синбаи/пути - проще простого обрабатываются (и сортируются в случае синбаев), ибо представляют собой массивы 32бит чисел (каждое из которых - сеть*65536+нода). Фидо-адреса с цифрами больше 65535 тоже вряд ли когда будут.
MW> который не сломается, MW> если в нём тридцатидвухбайтовый хэш придётся со временем переменить на MW> шестидесятичетырёхбайтовый, например. Тоже не беда. Появится потребность - будет добавлено сообщение (скажем, CMD_EXTENDED_SRV_INFO) с другим кодом команды, поддерживаемое начиная с версии xx.yy. Диапазон свободных номеров команд огромен, во флагах тоже куча свободных бит.
MW> Хорошо ещё, что большей частью Фидонет работает на системах с одним и MW> тем же порядком байтов ── интеловским. Этот момент и вообще форматы данных я в вики явно опишу.
MW> Во-вторых, опять свой собственный номер порта, Свой собственный, но зарегистрированный в IANA. Т.е. его точно никто более не займет.
See all in Hell, Yuri --- Мессагомаратель 1.1.5-b20110320 * Origin: Убей человека. Прежде всего в самом себе. (2:5020/4441.1)