Новые книги

О том, почему партнерства в бизнесе, как правило, эффективнее и успешнее бизнесов предпринимателей-одиночек. Объединяя свои сильные стороны (деньги, знания, идеи, умения, связи, средства, патенты – все что угодно), партнеры не только способствуют упрочению своего бизнеса, но и расширяют его возможности. Однако все эти преимущества могут быть быстро уничтожены, если правила взаимодействия партнеров не были прописаны «на берегу». Для бизнеса нет ничего страшнее, чем междоусобные войны владельцев. Зачастую они заканчиваются крахом партнерства – вкупе с нарушенными обещаниями, финансовыми катастрофами и кошмарными судебными спорами.
Данное пособие является введением в основы программирования на двух языках. Сначала рассматриваются простые примеры на Pascal с описанием алгоритмов на русском языке и использованием графических блок-схем, затем эти же примеры приводятся в программах на C.

nntpd Interaction with C News

Взаимодействие nntpd и C-News

При получении статьи, nntpd должен приписать ее к подсистеме новостей. В зависимости от того, было ли это получено в результате команды IHAVE или POST, статья будет вручена rnews или inews, соответственно. Вместо того, чтобы вызывать rnews, Вы можете также конфигурировать rnews (во время компиляции), чтобы пакетировать входящие статьи и перемещать возникающие в результате пакеты в /var/spool/news/in.coming, где они остаются для relaynews, которая при очередной обработке буфера подберет их.

Чтобы правильно выполнить протокол ihave/sendme, nntpd должен обратиться к файлу history. Во время компиляции, Вы должны удостовериться, что путь установлен правильно. Вы должны также удостовериться, что C-news и nntpd договорятся о формате вашего файла history. C-news использует dbm-функции, чтобы обратиться к нему, однако, имеются несовместимые реализаций библиотеки dbm . Если C-news был связан с одной библиотекой dbm , а ваша библиотека libc с другой, они точно передерутся. Значит, Вы должны пересобрать nntpd с правильной библиотекой.

Типичный признак того что nntpd и C-news не соглашаются относительно формата базы данных, это сообщения об ошибках в файле регистрации системы о том, что nntpd не может открыть его правильно, или двойные статьи, полученные через NNTP. Хороший тест: выбрать статью из вашей области spool, сделать telnet к порту nntp и попробовать обратиться к nntpd как показано в примере ниже. Конечно, вы должны заменить msg@id на ID-сообщение статьи, которую хотите передать nntpd:

$ telnet localhost nntp
Trying 127.0.0.1...
Connected to localhost
Escape characters is '^ ]'.
201 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at
Sun Feb 6 16:02:32 1194 (no posting)

IHAVE msg@id
435 Got it.
QUIT

Этот диалог показывает реакцию nntpd. Сообщение Got it покажет, что эта статья уже имеется. Если вы получаете сообщение 335 Ok, поиск в файле history потерпел неудачу. Завершите диалог нажатием Ctrl-D. Вы можете проверять, что пошло неправильно, проверяя файл регистрации системы: nntpd регистрирует все виды сообщений в syslog. Несовместимая библиотека dbm обычно проявляется в сообщении о том, что dbminit потерпел неудачу.