Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 550bbe86d83a7870fdddc73c68e5d2b2 > files > 26

libunbound-devel-1.3.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>unbound: testcode/delayer.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_aae0f736e7b956edab2d753def1ee5b5.html">testcode</a>
  </div>
</div>
<div class="contents">
<h1>delayer.c File Reference</h1>This program delays queries made.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;config.h&quot;</code><br>
<code>#include &quot;<a class="el" href="net__help_8h.html">util/net_help.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="config__file_8h.html">util/config_file.h</a>&quot;</code><br>
<code>#include &lt;signal.h&gt;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structringbuf.html">ringbuf</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The ring buffer.  <a href="structringbuf.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structproxy.html">proxy</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> fds that return replies from the server to our clients.  <a href="structproxy.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtcp__send__list.html">tcp_send_list</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An item that has to be TCP relayed.  <a href="structtcp__send__list.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structtcp__proxy.html">tcp_proxy</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">List of TCP <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> fd pairs to TCP connect client to server.  <a href="structtcp__proxy.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ef650ebb54f0bbd2719019d78103ad79"></a><!-- doxytag: member="delayer.c::TRIES_PER_SELECT" ref="ef650ebb54f0bbd2719019d78103ad79" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#ef650ebb54f0bbd2719019d78103ad79">TRIES_PER_SELECT</a>&nbsp;&nbsp;&nbsp;100</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of reads per select for delayer <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cab820e45682cb2b906e71318c90446e"></a><!-- doxytag: member="delayer.c::usage" ref="cab820e45682cb2b906e71318c90446e" args="(char *argv[])" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#cab820e45682cb2b906e71318c90446e">usage</a> (char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">usage information for delayer <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dd42f407422ff27a488b46d1cf227de2"></a><!-- doxytag: member="delayer.c::dl_tv_smaller" ref="dd42f407422ff27a488b46d1cf227de2" args="(struct timeval *t1, const struct timeval *t2)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#dd42f407422ff27a488b46d1cf227de2">dl_tv_smaller</a> (struct timeval *t1, const struct timeval *t2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">timeval compare, t1 &lt; t2 <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f21ee3c058f77f936acc4f4ba5b5979c"></a><!-- doxytag: member="delayer.c::dl_tv_add" ref="f21ee3c058f77f936acc4f4ba5b5979c" args="(struct timeval *t1, const struct timeval *t2)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#f21ee3c058f77f936acc4f4ba5b5979c">dl_tv_add</a> (struct timeval *t1, const struct timeval *t2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">timeval add, t1 += t2 <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="51276f4c901ad3824f37bb540a4b0471"></a><!-- doxytag: member="delayer.c::dl_tv_subtract" ref="51276f4c901ad3824f37bb540a4b0471" args="(struct timeval *t1, const struct timeval *t2)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#51276f4c901ad3824f37bb540a4b0471">dl_tv_subtract</a> (struct timeval *t1, const struct timeval *t2)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">timeval subtract, t1 -= t2 <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="aa390178e4a8d009b625409a2c27a861"></a><!-- doxytag: member="delayer.c::ring_create" ref="aa390178e4a8d009b625409a2c27a861" args="(size_t sz)" -->
static struct <a class="el" href="structringbuf.html">ringbuf</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#aa390178e4a8d009b625409a2c27a861">ring_create</a> (size_t sz)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">create new ring buffer <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e52171aa4dc6e4e5b4805edfe1a10f2"></a><!-- doxytag: member="delayer.c::ring_delete" ref="0e52171aa4dc6e4e5b4805edfe1a10f2" args="(struct ringbuf *r)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#0e52171aa4dc6e4e5b4805edfe1a10f2">ring_delete</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *r)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delete ring buffer <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a60f1b22bc8cb9216d603d14660baeb"></a><!-- doxytag: member="delayer.c::ring_add" ref="8a60f1b22bc8cb9216d603d14660baeb" args="(struct ringbuf *r, ldns_buffer *pkt, struct timeval *now, struct timeval *delay, struct proxy *p)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#8a60f1b22bc8cb9216d603d14660baeb">ring_add</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *r, ldns_buffer *pkt, struct timeval *now, struct timeval *delay, struct <a class="el" href="structproxy.html">proxy</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">add <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> to ringbuffer <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1a4ef4a3df96e7b0bbcaa93236940b8"></a><!-- doxytag: member="delayer.c::ring_empty" ref="a1a4ef4a3df96e7b0bbcaa93236940b8" args="(struct ringbuf *r)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#a1a4ef4a3df96e7b0bbcaa93236940b8">ring_empty</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *r)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">see if the ringbuffer is empty <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fbf584afa7c28e129d97a44d00f23a5f"></a><!-- doxytag: member="delayer.c::ring_peek_time" ref="fbf584afa7c28e129d97a44d00f23a5f" args="(struct ringbuf *r)" -->
static struct timeval *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#fbf584afa7c28e129d97a44d00f23a5f">ring_peek_time</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *r)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">peek at timevalue for next item in ring <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4de22222ece05ef1c7a9e94a42959549"></a><!-- doxytag: member="delayer.c::ring_pop" ref="4de22222ece05ef1c7a9e94a42959549" args="(struct ringbuf *r, ldns_buffer *pkt, struct timeval *tv, struct proxy **p)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#4de22222ece05ef1c7a9e94a42959549">ring_pop</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *r, ldns_buffer *pkt, struct timeval *tv, struct <a class="el" href="structproxy.html">proxy</a> **p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get <a class="el" href="structentry.html" title="data structure to keep the canned queries in.">entry</a> from ringbuffer <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="813590a4355885354db0c974175cd1e7"></a><!-- doxytag: member="delayer.c::delayer_sigh" ref="813590a4355885354db0c974175cd1e7" args="(int sig)" -->
static RETSIGTYPE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#813590a4355885354db0c974175cd1e7">delayer_sigh</a> (int sig)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">signal handler for user quit <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="82bd8929e5e55a566774f388bdf1dbeb"></a><!-- doxytag: member="delayer.c::service_send" ref="82bd8929e5e55a566774f388bdf1dbeb" args="(struct ringbuf *ring, struct timeval *now, ldns_buffer *pkt, struct sockaddr_storage *srv_addr, socklen_t srv_len)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#82bd8929e5e55a566774f388bdf1dbeb">service_send</a> (struct <a class="el" href="structringbuf.html">ringbuf</a> *ring, struct timeval *now, ldns_buffer *pkt, struct sockaddr_storage *srv_addr, socklen_t srv_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">send out waiting packets <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="366bcf7dab606d617332bcf8c09a3243"></a><!-- doxytag: member="delayer.c::do_proxy" ref="366bcf7dab606d617332bcf8c09a3243" args="(struct proxy *p, int retsock, ldns_buffer *pkt)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#366bcf7dab606d617332bcf8c09a3243">do_proxy</a> (struct <a class="el" href="structproxy.html">proxy</a> *p, int retsock, ldns_buffer *pkt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">do <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> for one readable client <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="09c47e90ee8221a3184a78052c1867c9"></a><!-- doxytag: member="delayer.c::service_proxy" ref="09c47e90ee8221a3184a78052c1867c9" args="(fd_set *rset, int retsock, struct proxy *proxies, ldns_buffer *pkt, struct timeval *now)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#09c47e90ee8221a3184a78052c1867c9">service_proxy</a> (fd_set *rset, int retsock, struct <a class="el" href="structproxy.html">proxy</a> *proxies, ldns_buffer *pkt, struct timeval *now)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> return replies to clients <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a329aed341c8b7c58953531e1b6e1dc4"></a><!-- doxytag: member="delayer.c::find_create_proxy" ref="a329aed341c8b7c58953531e1b6e1dc4" args="(struct sockaddr_storage *from, socklen_t from_len, fd_set *rorig, int *max, struct proxy **proxies, int serv_ip6, struct timeval *now, struct timeval *reuse_timeout)" -->
static struct <a class="el" href="structproxy.html">proxy</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#a329aed341c8b7c58953531e1b6e1dc4">find_create_proxy</a> (struct sockaddr_storage *from, socklen_t from_len, fd_set *rorig, int *max, struct <a class="el" href="structproxy.html">proxy</a> **proxies, int serv_ip6, struct timeval *now, struct timeval *reuse_timeout)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">find or else create <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> for this remote client <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="59d7e22f6cb1bcc25cd81ef52f455d4f"></a><!-- doxytag: member="delayer.c::service_recv" ref="59d7e22f6cb1bcc25cd81ef52f455d4f" args="(int s, struct ringbuf *ring, ldns_buffer *pkt, fd_set *rorig, int *max, struct proxy **proxies, struct sockaddr_storage *srv_addr, socklen_t srv_len, struct timeval *now, struct timeval *delay, struct timeval *reuse)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#59d7e22f6cb1bcc25cd81ef52f455d4f">service_recv</a> (int s, struct <a class="el" href="structringbuf.html">ringbuf</a> *ring, ldns_buffer *pkt, fd_set *rorig, int *max, struct <a class="el" href="structproxy.html">proxy</a> **proxies, struct sockaddr_storage *srv_addr, socklen_t srv_len, struct timeval *now, struct timeval *delay, struct timeval *reuse)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">recv new waiting packets <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4569e0f841c2539023bbcb4947002aa1"></a><!-- doxytag: member="delayer.c::tcp_proxy_delete" ref="4569e0f841c2539023bbcb4947002aa1" args="(struct tcp_proxy *p)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#4569e0f841c2539023bbcb4947002aa1">tcp_proxy_delete</a> (struct <a class="el" href="structtcp__proxy.html">tcp_proxy</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delete tcp <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="958997afe77e1e3eff056b286e07506d"></a><!-- doxytag: member="delayer.c::service_tcp_listen" ref="958997afe77e1e3eff056b286e07506d" args="(int s, fd_set *rorig, int *max, struct tcp_proxy **proxies, struct sockaddr_storage *srv_addr, socklen_t srv_len, struct timeval *now, struct timeval *tcp_timeout)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#958997afe77e1e3eff056b286e07506d">service_tcp_listen</a> (int s, fd_set *rorig, int *max, struct <a class="el" href="structtcp__proxy.html">tcp_proxy</a> **proxies, struct sockaddr_storage *srv_addr, socklen_t srv_len, struct timeval *now, struct timeval *tcp_timeout)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">accept new TCP connections, and set them up <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e3b1073c2579126a68b7404a9d121641"></a><!-- doxytag: member="delayer.c::tcp_relay_read" ref="e3b1073c2579126a68b7404a9d121641" args="(int s, struct tcp_send_list **first, struct tcp_send_list **last, struct timeval *now, struct timeval *delay, ldns_buffer *pkt)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#e3b1073c2579126a68b7404a9d121641">tcp_relay_read</a> (int s, struct <a class="el" href="structtcp__send__list.html">tcp_send_list</a> **first, struct <a class="el" href="structtcp__send__list.html">tcp_send_list</a> **last, struct timeval *now, struct timeval *delay, ldns_buffer *pkt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">relay TCP, read a part <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e1a3b950938a4028ba8eda5eb0210872"></a><!-- doxytag: member="delayer.c::tcp_relay_write" ref="e1a3b950938a4028ba8eda5eb0210872" args="(int s, struct tcp_send_list **first, struct tcp_send_list **last, struct timeval *now)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#e1a3b950938a4028ba8eda5eb0210872">tcp_relay_write</a> (int s, struct <a class="el" href="structtcp__send__list.html">tcp_send_list</a> **first, struct <a class="el" href="structtcp__send__list.html">tcp_send_list</a> **last, struct timeval *now)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">relay TCP, write a part <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6cdef7c2e98b62cde53c00e274014bc7"></a><!-- doxytag: member="delayer.c::service_tcp_relay" ref="6cdef7c2e98b62cde53c00e274014bc7" args="(struct tcp_proxy **tcp_proxies, struct timeval *now, struct timeval *delay, struct timeval *tcp_timeout, ldns_buffer *pkt, fd_set *rset, fd_set *rorig, fd_set *worig)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#6cdef7c2e98b62cde53c00e274014bc7">service_tcp_relay</a> (struct <a class="el" href="structtcp__proxy.html">tcp_proxy</a> **tcp_proxies, struct timeval *now, struct timeval *delay, struct timeval *tcp_timeout, ldns_buffer *pkt, fd_set *rset, fd_set *rorig, fd_set *worig)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">perform TCP relaying <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c5d12accf3802b9a700f32e2e733b60e"></a><!-- doxytag: member="delayer.c::service_findwait" ref="c5d12accf3802b9a700f32e2e733b60e" args="(struct timeval *now, struct timeval *wait, struct ringbuf *ring, struct tcp_proxy *tcplist)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#c5d12accf3802b9a700f32e2e733b60e">service_findwait</a> (struct timeval *now, struct timeval *wait, struct <a class="el" href="structringbuf.html">ringbuf</a> *ring, struct <a class="el" href="structtcp__proxy.html">tcp_proxy</a> *tcplist)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">find waiting time <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4f3a44143db6fd733df5c5bce07a7434"></a><!-- doxytag: member="delayer.c::proxy_list_clear" ref="4f3a44143db6fd733df5c5bce07a7434" args="(struct proxy *p)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#4f3a44143db6fd733df5c5bce07a7434">proxy_list_clear</a> (struct <a class="el" href="structproxy.html">proxy</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">clear <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> list <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="957b0b28cebc20d32b9d90be9a25e6c9"></a><!-- doxytag: member="delayer.c::tcp_proxy_list_clear" ref="957b0b28cebc20d32b9d90be9a25e6c9" args="(struct tcp_proxy *p)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#957b0b28cebc20d32b9d90be9a25e6c9">tcp_proxy_list_clear</a> (struct <a class="el" href="structtcp__proxy.html">tcp_proxy</a> *p)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">clear TCP <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> list <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d76fdfd69c093ec8b08c29690d6953ae"></a><!-- doxytag: member="delayer.c::service_loop" ref="d76fdfd69c093ec8b08c29690d6953ae" args="(int udp_s, int listen_s, struct ringbuf *ring, struct timeval *delay, struct timeval *reuse, struct sockaddr_storage *srv_addr, socklen_t srv_len, ldns_buffer *pkt)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#d76fdfd69c093ec8b08c29690d6953ae">service_loop</a> (int udp_s, int listen_s, struct <a class="el" href="structringbuf.html">ringbuf</a> *ring, struct timeval *delay, struct timeval *reuse, struct sockaddr_storage *srv_addr, socklen_t srv_len, ldns_buffer *pkt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delayer service loop <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="de1a546552639feb551239df99b6ad85"></a><!-- doxytag: member="delayer.c::service" ref="de1a546552639feb551239df99b6ad85" args="(const char *bind_str, int bindport, const char *serv_str, size_t memsize, int delay_msec)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#de1a546552639feb551239df99b6ad85">service</a> (const char *bind_str, int bindport, const char *serv_str, size_t memsize, int delay_msec)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">delayer main service routine <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3c04138a5bfe5d72780bb7e82a18e627"></a><!-- doxytag: member="delayer.c::main" ref="3c04138a5bfe5d72780bb7e82a18e627" args="(int argc, char **argv)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">main program for delayer <br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0aff874e5301f3096f209ef3a591557c"></a><!-- doxytag: member="delayer.c::do_quit" ref="0aff874e5301f3096f209ef3a591557c" args="" -->
static volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#0aff874e5301f3096f209ef3a591557c">do_quit</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">signal handler global info <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#d5e1c16213bbee2d5e8cc363309f418c">optind</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getopt global, in case header files fail to declare it.  <a href="#d5e1c16213bbee2d5e8cc363309f418c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="delayer_8c.html#db50a0eab9fed92fc3bfc7dfa4f2c410">optarg</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getopt global, in case header files fail to declare it.  <a href="#db50a0eab9fed92fc3bfc7dfa4f2c410"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This program delays queries made. 
<p>
It performs as a <a class="el" href="structproxy.html" title="List of proxy fds that return replies from the server to our clients.">proxy</a> to another server and delays queries to it. <hr><h2>Variable Documentation</h2>
<a class="anchor" name="d5e1c16213bbee2d5e8cc363309f418c"></a><!-- doxytag: member="delayer.c::optind" ref="d5e1c16213bbee2d5e8cc363309f418c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="streamtcp_8c.html#d5e1c16213bbee2d5e8cc363309f418c">optind</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
getopt global, in case header files fail to declare it. 
<p>

</div>
</div><p>
<a class="anchor" name="db50a0eab9fed92fc3bfc7dfa4f2c410"></a><!-- doxytag: member="delayer.c::optarg" ref="db50a0eab9fed92fc3bfc7dfa4f2c410" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="streamtcp_8c.html#db50a0eab9fed92fc3bfc7dfa4f2c410">optarg</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
getopt global, in case header files fail to declare it. 
<p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:31 2009 for unbound by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>