?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik <!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>Procyon AVRlib: DHCP Protocol Library (dhcp.c)</title>
4 <link href="dox.css" rel="stylesheet" type="text/css">
5 </head><body>
6 <!-- Generated by Doxygen 1.4.2 -->
7 <div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
8 <h1>DHCP Protocol Library (dhcp.c)<br>
9 <small>
10 [<a class="el" href="group__network.html">Network Library</a>]</small>
11 </h1><hr><a name="_details"></a><h2>Detailed Description</h2>
12 <div class="fragment"><pre class="fragment"><span class="preprocessor"> #include "<a class="code" href="dhcp_8h.html">net/dhcp.h</a>"</span>
13 </pre></div> <dl compact><dt><b>Description</b></dt><dd>This library provides a limited implementation of DHCP (Dynamic Host Configuration Protocol) as described in RFC2131. DHCP allows a network device to automatically obtain an IP address and other network configuration settings from a DHCP server.</dd></dl>
14 <dl compact><dt><b>Note:</b></dt><dd>This code is currently below version 1.0, and therefore is considered to be lacking in some functionality or documentation, or may not be fully tested. Nonetheless, you can expect most functions to work. </dd></dl>
15  
16 <p>
17 <table border="0" cellpadding="0" cellspacing="0">
18 <tr><td></td></tr>
19 <tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
20 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnetBootpHeader.html">netBootpHeader</a></td></tr>
21  
22 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bootp Header (DHCP is transported by BOOTP/UDP/IP). <a href="structnetBootpHeader.html#_details">More...</a><br></td></tr>
23 <tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnetDhcpHeader.html">netDhcpHeader</a></td></tr>
24  
25 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP Header. <a href="structnetDhcpHeader.html#_details">More...</a><br></td></tr>
26 <tr><td colspan="2"><br><h2>Defines</h2></td></tr>
27 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="dhcp::BOOTP_HEADER_LEN"></a>
28 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga9">BOOTP_HEADER_LEN</a>&nbsp;&nbsp;&nbsp;236</td></tr>
29  
30 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">length of BOOTP header not including options <br></td></tr>
31 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="dhcp::BOOTP_OP_BOOTREQUEST"></a>
32 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga10">BOOTP_OP_BOOTREQUEST</a>&nbsp;&nbsp;&nbsp;1</td></tr>
33  
34 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">BOOTP Request operation (message from client to server). <br></td></tr>
35 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="dhcp::BOOTP_OP_BOOTREPLY"></a>
36 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga11">BOOTP_OP_BOOTREPLY</a>&nbsp;&nbsp;&nbsp;2</td></tr>
37  
38 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">BOOTP Reply operation (message from server to client). <br></td></tr>
39 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="dhcp::BOOTP_HTYPE_ETHERNET"></a>
40 #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>BOOTP_HTYPE_ETHERNET</b>&nbsp;&nbsp;&nbsp;1</td></tr>
41  
42 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="dhcp::BOOTP_HLEN_ETHERNET"></a>
43 #define&nbsp;</td><td class="memItemRight" valign="bottom"><b>BOOTP_HLEN_ETHERNET</b>&nbsp;&nbsp;&nbsp;6</td></tr>
44  
45 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="dhcp::DHCP_HEADER_LEN"></a>
46 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga14">DHCP_HEADER_LEN</a>&nbsp;&nbsp;&nbsp;240</td></tr>
47  
48 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">length of DHCP header not including options <br></td></tr>
49 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="dhcp::DHCP_UDP_SERVER_PORT"></a>
50 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga15">DHCP_UDP_SERVER_PORT</a>&nbsp;&nbsp;&nbsp;67</td></tr>
51  
52 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UDP port where DHCP requests should be sent. <br></td></tr>
53 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="dhcp::DHCP_UDP_CLIENT_PORT"></a>
54 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga16">DHCP_UDP_CLIENT_PORT</a>&nbsp;&nbsp;&nbsp;68</td></tr>
55  
56 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">UDP port clients will receive DHCP replies. <br></td></tr>
57 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga17" doxytag="dhcp::DHCP_OPT_PAD"></a>
58 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga17">DHCP_OPT_PAD</a>&nbsp;&nbsp;&nbsp;0</td></tr>
59  
60 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">token padding value (make be skipped) <br></td></tr>
61 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="dhcp::DHCP_OPT_NETMASK"></a>
62 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga18">DHCP_OPT_NETMASK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
63  
64 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">subnet mask client should use (4 byte mask) <br></td></tr>
65 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="dhcp::DHCP_OPT_ROUTERS"></a>
66 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga19">DHCP_OPT_ROUTERS</a>&nbsp;&nbsp;&nbsp;3</td></tr>
67  
68 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">routers client should use (IP addr list) <br></td></tr>
69 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="dhcp::DHCP_OPT_TIMESERVERS"></a>
70 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga20">DHCP_OPT_TIMESERVERS</a>&nbsp;&nbsp;&nbsp;4</td></tr>
71  
72 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">time servers client should use (IP addr list) <br></td></tr>
73 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga21" doxytag="dhcp::DHCP_OPT_NAMESERVERS"></a>
74 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga21">DHCP_OPT_NAMESERVERS</a>&nbsp;&nbsp;&nbsp;5</td></tr>
75  
76 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">name servers client should use (IP addr list) <br></td></tr>
77 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga22" doxytag="dhcp::DHCP_OPT_DNSSERVERS"></a>
78 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga22">DHCP_OPT_DNSSERVERS</a>&nbsp;&nbsp;&nbsp;6</td></tr>
79  
80 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DNS servers client should use (IP addr list). <br></td></tr>
81 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga23" doxytag="dhcp::DHCP_OPT_HOSTNAME"></a>
82 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga23">DHCP_OPT_HOSTNAME</a>&nbsp;&nbsp;&nbsp;12</td></tr>
83  
84 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">host name client should use (string) <br></td></tr>
85 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga24" doxytag="dhcp::DHCP_OPT_DOMAINNAME"></a>
86 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga24">DHCP_OPT_DOMAINNAME</a>&nbsp;&nbsp;&nbsp;15</td></tr>
87  
88 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">domain name client should use (string) <br></td></tr>
89 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga25" doxytag="dhcp::DHCP_OPT_REQUESTEDIP"></a>
90 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga25">DHCP_OPT_REQUESTEDIP</a>&nbsp;&nbsp;&nbsp;50</td></tr>
91  
92 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">IP address requested by client (IP address). <br></td></tr>
93 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga26" doxytag="dhcp::DHCP_OPT_LEASETIME"></a>
94 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga26">DHCP_OPT_LEASETIME</a>&nbsp;&nbsp;&nbsp;51</td></tr>
95  
96 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP Lease Time (uint32 seconds). <br></td></tr>
97 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga27" doxytag="dhcp::DHCP_OPT_DHCPMSGTYPE"></a>
98 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga27">DHCP_OPT_DHCPMSGTYPE</a>&nbsp;&nbsp;&nbsp;53</td></tr>
99  
100 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP message type (1 byte). <br></td></tr>
101 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga28" doxytag="dhcp::DHCP_OPT_SERVERID"></a>
102 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga28">DHCP_OPT_SERVERID</a>&nbsp;&nbsp;&nbsp;54</td></tr>
103  
104 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Server Identifier (IP address). <br></td></tr>
105 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga29" doxytag="dhcp::DHCP_OPT_PARAMREQLIST"></a>
106 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga29">DHCP_OPT_PARAMREQLIST</a>&nbsp;&nbsp;&nbsp;55</td></tr>
107  
108 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Paramerter Request List (n OPT codes). <br></td></tr>
109 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga30" doxytag="dhcp::DHCP_OPT_RENEWALTIME"></a>
110 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga30">DHCP_OPT_RENEWALTIME</a>&nbsp;&nbsp;&nbsp;58</td></tr>
111  
112 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP Lease Renewal Time (uint32 seconds). <br></td></tr>
113 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga31" doxytag="dhcp::DHCP_OPT_REBINDTIME"></a>
114 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga31">DHCP_OPT_REBINDTIME</a>&nbsp;&nbsp;&nbsp;59</td></tr>
115  
116 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP Lease Rebinding Time (uint32 seconds). <br></td></tr>
117 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga32" doxytag="dhcp::DHCP_OPT_END"></a>
118 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga32">DHCP_OPT_END</a>&nbsp;&nbsp;&nbsp;255</td></tr>
119  
120 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">token end value (marks end of options list) <br></td></tr>
121 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga33" doxytag="dhcp::DHCP_MSG_DHCPDISCOVER"></a>
122 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga33">DHCP_MSG_DHCPDISCOVER</a>&nbsp;&nbsp;&nbsp;1</td></tr>
123  
124 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DISCOVER is broadcast by client to solicit OFFER from any/all DHCP servers. <br></td></tr>
125 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga34" doxytag="dhcp::DHCP_MSG_DHCPOFFER"></a>
126 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga34">DHCP_MSG_DHCPOFFER</a>&nbsp;&nbsp;&nbsp;2</td></tr>
127  
128 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">OFFER(s) are made to client by server to offer IP address and config info. <br></td></tr>
129 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga35" doxytag="dhcp::DHCP_MSG_DHCPREQUEST"></a>
130 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga35">DHCP_MSG_DHCPREQUEST</a>&nbsp;&nbsp;&nbsp;3</td></tr>
131  
132 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">REQUEST is made my client in response to best/favorite OFFER message. <br></td></tr>
133 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga36" doxytag="dhcp::DHCP_MSG_DHCPDECLINE"></a>
134 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga36">DHCP_MSG_DHCPDECLINE</a>&nbsp;&nbsp;&nbsp;4</td></tr>
135  
136 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DECLINE may be sent by client to server to indicate IP already in use. <br></td></tr>
137 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga37" doxytag="dhcp::DHCP_MSG_DHCPACK"></a>
138 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga37">DHCP_MSG_DHCPACK</a>&nbsp;&nbsp;&nbsp;5</td></tr>
139  
140 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ACK is sent to client by server in confirmation of REQUEST, contains config and IP. <br></td></tr>
141 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38" doxytag="dhcp::DHCP_MSG_DHCPNAK"></a>
142 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga38">DHCP_MSG_DHCPNAK</a>&nbsp;&nbsp;&nbsp;6</td></tr>
143  
144 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">NAK is sent to client by server to indicate problem with REQUEST. <br></td></tr>
145 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga39" doxytag="dhcp::DHCP_MSG_DHCPRELEASE"></a>
146 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga39">DHCP_MSG_DHCPRELEASE</a>&nbsp;&nbsp;&nbsp;7</td></tr>
147  
148 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">RELEASE is sent by client to server to relinquish DHCP lease on IP address, etc. <br></td></tr>
149 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga40" doxytag="dhcp::DHCP_MSG_DHCPINFORM"></a>
150 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga40">DHCP_MSG_DHCPINFORM</a>&nbsp;&nbsp;&nbsp;8</td></tr>
151  
152 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">INFORM is sent by client to server to request config info, IP address configured locally. <br></td></tr>
153 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga41" doxytag="dhcp::GNUC_PACKED"></a>
154 #define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga41">GNUC_PACKED</a>&nbsp;&nbsp;&nbsp;__attribute__((packed))</td></tr>
155  
156 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DHCP Header. <br></td></tr>
157 <tr><td colspan="2"><br><h2>Functions</h2></td></tr>
158 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga1">dhcpInit</a> (void)</td></tr>
159  
160 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga2">dhcpIn</a> (unsigned int len, struct <a class="el" href="structnetDhcpHeader.html">netDhcpHeader</a> *packet)</td></tr>
161  
162 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga3">dhcpRequest</a> (void)</td></tr>
163  
164 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga4">dhcpRelease</a> (void)</td></tr>
165  
166 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga5">dhcpTimer</a> (void)</td></tr>
167  
168 <tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga6">dhcpGetOption</a> (uint8_t *options, uint8_t optcode, uint8_t optlen, void *optvalptr)</td></tr>
169  
170 <tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga7">dhcpSetOption</a> (uint8_t *options, uint8_t optcode, uint8_t optlen, void *optvalptr)</td></tr>
171  
172 <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga8">dhcpPrintHeader</a> (struct <a class="el" href="structnetDhcpHeader.html">netDhcpHeader</a> *packet)</td></tr>
173  
174 <tr><td colspan="2"><br><h2>Variables</h2></td></tr>
175 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="dhcp::GNUC_PACKED"></a>
176 <a class="el" href="structnetBootpHeader.html">netBootpHeader</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__dhcp.html#ga0">GNUC_PACKED</a></td></tr>
177  
178 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bootp Header (DHCP is transported by BOOTP/UDP/IP). <br></td></tr>
179 </table>
180 <hr><h2>Function Documentation</h2>
181 <a class="anchor" name="ga6" doxytag="dhcp.h::dhcpGetOption"></a><p>
182 <table class="mdTable" cellpadding="2" cellspacing="0">
183 <tr>
184 <td class="mdRow">
185 <table cellpadding="0" cellspacing="0" border="0">
186 <tr>
187 <td class="md" nowrap valign="top">uint8_t dhcpGetOption </td>
188 <td class="md" valign="top">(&nbsp;</td>
189 <td class="md" nowrap valign="top">uint8_t *&nbsp;</td>
190 <td class="mdname" nowrap> <em>options</em>, </td>
191 </tr>
192 <tr>
193 <td class="md" nowrap align="right"></td>
194 <td class="md"></td>
195 <td class="md" nowrap>uint8_t&nbsp;</td>
196 <td class="mdname" nowrap> <em>optcode</em>, </td>
197 </tr>
198 <tr>
199 <td class="md" nowrap align="right"></td>
200 <td class="md"></td>
201 <td class="md" nowrap>uint8_t&nbsp;</td>
202 <td class="mdname" nowrap> <em>optlen</em>, </td>
203 </tr>
204 <tr>
205 <td class="md" nowrap align="right"></td>
206 <td class="md"></td>
207 <td class="md" nowrap>void *&nbsp;</td>
208 <td class="mdname" nowrap> <em>optvalptr</em></td>
209 </tr>
210 <tr>
211 <td class="md"></td>
212 <td class="md">)&nbsp;</td>
213 <td class="md" colspan="2"></td>
214 </tr>
215 </table>
216 </td>
217 </tr>
218 </table>
219 <table cellspacing="5" cellpadding="0" border="0">
220 <tr>
221 <td>
222 &nbsp;
223 </td>
224 <td>
225  
226 <p>
227 Get a DHCP option from the option list. <dl compact><dt><b>Parameters:</b></dt><dd>
228 <table border="0" cellspacing="2" cellpadding="0">
229 <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>is a pointer to the options field of a DHCP packet. </td></tr>
230 <tr><td valign="top"></td><td valign="top"><em>optcode</em>&nbsp;</td><td>is the desired option number to retrieve. </td></tr>
231 <tr><td valign="top"></td><td valign="top"><em>optlen</em>&nbsp;</td><td>is the maximum data length that should be retrieved (less data will be retrieved if option is shorter). </td></tr>
232 <tr><td valign="top"></td><td valign="top"><em>optvalptr</em>&nbsp;</td><td>is a pointer to where the option value will be stored. </td></tr>
233 </table>
234 </dl>
235 <dl compact><dt><b>Returns:</b></dt><dd>actual length of the option data, as stored in the options list. </dd></dl>
236  
237 <p>
238 Definition at line <a class="el" href="dhcp_8c-source.html#l00212">212</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
239 </tr>
240 </table>
241 <a class="anchor" name="ga2" doxytag="dhcp.h::dhcpIn"></a><p>
242 <table class="mdTable" cellpadding="2" cellspacing="0">
243 <tr>
244 <td class="mdRow">
245 <table cellpadding="0" cellspacing="0" border="0">
246 <tr>
247 <td class="md" nowrap valign="top">void dhcpIn </td>
248 <td class="md" valign="top">(&nbsp;</td>
249 <td class="md" nowrap valign="top">unsigned int&nbsp;</td>
250 <td class="mdname" nowrap> <em>len</em>, </td>
251 </tr>
252 <tr>
253 <td class="md" nowrap align="right"></td>
254 <td class="md"></td>
255 <td class="md" nowrap>struct <a class="el" href="structnetDhcpHeader.html">netDhcpHeader</a> *&nbsp;</td>
256 <td class="mdname" nowrap> <em>packet</em></td>
257 </tr>
258 <tr>
259 <td class="md"></td>
260 <td class="md">)&nbsp;</td>
261 <td class="md" colspan="2"></td>
262 </tr>
263 </table>
264 </td>
265 </tr>
266 </table>
267 <table cellspacing="5" cellpadding="0" border="0">
268 <tr>
269 <td>
270 &nbsp;
271 </td>
272 <td>
273  
274 <p>
275 Processes incoming DHCP packets from UDP port 68. This function is to be called by the stack when a DHCP packet arrives over the network. The DHCP packet will be parsed, handled, and a response will be generated and sent if needed. When the DHCP process completes, the IP addressing will be automatically updated.
276 <p>
277 Definition at line <a class="el" href="dhcp_8c-source.html#l00042">42</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
278 </tr>
279 </table>
280 <a class="anchor" name="ga1" doxytag="dhcp.h::dhcpInit"></a><p>
281 <table class="mdTable" cellpadding="2" cellspacing="0">
282 <tr>
283 <td class="mdRow">
284 <table cellpadding="0" cellspacing="0" border="0">
285 <tr>
286 <td class="md" nowrap valign="top">void dhcpInit </td>
287 <td class="md" valign="top">(&nbsp;</td>
288 <td class="md" nowrap valign="top">void&nbsp;</td>
289 <td class="mdname1" valign="top" nowrap> </td>
290 <td class="md" valign="top">&nbsp;)&nbsp;</td>
291 <td class="md" nowrap></td>
292 </tr>
293 </table>
294 </td>
295 </tr>
296 </table>
297 <table cellspacing="5" cellpadding="0" border="0">
298 <tr>
299 <td>
300 &nbsp;
301 </td>
302 <td>
303  
304 <p>
305 Initialize DHCP system. Prepares DHCP for use and initializes lease time to zero.
306 <p>
307 Definition at line <a class="el" href="dhcp_8c-source.html#l00030">30</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
308 </tr>
309 </table>
310 <a class="anchor" name="ga8" doxytag="dhcp.h::dhcpPrintHeader"></a><p>
311 <table class="mdTable" cellpadding="2" cellspacing="0">
312 <tr>
313 <td class="mdRow">
314 <table cellpadding="0" cellspacing="0" border="0">
315 <tr>
316 <td class="md" nowrap valign="top">void dhcpPrintHeader </td>
317 <td class="md" valign="top">(&nbsp;</td>
318 <td class="md" nowrap valign="top">struct <a class="el" href="structnetDhcpHeader.html">netDhcpHeader</a> *&nbsp;</td>
319 <td class="mdname1" valign="top" nowrap> <em>packet</em> </td>
320 <td class="md" valign="top">&nbsp;)&nbsp;</td>
321 <td class="md" nowrap></td>
322 </tr>
323 </table>
324 </td>
325 </tr>
326 </table>
327 <table cellspacing="5" cellpadding="0" border="0">
328 <tr>
329 <td>
330 &nbsp;
331 </td>
332 <td>
333  
334 <p>
335 Print diagnotic information about BOOTP/DHCP packet. </td>
336 </tr>
337 </table>
338 <a class="anchor" name="ga4" doxytag="dhcp.h::dhcpRelease"></a><p>
339 <table class="mdTable" cellpadding="2" cellspacing="0">
340 <tr>
341 <td class="mdRow">
342 <table cellpadding="0" cellspacing="0" border="0">
343 <tr>
344 <td class="md" nowrap valign="top">void dhcpRelease </td>
345 <td class="md" valign="top">(&nbsp;</td>
346 <td class="md" nowrap valign="top">void&nbsp;</td>
347 <td class="mdname1" valign="top" nowrap> </td>
348 <td class="md" valign="top">&nbsp;)&nbsp;</td>
349 <td class="md" nowrap></td>
350 </tr>
351 </table>
352 </td>
353 </tr>
354 </table>
355 <table cellspacing="5" cellpadding="0" border="0">
356 <tr>
357 <td>
358 &nbsp;
359 </td>
360 <td>
361  
362 <p>
363 Release DHCP lease and assigned network parameters. This function releases the DHCP assigned address and allows the DHCP server to reallocate it.
364 <p>
365 Definition at line <a class="el" href="dhcp_8c-source.html#l00158">158</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
366 </tr>
367 </table>
368 <a class="anchor" name="ga3" doxytag="dhcp.h::dhcpRequest"></a><p>
369 <table class="mdTable" cellpadding="2" cellspacing="0">
370 <tr>
371 <td class="mdRow">
372 <table cellpadding="0" cellspacing="0" border="0">
373 <tr>
374 <td class="md" nowrap valign="top">void dhcpRequest </td>
375 <td class="md" valign="top">(&nbsp;</td>
376 <td class="md" nowrap valign="top">void&nbsp;</td>
377 <td class="mdname1" valign="top" nowrap> </td>
378 <td class="md" valign="top">&nbsp;)&nbsp;</td>
379 <td class="md" nowrap></td>
380 </tr>
381 </table>
382 </td>
383 </tr>
384 </table>
385 <table cellspacing="5" cellpadding="0" border="0">
386 <tr>
387 <td>
388 &nbsp;
389 </td>
390 <td>
391  
392 <p>
393 Request DHCP assigned network parameters. This function begins the DHCP process. The remainder of operations are handled in <a class="el" href="group__dhcp.html#ga2">dhcpIn()</a>.
394 <p>
395 Definition at line <a class="el" href="dhcp_8c-source.html#l00123">123</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
396 </tr>
397 </table>
398 <a class="anchor" name="ga7" doxytag="dhcp.h::dhcpSetOption"></a><p>
399 <table class="mdTable" cellpadding="2" cellspacing="0">
400 <tr>
401 <td class="mdRow">
402 <table cellpadding="0" cellspacing="0" border="0">
403 <tr>
404 <td class="md" nowrap valign="top">uint8_t* dhcpSetOption </td>
405 <td class="md" valign="top">(&nbsp;</td>
406 <td class="md" nowrap valign="top">uint8_t *&nbsp;</td>
407 <td class="mdname" nowrap> <em>options</em>, </td>
408 </tr>
409 <tr>
410 <td class="md" nowrap align="right"></td>
411 <td class="md"></td>
412 <td class="md" nowrap>uint8_t&nbsp;</td>
413 <td class="mdname" nowrap> <em>optcode</em>, </td>
414 </tr>
415 <tr>
416 <td class="md" nowrap align="right"></td>
417 <td class="md"></td>
418 <td class="md" nowrap>uint8_t&nbsp;</td>
419 <td class="mdname" nowrap> <em>optlen</em>, </td>
420 </tr>
421 <tr>
422 <td class="md" nowrap align="right"></td>
423 <td class="md"></td>
424 <td class="md" nowrap>void *&nbsp;</td>
425 <td class="mdname" nowrap> <em>optvalptr</em></td>
426 </tr>
427 <tr>
428 <td class="md"></td>
429 <td class="md">)&nbsp;</td>
430 <td class="md" colspan="2"></td>
431 </tr>
432 </table>
433 </td>
434 </tr>
435 </table>
436 <table cellspacing="5" cellpadding="0" border="0">
437 <tr>
438 <td>
439 &nbsp;
440 </td>
441 <td>
442  
443 <p>
444 Set a DHCP option in the option list. <dl compact><dt><b>Parameters:</b></dt><dd>
445 <table border="0" cellspacing="2" cellpadding="0">
446 <tr><td valign="top"></td><td valign="top"><em>options</em>&nbsp;</td><td>is a pointer to the options field of a DHCP packet. </td></tr>
447 <tr><td valign="top"></td><td valign="top"><em>optcode</em>&nbsp;</td><td>is the option number to write. </td></tr>
448 <tr><td valign="top"></td><td valign="top"><em>optlen</em>&nbsp;</td><td>is the data length of the option value. </td></tr>
449 <tr><td valign="top"></td><td valign="top"><em>optvalptr</em>&nbsp;</td><td>is a pointer to the option data to be read. </td></tr>
450 </table>
451 </dl>
452 <dl compact><dt><b>Returns:</b></dt><dd>pointer to write location of the next option. </dd></dl>
453  
454 <p>
455 Definition at line <a class="el" href="dhcp_8c-source.html#l00253">253</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
456 </tr>
457 </table>
458 <a class="anchor" name="ga5" doxytag="dhcp.h::dhcpTimer"></a><p>
459 <table class="mdTable" cellpadding="2" cellspacing="0">
460 <tr>
461 <td class="mdRow">
462 <table cellpadding="0" cellspacing="0" border="0">
463 <tr>
464 <td class="md" nowrap valign="top">void dhcpTimer </td>
465 <td class="md" valign="top">(&nbsp;</td>
466 <td class="md" nowrap valign="top">void&nbsp;</td>
467 <td class="mdname1" valign="top" nowrap> </td>
468 <td class="md" valign="top">&nbsp;)&nbsp;</td>
469 <td class="md" nowrap></td>
470 </tr>
471 </table>
472 </td>
473 </tr>
474 </table>
475 <table cellspacing="5" cellpadding="0" border="0">
476 <tr>
477 <td>
478 &nbsp;
479 </td>
480 <td>
481  
482 <p>
483 Periodic DHCP maintenance. This function is to be called once per second and will expire the DHCP lease.
484 <p>
485 Definition at line <a class="el" href="dhcp_8c-source.html#l00203">203</a> of file <a class="el" href="dhcp_8c-source.html">dhcp.c</a>. </td>
486 </tr>
487 </table>
488 <hr size="1"><address style="align: right;"><small>Generated on Sun Oct 29 03:41:09 2006 for Procyon AVRlib by&nbsp;
489 <a href="http://www.doxygen.org/index.html">
490 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.2 </small></address>
491 </body>
492 </html>
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3