uIP 1.0
|
00001 /** 00002 * \addtogroup httpd 00003 * @{ 00004 */ 00005 00006 /** 00007 * \file 00008 * Заголовочный файл скриптового интерфейса Web-сервера 00009 * \author 00010 * Adam Dunkels <adam@sics.se> 00011 * 00012 */ 00013 00014 00015 00016 /* 00017 * Copyright (c) 2001, Adam Dunkels. 00018 * Все права зарезервированы. * 00019 * Повторное распространение, использование в исходном и двоичном виде, 00020 * с модификацией или без - разрешается, если выполняются следующие 00021 * условия: 00022 * 1. Распространение исходного кода должно сохранить вышеуказанную пометку 00023 * копирайта, этот список условий и следующую правовую оговорку. 00024 * 2. Распространение исходного кода должно сохранить вышеуказанную пометку 00025 * копирайта, этот список условий и следующую правовую оговорку в 00026 * документации и/или других материалах, которые будут предоставлены 00027 * вместе с распространяемыми материалами. 00028 * 3. Имя автора не может использоваться, чтобы подтвердить или продвинуть 00029 * продукты, написанные с использованием этого программного обеспечения 00030 * без специального на то разрешения. 00031 * 00032 * ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ АВТОРОМ ``КАК ЕСТЬ'', БЕЗ 00033 * КАКОЙ-ЛИБО ЛЮБОЙ РАСШИРЕННОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ГАРАНТИИ, ВКЛЮЧАЯ, 00034 * НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ГАРАНТИИ ВЫСОКОГО СПРОСА И ПРИГОДНОСТИ 00035 * ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. АВТОР НИ ПРИ КАКИХ УСЛОВИЯХ НЕ ОТВЕТСТВЕНЕН 00036 * ЗА ЛЮБЫЕ УБЫТКИ - ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОБРАЗЦОВЫЕ 00037 * ИЛИ ПОСЛЕДОВАТЕЛЬНЫЕ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ЭТИМ, ТРЕБОВАНИЯ 00038 * ЗАМЕНЫ ТОВАРА ИЛИ СЕРВИСА; ПОТЕРИ ИСПОЛЬЗОВАНИЯ, ДАННЫХ ИЛИ ВЫГОДЫ; 00039 * ИЛИ ПРЕКРАЩЕНИЕ БИЗНЕСА), ОДНАКО ВЫЗВАННЫЕ ПО ЛЮБОЙ ТЕОРИИ ОТВЕТСТВЕННОСТИ, 00040 * ЛИБО В КОНТРАКТЕ, ПРЯМОЙ ОТВЕТСТВЕННОСТИ, ЛИБО В НАРУШЕНИИ ЗАКОННЫХ ПРАВ 00041 * (ВКЛЮЧАЯ ТАК ИЛИ ИНАЧЕ НЕБРЕЖНОСТЬ), ВОЗНИКАЮЩИЕ ВСЕГДА ИЗ ИСПОЛЬЗОВАНИЯ 00042 * ЭТОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ДАЖЕ ЕСЛИ БЫЛО ПРЕДУПРЕЖДЕНИЕ О ВОЗМОЖНОСТИ 00043 * ТАКОГО ПОВРЕЖДЕНИЯ. 00044 * 00045 * Этот файл является частью стека uIP TCP/IP. 00046 * 00047 * $Id: httpd-cgi.h,v 1.2 2006/06/11 21:46:38 adam Exp $ 00048 * 00049 */ 00050 00051 #ifndef __HTTPD_CGI_H__ 00052 #define __HTTPD_CGI_H__ 00053 00054 #include "psock.h" 00055 #include "httpd.h" 00056 00057 typedef PT_THREAD((* httpd_cgifunction)(struct httpd_state *, char *)); 00058 00059 httpd_cgifunction httpd_cgi(char *name); 00060 00061 struct httpd_cgi_call { 00062 const char *name; 00063 const httpd_cgifunction function; 00064 }; 00065 00066 /** 00067 * \brief Декларация фукнции HTTPD CGI 00068 * \param name Переменная C функции 00069 * \param str Строковое имя функции, используемое в файле скрипта 00070 * \param function Указатель на функцию, которая реализована 00071 * 00072 * Этот макрос используется для декларирования HTTPD CGI 00073 * функции. Эта функция затем добавляется к списку функций 00074 * HTTPD CGI с помощью функции httpd_cgi_add(). 00075 * 00076 * \hideinitializer 00077 */ 00078 #define HTTPD_CGI_CALL(name, str, function) \ 00079 static PT_THREAD(function(struct httpd_state *, char *)); \ 00080 static const struct httpd_cgi_call name = {str, function} 00081 00082 void httpd_cgi_init(void); 00083 #endif /* __HTTPD_CGI_H__ */ 00084 00085 /** @} */