annotate packages/net/httpd/current/include/httpd.h @ 468:ca4f29d41b18

Created new HTTPD package.
author nickg
date Sun, 22 Dec 2002 11:09:00 +0000
parents
children 06b38a628db3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
468
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
1 #ifndef CYGONCE_NET_HTTPD_HTTPD_H
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
2 #define CYGONCE_NET_HTTPD_HTTPD_H
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
3 /* =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
4 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
5 * httpd.h
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
6 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
7 * A simple embedded HTTP server
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
8 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
9 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
10 * ####ECOSGPLCOPYRIGHTBEGIN####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
11 * -------------------------------------------
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
12 * This file is part of eCos, the Embedded Configurable Operating
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
13 * System.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
14 * Copyright (C) 2002 Nick Garnett
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
15 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
16 * eCos is free software; you can redistribute it and/or modify it
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
17 * under the terms of the GNU General Public License as published by
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
18 * the Free Software Foundation; either version 2 or (at your option)
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
19 * any later version.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
20 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
21 * eCos is distributed in the hope that it will be useful, but
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
22 * WITHOUT ANY WARRANTY; without even the implied warranty of
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
24 * General Public License for more details.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
25 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
26 * You should have received a copy of the GNU General Public License
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
27 * along with eCos; if not, write to the Free Software Foundation,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
28 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
29 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
30 * As a special exception, if other files instantiate templates or
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
31 * use macros or inline functions from this file, or you compile this
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
32 * file and link it with other works to produce a work based on this
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
33 * file, this file does not by itself cause the resulting work to be
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
34 * covered by the GNU General Public License. However the source code
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
35 * for this file must still be made available in accordance with
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
36 * section (3) of the GNU General Public License.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
37 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
38 * This exception does not invalidate any other reasons why a work
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
39 * based on this file might be covered by the GNU General Public
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
40 * License.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
41 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
42 * -------------------------------------------
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
43 * ####ECOSGPLCOPYRIGHTEND####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
44 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
45 * #####DESCRIPTIONBEGIN####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
46 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
47 * Author(s): nickg@calivar.com
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
48 * Contributors: nickg@calivar.com
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
49 * Date: 2002-10-14
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
50 * Purpose:
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
51 * Description:
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
52 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
53 * ####DESCRIPTIONEND####
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
54 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
55 * =================================================================
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
56 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
57
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
58 #include <pkgconf/system.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
59 #include <pkgconf/isoinfra.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
60 #include <pkgconf/httpd.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
61
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
62 #include <cyg/hal/hal_tables.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
63
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
64 #include <stdio.h>
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
65
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
66 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
67 /* Lookup Table
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
68 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
69 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
70 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
71
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
72 typedef cyg_bool cyg_httpd_handler(FILE *client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
73 char *formdata, void *arg);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
74
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
75 struct cyg_httpd_table_entry
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
76 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
77 char *pattern;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
78 cyg_httpd_handler *handler;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
79 void *arg;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
80 } CYG_HAL_TABLE_TYPE;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
81
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
82 typedef struct cyg_httpd_table_entry cyg_httpd_table_entry;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
83
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
84 #define CYG_HTTPD_TABLE_ENTRY( __name, __pattern, __handler, __arg ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
85 cyg_httpd_table_entry __name CYG_HAL_TABLE_ENTRY( httpd_table ) = { __pattern, __handler, __arg }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
86
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
87 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
88 /* Useful handler functions
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
89 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
90
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
91 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
92 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
93 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
94
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
95 __externC int cyg_httpd_send_html( FILE *client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
96 char *request, void *arg );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
97
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
98 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
99 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
100 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
101
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
102 typedef struct
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
103 {
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
104 char *content_type;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
105 cyg_uint32 content_length;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
106 cyg_uint8 *data;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
107 } cyg_httpd_data;
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
108
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
109 __externC int cyg_httpd_send_data( FILE *client, char *filename,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
110 char *request, void *arg );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
111
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
112 #define CYG_HTTPD_DATA( __name, __type, __length, __data ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
113 cyg_httpd_data __name = { __type, __length, __data }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
114
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
115 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
116 /* HTTP and HTML helper macros and functions
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
117 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
118
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
119 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
120 /* HTTP header support
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
121 *
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
122 * cyg_http_start() sends an HTTP header with the given content type
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
123 * and length. cyg_http_finish() terminates an HTTP send.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
124 * html_begin() starts an HTML document, and html_end() finishes it.
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
125 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
126
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
127 __externC void cyg_http_start( FILE *client, char *content_type,
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
128 int content_length );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
129 __externC void cyg_http_finish( FILE *client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
130
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
131 #define html_begin(__client) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
132 cyg_http_start( __client, "text/html", 0 ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
133 html_tag_begin( __client, "html", "" )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
134
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
135 #define html_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
136 html_tag_end( __client, "html" ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
137 cyg_http_finish( client )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
138
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
139 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
140 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
141 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
142
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
143
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
144 __externC void cyg_html_tag_begin( FILE *client, char *tag, char *attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
145 __externC void cyg_html_tag_end( FILE *client, char *tag );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
146
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
147 #define html_tag_begin( __client, __tag, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
148 cyg_html_tag_begin( __client, __tag, __attr )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
149
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
150 #define html_tag_end( __client, __tag ) cyg_html_tag_end( __client, __tag )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
151
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
152
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
153 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
154 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
155 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
156
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
157
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
158 #define html_head( __client, __title, __meta ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
159 { \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
160 fprintf(__client, "<%s><%s>", "head", "title" ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
161 fputs( __title, __client ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
162 fprintf(__client, "</%s>%s</%s>\n", "title", __meta, "head"); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
163 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
164
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
165 #define html_body_begin( __client, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
166 cyg_html_tag_begin( __client, "body", __attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
167
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
168 #define html_body_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
169 cyg_html_tag_end( __client, "body" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
170
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
171 #define html_heading( __client, __level, __heading ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
172 fprintf(__client,"<h%d>%s</h%d>\n",__level,__heading,__level);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
173
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
174 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
175 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
176 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
177
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
178
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
179 #define html_url( __client, __text, __link ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
180 fprintf( __client, "<a href=\"%s\">%s</a>\n",__link,__text);
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
181
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
182 #define html_para_begin( __client, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
183 cyg_html_tag_begin( __client, "p", __attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
184
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
185 #define html_image( __client, __source, __alt, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
186 fprintf( __client, "<%s %s=\"%s\" %s=\"%s\" %s>\n", "img", \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
187 "src",__source, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
188 "alt",__alt, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
189 (__attr)?(__attr):"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
190
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
191 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
192 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
193 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
194
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
195
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
196 #define html_table_begin( __client, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
197 cyg_html_tag_begin( __client, "table", __attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
198
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
199 #define html_table_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
200 cyg_html_tag_end( __client, "table" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
201
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
202 #define html_table_header( __client, __content, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
203 { \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
204 cyg_html_tag_begin( __client, "th", __attr); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
205 fputs( __content, __client ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
206 cyg_html_tag_end( __client, "th" ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
207 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
208
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
209 #define html_table_row_begin( __client, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
210 cyg_html_tag_begin( __client, "tr", __attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
211
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
212 #define html_table_row_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
213 cyg_html_tag_end( __client, "tr" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
214
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
215 #define html_table_data_begin( __client, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
216 cyg_html_tag_begin( __client, "td", __attr );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
217
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
218 #define html_table_data_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
219 cyg_html_tag_end( __client, "td" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
220
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
221 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
222 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
223 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
224
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
225
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
226 #define html_form_begin( __client, __url, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
227 fprintf(__client, "<%s %s=\"%s\" %s>\n","form", \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
228 "action",__url, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
229 (__attr)?(__attr):"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
230
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
231 #define html_form_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
232 cyg_html_tag_end( __client, "form" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
233
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
234 #define html_form_input( __client, __type, __name, __value, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
235 { \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
236 char *__lattr = (__attr); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
237 fprintf(__client, "<%s %s=\"%s\" %s=\"%s\" %s=\"%s\" %s>\n","input", \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
238 "type",__type, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
239 "name",__name, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
240 "value",__value, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
241 __lattr?__lattr:"" ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
242 }
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
243
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
244 #define html_form_input_radio( __client, __name, __value, __checked ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
245 html_form_input( __client, "radio", __name, __value, (__checked)?"checked":"" )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
246
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
247 #define html_form_input_checkbox( __client, __name, __value, __checked ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
248 html_form_input( __client, "checkbox", __name, __value, (__checked)?"checked":"" )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
249
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
250 #define html_form_input_hidden( __client, __name, __value ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
251 html_form_input( __client, "hidden", __name, __value, "" )
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
252
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
253 #define html_form_select_begin( __client, __name, __attr ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
254 fprintf( __client, "<%s %s=\"%s\" %s>\n","select", \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
255 "name",__name, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
256 (__attr)?(__attr):"" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
257
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
258 #define html_form_option( __client, __value, __label, __selected ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
259 fprintf( __client, "<%s %s=\"%s\" %s>\n","option", \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
260 "value", __value, \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
261 (__selected)?"selected":"" ); \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
262 fputs(__label, __client );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
263
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
264 #define html_form_select_end( __client ) \
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
265 cyg_html_tag_end( __client, "select" );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
266
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
267
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
268 /* ================================================================= */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
269 /*
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
270 */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
271
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
272
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
273 __externC void cyg_formdata_parse( char *data, char *list[], int size );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
274
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
275 __externC char *cyg_formlist_find( char *list[], char *name );
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
276
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
277 /* ----------------------------------------------------------------- */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
278 #endif /* CYGONCE_NET_HTTPD_HTTPD_H */
ca4f29d41b18 Created new HTTPD package.
nickg
parents:
diff changeset
279 /* end of httpd.c */