⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a00172.html

📁 uip-1.0,give everyone who want.
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<a name="l00350"></a><a class="code" href="a00160.html#ge4dcbbe6c641d2e3b8537b479df5fc99">00350</a> <a class="code" href="a00160.html#ge4dcbbe6c641d2e3b8537b479df5fc99">resolv_query</a>(<span class="keywordtype">char</span> *name)<a name="l00351"></a>00351 {<a name="l00352"></a>00352   <span class="keyword">static</span> <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> i;<a name="l00353"></a>00353   <span class="keyword">static</span> <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> lseq, lseqi;<a name="l00354"></a>00354   <span class="keyword">register</span> <span class="keyword">struct </span>namemap *nameptr;<a name="l00355"></a>00355       <a name="l00356"></a>00356   lseq = lseqi = 0;<a name="l00357"></a>00357   <a name="l00358"></a>00358   <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code" href="a00160.html#g221d37ccde7e3fd0dd2c2eb0a6b15493">RESOLV_ENTRIES</a>; ++i) {<a name="l00359"></a>00359     nameptr = &amp;names[i];<a name="l00360"></a>00360     <span class="keywordflow">if</span>(nameptr-&gt;state == <a class="code" href="a00102.html#ee60b8757bacab269b0ccd7c240bf01d">STATE_UNUSED</a>) {<a name="l00361"></a>00361       <span class="keywordflow">break</span>;<a name="l00362"></a>00362     }<a name="l00363"></a>00363     <span class="keywordflow">if</span>(seqno - nameptr-&gt;seqno &gt; lseq) {<a name="l00364"></a>00364       lseq = seqno - nameptr-&gt;seqno;<a name="l00365"></a>00365       lseqi = i;<a name="l00366"></a>00366     }<a name="l00367"></a>00367   }<a name="l00368"></a>00368 <a name="l00369"></a>00369   <span class="keywordflow">if</span>(i == <a class="code" href="a00160.html#g221d37ccde7e3fd0dd2c2eb0a6b15493">RESOLV_ENTRIES</a>) {<a name="l00370"></a>00370     i = lseqi;<a name="l00371"></a>00371     nameptr = &amp;names[i];<a name="l00372"></a>00372   }<a name="l00373"></a>00373 <a name="l00374"></a>00374   <span class="comment">/*  printf("Using entry %d\n", i);*/</span><a name="l00375"></a>00375 <a name="l00376"></a>00376   strcpy(nameptr-&gt;name, name);<a name="l00377"></a>00377   nameptr-&gt;state = <a class="code" href="a00102.html#bf4401501f1389872141a78b63f325a3">STATE_NEW</a>;<a name="l00378"></a>00378   nameptr-&gt;seqno = seqno;<a name="l00379"></a>00379   ++seqno;<a name="l00380"></a>00380 }<a name="l00381"></a>00381 <span class="comment">/*---------------------------------------------------------------------------*/</span><span class="comment"></span><a name="l00382"></a>00382 <span class="comment">/**</span><a name="l00383"></a>00383 <span class="comment"> * Look up a hostname in the array of known hostnames.</span><a name="l00384"></a>00384 <span class="comment"> *</span><a name="l00385"></a>00385 <span class="comment"> * \note This function only looks in the internal array of known</span><a name="l00386"></a>00386 <span class="comment"> * hostnames, it does not send out a query for the hostname if none</span><a name="l00387"></a>00387 <span class="comment"> * was found. The function resolv_query() can be used to send a query</span><a name="l00388"></a>00388 <span class="comment"> * for a hostname.</span><a name="l00389"></a>00389 <span class="comment"> *</span><a name="l00390"></a>00390 <span class="comment"> * \return A pointer to a 4-byte representation of the hostname's IP</span><a name="l00391"></a>00391 <span class="comment"> * address, or NULL if the hostname was not found in the array of</span><a name="l00392"></a>00392 <span class="comment"> * hostnames.</span><a name="l00393"></a>00393 <span class="comment"> */</span><a name="l00394"></a>00394 <span class="comment">/*---------------------------------------------------------------------------*/</span><a name="l00395"></a>00395 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *<a name="l00396"></a><a class="code" href="a00160.html#g66d19181ad5fe8b8f7c84d1f1d46a2ec">00396</a> <a class="code" href="a00160.html#g66d19181ad5fe8b8f7c84d1f1d46a2ec">resolv_lookup</a>(<span class="keywordtype">char</span> *name)<a name="l00397"></a>00397 {<a name="l00398"></a>00398   <span class="keyword">static</span> <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> i;<a name="l00399"></a>00399   <span class="keyword">struct </span>namemap *nameptr;<a name="l00400"></a>00400   <a name="l00401"></a>00401   <span class="comment">/* Walk through the list to see if the name is in there. If it is</span><a name="l00402"></a>00402 <span class="comment">     not, we return NULL. */</span><a name="l00403"></a>00403   <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code" href="a00160.html#g221d37ccde7e3fd0dd2c2eb0a6b15493">RESOLV_ENTRIES</a>; ++i) {<a name="l00404"></a>00404     nameptr = &amp;names[i];<a name="l00405"></a>00405     <span class="keywordflow">if</span>(nameptr-&gt;state == <a class="code" href="a00102.html#876c82c946543cd70c141e41417138e0">STATE_DONE</a> &amp;&amp;<a name="l00406"></a>00406        strcmp(name, nameptr-&gt;name) == 0) {<a name="l00407"></a>00407       <span class="keywordflow">return</span> nameptr-&gt;ipaddr;<a name="l00408"></a>00408     }<a name="l00409"></a>00409   }<a name="l00410"></a>00410   <span class="keywordflow">return</span> <a class="code" href="a00160.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;<a name="l00411"></a>00411 }<a name="l00412"></a>00412 <span class="comment">/*---------------------------------------------------------------------------*/</span><span class="comment"></span><a name="l00413"></a>00413 <span class="comment">/**</span><a name="l00414"></a>00414 <span class="comment"> * Obtain the currently configured DNS server.</span><a name="l00415"></a>00415 <span class="comment"> *</span><a name="l00416"></a>00416 <span class="comment"> * \return A pointer to a 4-byte representation of the IP address of</span><a name="l00417"></a>00417 <span class="comment"> * the currently configured DNS server or NULL if no DNS server has</span><a name="l00418"></a>00418 <span class="comment"> * been configured.</span><a name="l00419"></a>00419 <span class="comment"> */</span><a name="l00420"></a>00420 <span class="comment">/*---------------------------------------------------------------------------*/</span><a name="l00421"></a>00421 <a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *<a name="l00422"></a><a class="code" href="a00160.html#g3191066cf8f76bd00b6843b77c37068f">00422</a> <a class="code" href="a00160.html#g3191066cf8f76bd00b6843b77c37068f">resolv_getserver</a>(<span class="keywordtype">void</span>)<a name="l00423"></a>00423 {<a name="l00424"></a>00424   <span class="keywordflow">if</span>(resolv_conn == <a class="code" href="a00160.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {<a name="l00425"></a>00425     <span class="keywordflow">return</span> <a class="code" href="a00160.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;<a name="l00426"></a>00426   }<a name="l00427"></a>00427   <span class="keywordflow">return</span> resolv_conn-&gt;<a class="code" href="a00095.html#8a661a2d544100b82d0d14a1985083d5">ripaddr</a>;<a name="l00428"></a>00428 }<a name="l00429"></a>00429 <span class="comment">/*---------------------------------------------------------------------------*/</span><span class="comment"></span><a name="l00430"></a>00430 <span class="comment">/**</span><a name="l00431"></a>00431 <span class="comment"> * Configure which DNS server to use for queries.</span><a name="l00432"></a>00432 <span class="comment"> *</span><a name="l00433"></a>00433 <span class="comment"> * \param dnsserver A pointer to a 4-byte representation of the IP</span><a name="l00434"></a>00434 <span class="comment"> * address of the DNS server to be configured.</span><a name="l00435"></a>00435 <span class="comment"> */</span><a name="l00436"></a>00436 <span class="comment">/*---------------------------------------------------------------------------*/</span><a name="l00437"></a>00437 <span class="keywordtype">void</span><a name="l00438"></a><a class="code" href="a00160.html#gdf916e0c752f5cda70d0bddb2be422ba">00438</a> <a class="code" href="a00160.html#gdf916e0c752f5cda70d0bddb2be422ba">resolv_conf</a>(<a class="code" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> *dnsserver)<a name="l00439"></a>00439 {<a name="l00440"></a>00440   <span class="keywordflow">if</span>(resolv_conn != <a class="code" href="a00160.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) {<a name="l00441"></a>00441     <a class="code" href="a00147.html#gf2dbaceb10c67783a115075b5b6d66df">uip_udp_remove</a>(resolv_conn);<a name="l00442"></a>00442   }<a name="l00443"></a>00443   <a name="l00444"></a>00444   resolv_conn = <a class="code" href="a00147.html#g79c4110211247df3fb30b8cf1c4c02af">uip_udp_new</a>(dnsserver, <a class="code" href="a00148.html#g69a7a4951ff21b302267532c21ee78fc">HTONS</a>(53));<a name="l00445"></a>00445 }<a name="l00446"></a>00446 <span class="comment">/*---------------------------------------------------------------------------*/</span><span class="comment"></span><a name="l00447"></a>00447 <span class="comment">/**</span><a name="l00448"></a>00448 <span class="comment"> * Initalize the resolver.</span><a name="l00449"></a>00449 <span class="comment"> */</span><a name="l00450"></a>00450 <span class="comment">/*---------------------------------------------------------------------------*/</span><a name="l00451"></a>00451 <span class="keywordtype">void</span><a name="l00452"></a><a class="code" href="a00160.html#gb50f78bbf36d912d69f6c1685d0b40e3">00452</a> <a class="code" href="a00160.html#gb50f78bbf36d912d69f6c1685d0b40e3">resolv_init</a>(<span class="keywordtype">void</span>)<a name="l00453"></a>00453 {<a name="l00454"></a>00454   <span class="keyword">static</span> <a class="code" href="a00153.html#g4caecabca98b43919dd11be1c0d4cd8e">u8_t</a> i;<a name="l00455"></a>00455   <a name="l00456"></a>00456   <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code" href="a00160.html#g221d37ccde7e3fd0dd2c2eb0a6b15493">RESOLV_ENTRIES</a>; ++i) {<a name="l00457"></a>00457     names[i].state = <a class="code" href="a00102.html#876c82c946543cd70c141e41417138e0">STATE_DONE</a>;<a name="l00458"></a>00458   }<a name="l00459"></a>00459 <a name="l00460"></a>00460 }<a name="l00461"></a>00461 <span class="comment">/*---------------------------------------------------------------------------*/</span><a name="l00462"></a>00462 <span class="comment"></span><a name="l00463"></a>00463 <span class="comment">/** @} */</span><span class="comment"></span><a name="l00464"></a>00464 <span class="comment">/** @} */</span></pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:01 2006 for uIP 1.0 by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -