xref: /nrf52832-nimble/rt-thread/components/net/uip/doc/html/a00164.html (revision 104654410c56c573564690304ae786df310c91fc)
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>uIP 1.0: Web server</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.4.6 -->
8<div class="tabs">
9  <ul>
10    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11    <li><a href="modules.html"><span>Modules</span></a></li>
12    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
13    <li><a href="files.html"><span>Files</span></a></li>
14    <li><a href="examples.html"><span>Examples</span></a></li>
15  </ul></div>
16<h1>Web server<br>
17<small>
18[<a class="el" href="a00143.html">Applications</a>]</small>
19</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
20The uIP web server is a very simplistic implementation of an HTTP server.
21<p>
22It can serve web pages and files from a read-only ROM filesystem, and provides a very small scripting language.
23<p>
24<table border="0" cellpadding="0" cellspacing="0">
25<tr><td></td></tr>
26<tr><td colspan="2"><br><h2>Files</h2></td></tr>
27<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00113.html">httpd-cgi.h</a></td></tr>
28
29<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Web server script interface header file. <br></td></tr>
30
31<p>
32<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00112.html">httpd-cgi.c</a></td></tr>
33
34<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Web server script interface. <br></td></tr>
35
36<p>
37<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00114.html">httpd.c</a></td></tr>
38
39<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Web server. <br></td></tr>
40
41<p>
42<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
43<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">httpd_cgi_call</a></td></tr>
44
45<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
46<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g1dbc635a2924806f42d7e3273a6a69b5">HTTPD_CGI_CALL</a>(name, str, function)</td></tr>
47
48<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">HTTPD CGI function declaration.  <a href="#g1dbc635a2924806f42d7e3273a6a69b5"></a><br></td></tr>
49<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g7d7920c1e51cc4eef80206ebd6fee3f4"></a><!-- doxytag: member="httpd::STATE_WAITING" ref="g7d7920c1e51cc4eef80206ebd6fee3f4" args="" -->
50#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g7d7920c1e51cc4eef80206ebd6fee3f4">STATE_WAITING</a>&nbsp;&nbsp;&nbsp;0</td></tr>
51
52<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8a645f8831837320c4e0c704e871abcf"></a><!-- doxytag: member="httpd::STATE_OUTPUT" ref="g8a645f8831837320c4e0c704e871abcf" args="" -->
53#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g8a645f8831837320c4e0c704e871abcf">STATE_OUTPUT</a>&nbsp;&nbsp;&nbsp;1</td></tr>
54
55<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3212e70c55244608ac16316888c354f0"></a><!-- doxytag: member="httpd::ISO_nl" ref="g3212e70c55244608ac16316888c354f0" args="" -->
56#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g3212e70c55244608ac16316888c354f0">ISO_nl</a>&nbsp;&nbsp;&nbsp;0x0a</td></tr>
57
58<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g71e1b022f7b7fa3a154f19372b239935"></a><!-- doxytag: member="httpd::ISO_space" ref="g71e1b022f7b7fa3a154f19372b239935" args="" -->
59#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g71e1b022f7b7fa3a154f19372b239935">ISO_space</a>&nbsp;&nbsp;&nbsp;0x20</td></tr>
60
61<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge3f8f7deae69854853b0c8ebb82c380d"></a><!-- doxytag: member="httpd::ISO_bang" ref="ge3f8f7deae69854853b0c8ebb82c380d" args="" -->
62#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ge3f8f7deae69854853b0c8ebb82c380d">ISO_bang</a>&nbsp;&nbsp;&nbsp;0x21</td></tr>
63
64<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g79f9a50c2cccb967d38a2eeb45d2fd75"></a><!-- doxytag: member="httpd::ISO_percent" ref="g79f9a50c2cccb967d38a2eeb45d2fd75" args="" -->
65#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g79f9a50c2cccb967d38a2eeb45d2fd75">ISO_percent</a>&nbsp;&nbsp;&nbsp;0x25</td></tr>
66
67<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf7dd2757d1e766f65b01ba7c91c660a0"></a><!-- doxytag: member="httpd::ISO_period" ref="gf7dd2757d1e766f65b01ba7c91c660a0" args="" -->
68#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gf7dd2757d1e766f65b01ba7c91c660a0">ISO_period</a>&nbsp;&nbsp;&nbsp;0x2e</td></tr>
69
70<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g820fb27c50e7bb4ac6d9eae1b06630a5"></a><!-- doxytag: member="httpd::ISO_slash" ref="g820fb27c50e7bb4ac6d9eae1b06630a5" args="" -->
71#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g820fb27c50e7bb4ac6d9eae1b06630a5">ISO_slash</a>&nbsp;&nbsp;&nbsp;0x2f</td></tr>
72
73<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g14e276fa8e765f774f4162619f1c8fc1"></a><!-- doxytag: member="httpd::ISO_colon" ref="g14e276fa8e765f774f4162619f1c8fc1" args="" -->
74#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g14e276fa8e765f774f4162619f1c8fc1">ISO_colon</a>&nbsp;&nbsp;&nbsp;0x3a</td></tr>
75
76<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
77<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge6f849e94cf6e214be8ffa9a548ecfcd"></a><!-- doxytag: member="httpd::httpd_cgi" ref="ge6f849e94cf6e214be8ffa9a548ecfcd" args="(char *name)" -->
78httpd_cgifunction&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#ge6f849e94cf6e214be8ffa9a548ecfcd">httpd_cgi</a> (char *name)</td></tr>
79
80<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g648ddfb2dde2cc55034e4e0ea41cb6d1"></a><!-- doxytag: member="httpd::httpd_appcall" ref="g648ddfb2dde2cc55034e4e0ea41cb6d1" args="(void)" -->
81void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#g648ddfb2dde2cc55034e4e0ea41cb6d1">httpd_appcall</a> (void)</td></tr>
82
83<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00164.html#gc364305cee969a0be43c071722b136e6">httpd_init</a> (void)</td></tr>
84
85<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the web server.  <a href="#gc364305cee969a0be43c071722b136e6"></a><br></td></tr>
86</table>
87<hr><h2>Define Documentation</h2>
88<a class="anchor" name="g1dbc635a2924806f42d7e3273a6a69b5"></a><!-- doxytag: member="httpd-cgi.h::HTTPD_CGI_CALL" ref="g1dbc635a2924806f42d7e3273a6a69b5" args="(name, str, function)" --><p>
89<table class="mdTable" cellpadding="2" cellspacing="0">
90  <tr>
91    <td class="mdRow">
92      <table cellpadding="0" cellspacing="0" border="0">
93        <tr>
94          <td class="md" nowrap valign="top">#define HTTPD_CGI_CALL          </td>
95          <td class="md" valign="top">(&nbsp;</td>
96          <td class="md" nowrap valign="top">name,         <tr>
97          <td class="md" nowrap align="right"></td>
98          <td class="md"></td>
99          <td class="md" nowrap>str,         <tr>
100          <td class="md" nowrap align="right"></td>
101          <td class="md"></td>
102          <td class="md" nowrap>function&nbsp;</td>
103          <td class="mdname1" valign="top" nowrap>          </td>
104          <td class="md" valign="top">&nbsp;)&nbsp;</td>
105          <td class="md" nowrap></td>
106        </tr>
107      </table>
108    </td>
109  </tr>
110</table>
111<table cellspacing="5" cellpadding="0" border="0">
112  <tr>
113    <td>
114      &nbsp;
115    </td>
116    <td>
117
118<p>
119HTTPD CGI function declaration.
120<p>
121<dl compact><dt><b>Parameters:</b></dt><dd>
122  <table border="0" cellspacing="2" cellpadding="0">
123    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The C variable name of the function </td></tr>
124    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>The string name of the function, used in the script file </td></tr>
125    <tr><td valign="top"></td><td valign="top"><em>function</em>&nbsp;</td><td>A pointer to the function that implements it</td></tr>
126  </table>
127</dl>
128This macro is used for declaring a HTTPD CGI function. This function is then added to the list of HTTPD CGI functions with the httpd_cgi_add() function.
129<p>
130Definition at line <a class="el" href="a00183.html#l00077">77</a> of file <a class="el" href="a00183.html">httpd-cgi.h</a>.    </td>
131  </tr>
132</table>
133<hr><h2>Function Documentation</h2>
134<a class="anchor" name="gc364305cee969a0be43c071722b136e6"></a><!-- doxytag: member="httpd.c::httpd_init" ref="gc364305cee969a0be43c071722b136e6" args="(void)" --><p>
135<table class="mdTable" cellpadding="2" cellspacing="0">
136  <tr>
137    <td class="mdRow">
138      <table cellpadding="0" cellspacing="0" border="0">
139        <tr>
140          <td class="md" nowrap valign="top">void httpd_init           </td>
141          <td class="md" valign="top">(&nbsp;</td>
142          <td class="md" nowrap valign="top">void&nbsp;</td>
143          <td class="mdname1" valign="top" nowrap>          </td>
144          <td class="md" valign="top">&nbsp;)&nbsp;</td>
145          <td class="md" nowrap></td>
146        </tr>
147      </table>
148    </td>
149  </tr>
150</table>
151<table cellspacing="5" cellpadding="0" border="0">
152  <tr>
153    <td>
154      &nbsp;
155    </td>
156    <td>
157
158<p>
159Initialize the web server.
160<p>
161This function initializes the web server and should be called at system boot-up.
162<p>
163Definition at line <a class="el" href="a00184.html#l00333">333</a> of file <a class="el" href="a00184.html">httpd.c</a>.
164<p>
165References <a class="el" href="a00202.html#l01070">HTONS</a>, and <a class="el" href="a00201.html#l00529">uip_listen()</a>.    </td>
166  </tr>
167</table>
168<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
169<a href="http://www.doxygen.org/index.html">
170<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
171</body>
172</html>
173