ICQCorp
Навигатор О проекте Новости Ссылки Установка ФАКи Скриншоты Благодарности Документы PostgreSQL Скачать Об авторе Гостевая книга Russian English Проект IServerd

--- Описание подсистемы WWP

Подсистема WWP служит для отправки сообщений пользователям IServerd через Web-форму. Пользователь при этом получает стандартное WWP сообщение, содержащее само сообщение и ip адрес, с которого было отправлено сообщение. При этом происходят следующие действия: пользователь вводит сообщение в форму на веб-сервере, данные из веб-формы обрабатываются cgi-скриптом, который записывает данные в файл используя следующие соглашения:

 Строка    Назначение    Пример  
 1-ая  uin получателя  6218895
 2-ая  email отправителя  AVShutko@mail.khstu.ru
 3-ья  имя отправителя  Regressor
 4-ая  ip адрес отправителя  10.10.10.2
 5-ая+  тело сообщения  texttexttext...

После чего cgi-скрипт вызывает утилиту webpager с именем заполненного файла данных в качестве параметра. Эта утилита формирует пакет данных используя внутренний системный протокол IServerd, проверяет данные и отправляет этот пакет в сокет wwp_sock, в каталоге tmp. Далее пакет обрабатывается процессом SP, его данные еще раз проверяются. Далее пакет преобразовывается в формат протокола V3 иотправляется через INC-канал к пакетным процессорам. После обработки сообщение отправляется пользователю, либо (если пользователь не подключен) записывается в базу данных отложенных сообшений.

Следует отметить, что утилита webpager после запуска открывает на чтение файл данных и сразу после этого его удаляет, чтобы прочитать этот файл больше никто не мог. Cgi-скрипт использует пакет File::MkTemp для создания временного файла.

Перед использованием в поставляемом cgi-скрипте post_mess.cgi необходимо изменить пути в первых двух строчках. Это пути до html страниц, которые показываются после успешной (или неуспешной) посылки сообщения.

Пример html кода веб-формы можно посмотреть в дистрибутиве IServerd (/doc/wwp_messages.txt) Вы можете написать свою форму. Форма должна содержать поля uin, name, email, msg.

Внимание: В клиентах ICQCorp отсутствует диалоговое окно для wwp сообщений, поэтому при попытке просмотреть пришедшее wwp сообщение клиент аварийно завершается с ошибкой нарушения прав доступа. Для решения этой проблемы можно скачать пропатченного клиента с сайта http://www.icq.khstu.ru либо изменить номер типа WWP сообщения с 0x0D на 0x01 в файле defaults.h.in и перекомпилировать весь проект (make distclean;./configure;make all;make install).

About  ] Install  ] Credits  ] Screens  ] Postgres  ] Download  ]
News  ] FAQs  ] Author  ] Links  ] Documents  ] Guestbook  ]
Webmaster
A.V.Shutko