Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 53919da1eb7b299aeaf7fae0057a75b7 > files > 1751

libnl3-doc-3.2.21-1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>libnl: Socket</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="libnl.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">libnl
   &#160;<span id="projectnumber">3.2.21</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__socket.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">Socket</div>  </div>
<div class="ingroups"><a class="el" href="group__core__types.html">Data Types</a></div></div><!--header-->
<div class="contents">

<p>Representation of a netlink socket.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Allocation</h2></td></tr>
<tr class="memitem:gaf9458e6b88324962065f93a13d53cf2c"><td class="memItemLeft" align="right" valign="top">struct nl_sock *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaf9458e6b88324962065f93a13d53cf2c">nl_socket_alloc</a> (void)</td></tr>
<tr class="memdesc:gaf9458e6b88324962065f93a13d53cf2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate new netlink socket.  <a href="#gaf9458e6b88324962065f93a13d53cf2c"></a><br/></td></tr>
<tr class="memitem:ga167dec9cffb935ae2b6f2c65afd43a58"><td class="memItemLeft" align="right" valign="top">struct nl_sock *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga167dec9cffb935ae2b6f2c65afd43a58">nl_socket_alloc_cb</a> (struct nl_cb *cb)</td></tr>
<tr class="memdesc:ga167dec9cffb935ae2b6f2c65afd43a58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate new socket with custom callbacks.  <a href="#ga167dec9cffb935ae2b6f2c65afd43a58"></a><br/></td></tr>
<tr class="memitem:gaeca5e9a3c9d0a22c93033dc513631a10"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaeca5e9a3c9d0a22c93033dc513631a10">nl_socket_free</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:gaeca5e9a3c9d0a22c93033dc513631a10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a netlink socket.  <a href="#gaeca5e9a3c9d0a22c93033dc513631a10"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Sequence Numbers</h2></td></tr>
<tr class="memitem:gad6b7850749d878e05476c3f1c2036ade"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gad6b7850749d878e05476c3f1c2036ade">nl_socket_disable_seq_check</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:gad6b7850749d878e05476c3f1c2036ade"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable sequence number checking.  <a href="#gad6b7850749d878e05476c3f1c2036ade"></a><br/></td></tr>
<tr class="memitem:gad5bf2023b456c30cdfa4c5bc0c611cfb"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gad5bf2023b456c30cdfa4c5bc0c611cfb">nl_socket_use_seq</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:gad5bf2023b456c30cdfa4c5bc0c611cfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use next sequence number.  <a href="#gad5bf2023b456c30cdfa4c5bc0c611cfb"></a><br/></td></tr>
<tr class="memitem:ga0eb7a2352e6293b867c81cbc1c7efa2c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga0eb7a2352e6293b867c81cbc1c7efa2c">nl_socket_disable_auto_ack</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:ga0eb7a2352e6293b867c81cbc1c7efa2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable automatic request for ACK.  <a href="#ga0eb7a2352e6293b867c81cbc1c7efa2c"></a><br/></td></tr>
<tr class="memitem:gaa779135bf19ec20be61a582371b223be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaa779135bf19ec20be61a582371b223be">nl_socket_enable_auto_ack</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:gaa779135bf19ec20be61a582371b223be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable automatic request for ACK (default)  <a href="#gaa779135bf19ec20be61a582371b223be"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Source Idenficiation</h2></td></tr>
<tr class="memitem:gac387577a74609f698972a052ba2680f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac387577a74609f698972a052ba2680f3"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_get_local_port</b> (const struct nl_sock *sk)</td></tr>
<tr class="memitem:ga0859e2a0b3ec538f22b77ac472de4e9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga0859e2a0b3ec538f22b77ac472de4e9e">nl_socket_set_local_port</a> (struct nl_sock *sk, uint32_t port)</td></tr>
<tr class="memdesc:ga0859e2a0b3ec538f22b77ac472de4e9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set local port of socket.  <a href="#ga0859e2a0b3ec538f22b77ac472de4e9e"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Group Subscriptions</h2></td></tr>
<tr class="memitem:ga75984b1590bb6c006cc9e08a483d1863"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga75984b1590bb6c006cc9e08a483d1863">nl_socket_add_memberships</a> (struct nl_sock *sk, int group,...)</td></tr>
<tr class="memdesc:ga75984b1590bb6c006cc9e08a483d1863"><td class="mdescLeft">&#160;</td><td class="mdescRight">Join groups.  <a href="#ga75984b1590bb6c006cc9e08a483d1863"></a><br/></td></tr>
<tr class="memitem:gac3156d4fe62fd08dacee595d78ad328c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac3156d4fe62fd08dacee595d78ad328c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_add_membership</b> (struct nl_sock *sk, int group)</td></tr>
<tr class="memitem:gaedb914d2bfafce5ec7383ab790b453a0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaedb914d2bfafce5ec7383ab790b453a0">nl_socket_drop_memberships</a> (struct nl_sock *sk, int group,...)</td></tr>
<tr class="memdesc:gaedb914d2bfafce5ec7383ab790b453a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Leave groups.  <a href="#gaedb914d2bfafce5ec7383ab790b453a0"></a><br/></td></tr>
<tr class="memitem:ga61d1fbeb92f9e7d4ef7495a475f47ace"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga61d1fbeb92f9e7d4ef7495a475f47ace"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_drop_membership</b> (struct nl_sock *sk, int group)</td></tr>
<tr class="memitem:ga48bba321312457e05c050f7672a8766a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga48bba321312457e05c050f7672a8766a">nl_join_groups</a> (struct nl_sock *sk, int groups)</td></tr>
<tr class="memdesc:ga48bba321312457e05c050f7672a8766a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Join multicast groups (deprecated)  <a href="#ga48bba321312457e05c050f7672a8766a"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Peer Identfication</h2></td></tr>
<tr class="memitem:gad54172f1bfbd0a4a3957eb7a79ebfb5f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad54172f1bfbd0a4a3957eb7a79ebfb5f"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_get_peer_port</b> (const struct nl_sock *sk)</td></tr>
<tr class="memitem:ga72348f8dde524653fd8ed19d38e3fe72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga72348f8dde524653fd8ed19d38e3fe72"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_set_peer_port</b> (struct nl_sock *sk, uint32_t port)</td></tr>
<tr class="memitem:ga563cf57b2db2aa93ca152d120c89b307"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga563cf57b2db2aa93ca152d120c89b307"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_get_peer_groups</b> (const struct nl_sock *sk)</td></tr>
<tr class="memitem:gae0225d0f9d82f5b2663dc3d52f2be6f8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae0225d0f9d82f5b2663dc3d52f2be6f8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_set_peer_groups</b> (struct nl_sock *sk, uint32_t groups)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
File Descriptor</h2></td></tr>
<tr class="memitem:ga058105d762a03b5cb0dfe3b5de9187ff"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga058105d762a03b5cb0dfe3b5de9187ff">nl_socket_get_fd</a> (const struct nl_sock *sk)</td></tr>
<tr class="memdesc:ga058105d762a03b5cb0dfe3b5de9187ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the file descriptor of the backing socket.  <a href="#ga058105d762a03b5cb0dfe3b5de9187ff"></a><br/></td></tr>
<tr class="memitem:gaa5eeee12e085b1731ba92edbd150ef2a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaa5eeee12e085b1731ba92edbd150ef2a">nl_socket_set_nonblocking</a> (const struct nl_sock *sk)</td></tr>
<tr class="memdesc:gaa5eeee12e085b1731ba92edbd150ef2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set file descriptor of socket to non-blocking state.  <a href="#gaa5eeee12e085b1731ba92edbd150ef2a"></a><br/></td></tr>
<tr class="memitem:gab7cd92edf688705e3e9930b6a343136e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gab7cd92edf688705e3e9930b6a343136e">nl_socket_enable_msg_peek</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:gab7cd92edf688705e3e9930b6a343136e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable use of MSG_PEEK when reading from socket.  <a href="#gab7cd92edf688705e3e9930b6a343136e"></a><br/></td></tr>
<tr class="memitem:ga86bfb9a6614e3f5ffa230fab6dde9bc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga86bfb9a6614e3f5ffa230fab6dde9bc9">nl_socket_disable_msg_peek</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:ga86bfb9a6614e3f5ffa230fab6dde9bc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable use of MSG_PEEK when reading from socket.  <a href="#ga86bfb9a6614e3f5ffa230fab6dde9bc9"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Callback Handler</h2></td></tr>
<tr class="memitem:gaa9cb4ecce7c9a39fa2dc32a2a0f3c0e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa9cb4ecce7c9a39fa2dc32a2a0f3c0e1"></a>
struct nl_cb *&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_get_cb</b> (const struct nl_sock *sk)</td></tr>
<tr class="memitem:ga33137defd3b6d7e221660d223d99942d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga33137defd3b6d7e221660d223d99942d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>nl_socket_set_cb</b> (struct nl_sock *sk, struct nl_cb *cb)</td></tr>
<tr class="memitem:gaeee66d6edef118209c7e7f1e3d393448"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaeee66d6edef118209c7e7f1e3d393448">nl_socket_modify_cb</a> (struct nl_sock *sk, enum <a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a> type, enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind, <a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a> func, void *arg)</td></tr>
<tr class="memdesc:gaeee66d6edef118209c7e7f1e3d393448"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the callback handler associated with the socket.  <a href="#gaeee66d6edef118209c7e7f1e3d393448"></a><br/></td></tr>
<tr class="memitem:ga3738dcdeadd5113d01d31f21349fa751"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga3738dcdeadd5113d01d31f21349fa751">nl_socket_modify_err_cb</a> (struct nl_sock *sk, enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a> kind, <a class="el" href="group__cb.html#ga2eb817b53fffe9103030c692c73b94df">nl_recvmsg_err_cb_t</a> func, void *arg)</td></tr>
<tr class="memdesc:ga3738dcdeadd5113d01d31f21349fa751"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the error callback handler associated with the socket.  <a href="#ga3738dcdeadd5113d01d31f21349fa751"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="member-group"></a>
Utilities</h2></td></tr>
<tr class="memitem:gaec9b1f3b0fdbf4e6e0fb10a233b5df68"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#gaec9b1f3b0fdbf4e6e0fb10a233b5df68">nl_socket_set_buffer_size</a> (struct nl_sock *sk, int rxbuf, int txbuf)</td></tr>
<tr class="memdesc:gaec9b1f3b0fdbf4e6e0fb10a233b5df68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set socket buffer size of netlink socket.  <a href="#gaec9b1f3b0fdbf4e6e0fb10a233b5df68"></a><br/></td></tr>
<tr class="memitem:ga9f6206b0f28de26cb5c9081f97106179"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga9f6206b0f28de26cb5c9081f97106179">nl_socket_set_msg_buf_size</a> (struct nl_sock *sk, size_t bufsize)</td></tr>
<tr class="memdesc:ga9f6206b0f28de26cb5c9081f97106179"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set default message buffer size of netlink socket.  <a href="#ga9f6206b0f28de26cb5c9081f97106179"></a><br/></td></tr>
<tr class="memitem:ga2361aa95d1488bc13ca191207f7061fa"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga2361aa95d1488bc13ca191207f7061fa">nl_socket_get_msg_buf_size</a> (struct nl_sock *sk)</td></tr>
<tr class="memdesc:ga2361aa95d1488bc13ca191207f7061fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get default message buffer size of netlink socket.  <a href="#ga2361aa95d1488bc13ca191207f7061fa"></a><br/></td></tr>
<tr class="memitem:ga6a5fcd2cbf0750b9cfdf46f601c375fc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga6a5fcd2cbf0750b9cfdf46f601c375fc">nl_socket_set_passcred</a> (struct nl_sock *sk, int state)</td></tr>
<tr class="memdesc:ga6a5fcd2cbf0750b9cfdf46f601c375fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable credential passing on netlink socket.  <a href="#ga6a5fcd2cbf0750b9cfdf46f601c375fc"></a><br/></td></tr>
<tr class="memitem:ga2facfac41d18210d3660f496d88023a2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__socket.html#ga2facfac41d18210d3660f496d88023a2">nl_socket_recv_pktinfo</a> (struct nl_sock *sk, int state)</td></tr>
<tr class="memdesc:ga2facfac41d18210d3660f496d88023a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable receival of additional packet information.  <a href="#ga2facfac41d18210d3660f496d88023a2"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Representation of a netlink socket. </p>
<p>Related sections in the development guide:</p>
<ul>
<li><a href="../core.html#core_sockets"><b> Netlink Sockets (Netlink Core Library Development Guide)</b></a></li>
</ul>
<h2>Header</h2>
<div class="fragment"><div class="line"><span class="preprocessor">   #include &lt;netlink/socket.h&gt;</span></div>
</div><!-- fragment --> <hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaf9458e6b88324962065f93a13d53cf2c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct nl_sock* nl_socket_alloc </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate new netlink socket. </p>
<dl class="section return"><dt>Returns:</dt><dd>Newly allocated netlink socket or NULL. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00141">141</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00200">nl_cb_alloc()</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00135">nl_cache_mngr_alloc()</a>.</p>

<p><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaf9458e6b88324962065f93a13d53cf2c_cgraph.png" border="0" usemap="#group__socket_gaf9458e6b88324962065f93a13d53cf2c_cgraph" alt=""/></div>
<map name="group__socket_gaf9458e6b88324962065f93a13d53cf2c_cgraph" id="group__socket_gaf9458e6b88324962065f93a13d53cf2c_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gaea2e77b9e3c0c875f44aec236d9a1009" title="Allocate a new callback handle." alt="" coords="173,31,264,57"/><area shape="rect" id="node5" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77" title="Set up an error callback." alt="" coords="313,5,393,32"/><area shape="rect" id="node7" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="312,56,395,83"/></map>
</div>
</p>

<p><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaf9458e6b88324962065f93a13d53cf2c_icgraph.png" border="0" usemap="#group__socket_gaf9458e6b88324962065f93a13d53cf2c_icgraph" alt=""/></div>
<map name="group__socket_gaf9458e6b88324962065f93a13d53cf2c_icgraph" id="group__socket_gaf9458e6b88324962065f93a13d53cf2c_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="173,5,328,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga167dec9cffb935ae2b6f2c65afd43a58"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">struct nl_sock* nl_socket_alloc_cb </td>
          <td>(</td>
          <td class="paramtype">struct nl_cb *&#160;</td>
          <td class="paramname"><em>cb</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">read</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allocate new socket with custom callbacks. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">cb</td><td>Callback handler</td></tr>
  </table>
  </dd>
</dl>
<p>The reference to the callback handler is taken into account automatically, it is released again upon calling <a class="el" href="group__socket.html#gaeca5e9a3c9d0a22c93033dc513631a10" title="Free a netlink socket.">nl_socket_free()</a>.</p>
<dl class="section return"><dt>Returns:</dt><dd>Newly allocted socket handle or NULL. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00161">161</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaeca5e9a3c9d0a22c93033dc513631a10"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_free </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free a netlink socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00173">173</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00135">nl_cache_mngr_alloc()</a>, and <a class="el" href="cache__mngr_8c_source.html#l00492">nl_cache_mngr_free()</a>.</p>

<p><div id="dynsection-2" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-2-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-2-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-2-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaeca5e9a3c9d0a22c93033dc513631a10_icgraph.png" border="0" usemap="#group__socket_gaeca5e9a3c9d0a22c93033dc513631a10_icgraph" alt=""/></div>
<map name="group__socket_gaeca5e9a3c9d0a22c93033dc513631a10_icgraph" id="group__socket_gaeca5e9a3c9d0a22c93033dc513631a10_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="368,5,523,32"/><area shape="rect" id="node5" href="group__cache__mngr.html#ga3c3ff6903e0fd29c620cc9b7a47e5a99" title="Free cache manager and all caches." alt="" coords="169,31,319,57"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gad6b7850749d878e05476c3f1c2036ade"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_disable_seq_check </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disable sequence number checking. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket.</td></tr>
  </table>
  </dd>
</dl>
<p>Disables checking of sequence numbers on the netlink socket This is required to allow messages to be processed which were not requested by a preceding request message, e.g. netlink events.</p>
<dl class="section note"><dt>Note:</dt><dd>This function modifies the NL_CB_SEQ_CHECK configuration in the callback handle associated with the socket. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00212">212</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>References <a class="el" href="handlers_8h_source.html#l00080">NL_CB_CUSTOM</a>, <a class="el" href="handlers_8h_source.html#l00108">NL_CB_SEQ_CHECK</a>, and <a class="el" href="handlers_8c_source.html#l00280">nl_cb_set()</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00135">nl_cache_mngr_alloc()</a>.</p>

<p><div id="dynsection-3" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-3-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-3-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-3-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gad6b7850749d878e05476c3f1c2036ade_cgraph.png" border="0" usemap="#group__socket_gad6b7850749d878e05476c3f1c2036ade_cgraph" alt=""/></div>
<map name="group__socket_gad6b7850749d878e05476c3f1c2036ade_cgraph" id="group__socket_gad6b7850749d878e05476c3f1c2036ade_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="219,12,301,39"/></map>
</div>
</p>

<p><div id="dynsection-4" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-4-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-4-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-4-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gad6b7850749d878e05476c3f1c2036ade_icgraph.png" border="0" usemap="#group__socket_gad6b7850749d878e05476c3f1c2036ade_icgraph" alt=""/></div>
<map name="group__socket_gad6b7850749d878e05476c3f1c2036ade_icgraph" id="group__socket_gad6b7850749d878e05476c3f1c2036ade_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="219,12,373,39"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gad5bf2023b456c30cdfa4c5bc0c611cfb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int nl_socket_use_seq </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Use next sequence number. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket.</td></tr>
  </table>
  </dd>
</dl>
<p>Uses the next available sequence number and increases the counter by one for subsequent calls.</p>
<dl class="section return"><dt>Returns:</dt><dd>Unique serial sequence number </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00227">227</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga0eb7a2352e6293b867c81cbc1c7efa2c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_disable_auto_ack </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disable automatic request for ACK. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket.</td></tr>
  </table>
  </dd>
</dl>
<p>The default behaviour of a socket is to request an ACK for each message sent to allow for the caller to synchronize to the completion of the netlink operation. This function disables this behaviour and will result in requests being sent which will not have the NLM_F_ACK flag set automatically. However, it is still possible for the caller to set the NLM_F_ACK flag explicitely. </p>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00244">244</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaa779135bf19ec20be61a582371b223be"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_enable_auto_ack </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable automatic request for ACK (default) </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__socket.html#ga0eb7a2352e6293b867c81cbc1c7efa2c" title="Disable automatic request for ACK.">nl_socket_disable_auto_ack</a> </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00254">254</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga0859e2a0b3ec538f22b77ac472de4e9e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_set_local_port </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set local port of socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">port</td><td>Local port identifier</td></tr>
  </table>
  </dd>
</dl>
<p>Assigns a local port identifier to the socket. If port is 0 a unique port identifier will be generated automatically. </p>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00279">279</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga75984b1590bb6c006cc9e08a483d1863"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_add_memberships </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Join groups. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket </td></tr>
    <tr><td class="paramname">group</td><td>Group identifier</td></tr>
  </table>
  </dd>
</dl>
<p>Joins the specified groups using the modern socket option which is available since kernel version 2.6.14. It allows joining an almost arbitary number of groups without limitation. The list of groups has to be terminated by 0 (NFNLGRP_NONE).</p>
<p>Make sure to use the correct group definitions as the older bitmask definitions for <a class="el" href="group__socket.html#ga48bba321312457e05c050f7672a8766a" title="Join multicast groups (deprecated)">nl_join_groups()</a> are likely to still be present for backward compatibility reasons.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on sucess or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00323">323</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaedb914d2bfafce5ec7383ab790b453a0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_drop_memberships </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Leave groups. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket </td></tr>
    <tr><td class="paramname">group</td><td>Group identifier</td></tr>
  </table>
  </dd>
</dl>
<p>Leaves the specified groups using the modern socket option which is available since kernel version 2.6.14. The list of groups has to terminated by 0 (NFNLGRP_NONE).</p>
<dl class="section see"><dt>See also:</dt><dd>nl_socket_add_membership </dd></dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00371">371</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga48bba321312457e05c050f7672a8766a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_join_groups </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>groups</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Join multicast groups (deprecated) </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">groups</td><td>Bitmask of groups to join.</td></tr>
  </table>
  </dd>
</dl>
<p>This function defines the old way of joining multicast group which has to be done prior to calling <a class="el" href="group__send__recv.html#ga86da21b5037e3b883f307661c3edd22f" title="Create file descriptor and bind socket.">nl_connect()</a>. It works on any kernel version but is very limited as only 32 groups can be joined. </p>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00417">417</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga058105d762a03b5cb0dfe3b5de9187ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_get_fd </td>
          <td>(</td>
          <td class="paramtype">const struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the file descriptor of the backing socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket</td></tr>
  </table>
  </dd>
</dl>
<p>Only valid after calling <a class="el" href="group__send__recv.html#ga86da21b5037e3b883f307661c3edd22f" title="Create file descriptor and bind socket.">nl_connect()</a> to create and bind the respective socket.</p>
<dl class="section return"><dt>Returns:</dt><dd>File descriptor or -1 if not available. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00468">468</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00417">nl_cache_mngr_data_ready()</a>, <a class="el" href="cache__mngr_8c_source.html#l00357">nl_cache_mngr_get_fd()</a>, and <a class="el" href="cache__mngr_8c_source.html#l00381">nl_cache_mngr_poll()</a>.</p>

<p><div id="dynsection-5" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-5-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-5-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-5-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_ga058105d762a03b5cb0dfe3b5de9187ff_icgraph.png" border="0" usemap="#group__socket_ga058105d762a03b5cb0dfe3b5de9187ff_icgraph" alt=""/></div>
<map name="group__socket_ga058105d762a03b5cb0dfe3b5de9187ff_icgraph" id="group__socket_ga058105d762a03b5cb0dfe3b5de9187ff_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#gaea5a5c62599aefaf9a540f770a5b1fd4" title="Receive available event notifications." alt="" coords="191,5,345,46"/><area shape="rect" id="node5" href="group__cache__mngr.html#ga544e06be5c3cf48fa761677e152f64f6" title="Check for event notifications." alt="" coords="401,41,549,68"/><area shape="rect" id="node7" href="group__cache__mngr.html#gac49581d90c6e7be9f3fa7fe009a88e80" title="Get socket file descriptor." alt="" coords="185,121,351,148"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gaa5eeee12e085b1731ba92edbd150ef2a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_set_nonblocking </td>
          <td>(</td>
          <td class="paramtype">const struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set file descriptor of socket to non-blocking state. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00479">479</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>Referenced by <a class="el" href="cache__mngr_8c_source.html#l00135">nl_cache_mngr_alloc()</a>.</p>

<p><div id="dynsection-6" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-6-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-6-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-6-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaa5eeee12e085b1731ba92edbd150ef2a_icgraph.png" border="0" usemap="#group__socket_gaa5eeee12e085b1731ba92edbd150ef2a_icgraph" alt=""/></div>
<map name="group__socket_gaa5eeee12e085b1731ba92edbd150ef2a_icgraph" id="group__socket_gaa5eeee12e085b1731ba92edbd150ef2a_icgraph">
<area shape="rect" id="node3" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="245,5,400,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gab7cd92edf688705e3e9930b6a343136e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_enable_msg_peek </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable use of MSG_PEEK when reading from socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00494">494</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga86bfb9a6614e3f5ffa230fab6dde9bc9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void nl_socket_disable_msg_peek </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Disable use of MSG_PEEK when reading from socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00503">503</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaeee66d6edef118209c7e7f1e3d393448"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_modify_cb </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#ga3f60f4515ada826d2bf16395ee722363">nl_cb_type</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__cb.html#ga1bf04ce17ab1b5867017556a6b4ba729">nl_recvmsg_msg_cb_t</a>&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modify the callback handler associated with the socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">type</td><td>which type callback to set </td></tr>
    <tr><td class="paramname">kind</td><td>kind of callback </td></tr>
    <tr><td class="paramname">func</td><td>callback function </td></tr>
    <tr><td class="paramname">arg</td><td>argument to be passed to callback function</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback.">nl_cb_set</a> </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00536">536</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00280">nl_cb_set()</a>.</p>

<p><div id="dynsection-7" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-7-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-7-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-7-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaeee66d6edef118209c7e7f1e3d393448_cgraph.png" border="0" usemap="#group__socket_gaeee66d6edef118209c7e7f1e3d393448_cgraph" alt=""/></div>
<map name="group__socket_gaeee66d6edef118209c7e7f1e3d393448_cgraph" id="group__socket_gaeee66d6edef118209c7e7f1e3d393448_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gabe7b2516f28fbb8bb9c5b1ea2dfaf1d3" title="Set up a callback." alt="" coords="208,5,291,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga3738dcdeadd5113d01d31f21349fa751"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_modify_err_cb </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum <a class="el" href="group__cb.html#gaba3fabad0c62db483941101e1a18d14d">nl_cb_kind</a>&#160;</td>
          <td class="paramname"><em>kind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__cb.html#ga2eb817b53fffe9103030c692c73b94df">nl_recvmsg_err_cb_t</a>&#160;</td>
          <td class="paramname"><em>func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modify the error callback handler associated with the socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">kind</td><td>kind of callback </td></tr>
    <tr><td class="paramname">func</td><td>callback function </td></tr>
    <tr><td class="paramname">arg</td><td>argument to be passed to callback function</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also:</dt><dd><a class="el" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77" title="Set up an error callback.">nl_cb_err</a> </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00552">552</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>References <a class="el" href="handlers_8c_source.html#l00330">nl_cb_err()</a>.</p>

<p><div id="dynsection-8" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-8-trigger" src="closed.png" alt="+"/> Here is the call graph for this function:</div>
<div id="dynsection-8-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-8-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_ga3738dcdeadd5113d01d31f21349fa751_cgraph.png" border="0" usemap="#group__socket_ga3738dcdeadd5113d01d31f21349fa751_cgraph" alt=""/></div>
<map name="group__socket_ga3738dcdeadd5113d01d31f21349fa751_cgraph" id="group__socket_ga3738dcdeadd5113d01d31f21349fa751_cgraph">
<area shape="rect" id="node3" href="group__cb.html#gafeb5477254d93d0a8a8c991f3dbacd77" title="Set up an error callback." alt="" coords="232,5,312,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="gaec9b1f3b0fdbf4e6e0fb10a233b5df68"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_set_buffer_size </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rxbuf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>txbuf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set socket buffer size of netlink socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">rxbuf</td><td>New receive socket buffer size in bytes. </td></tr>
    <tr><td class="paramname">txbuf</td><td>New transmit socket buffer size in bytes.</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the socket buffer size of a netlink socket to the specified values <code>rxbuf</code> and <code>txbuf</code>. Providing a value of <code>0</code> assumes a good default value.</p>
<dl class="section note"><dt>Note:</dt><dd>It is not required to call this function prior to <a class="el" href="group__send__recv.html#ga86da21b5037e3b883f307661c3edd22f" title="Create file descriptor and bind socket.">nl_connect()</a>. </dd></dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on sucess or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00578">578</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

<p>Referenced by <a class="el" href="nl_8c_source.html#l00085">nl_connect()</a>.</p>

<p><div id="dynsection-9" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-9-trigger" src="closed.png" alt="+"/> Here is the caller graph for this function:</div>
<div id="dynsection-9-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-9-content" class="dyncontent" style="display:none;">
<div class="center"><img src="group__socket_gaec9b1f3b0fdbf4e6e0fb10a233b5df68_icgraph.png" border="0" usemap="#group__socket_gaec9b1f3b0fdbf4e6e0fb10a233b5df68_icgraph" alt=""/></div>
<map name="group__socket_gaec9b1f3b0fdbf4e6e0fb10a233b5df68_icgraph" id="group__socket_gaec9b1f3b0fdbf4e6e0fb10a233b5df68_icgraph">
<area shape="rect" id="node3" href="group__send__recv.html#ga86da21b5037e3b883f307661c3edd22f" title="Create file descriptor and bind socket." alt="" coords="240,56,331,83"/><area shape="rect" id="node5" href="group__cache__mngr.html#ga16ae3e1e0d67504f308af7d809f42202" title="Allocate new cache manager." alt="" coords="379,5,533,32"/><area shape="rect" id="node7" href="group__genl.html#gaae54215d20a96093702e06e70ca683ab" title="Connect a Generic Netlink socket." alt="" coords="403,56,509,83"/><area shape="rect" id="node9" href="group__nfnl.html#gaa6395b6add1d6df1362c64951378db55" title="Create and connect netfilter netlink socket." alt="" coords="405,107,507,133"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ga9f6206b0f28de26cb5c9081f97106179"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_set_msg_buf_size </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set default message buffer size of netlink socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">bufsize</td><td>Default message buffer size in bytes.</td></tr>
  </table>
  </dd>
</dl>
<p>Sets the default message buffer size to the specified length in bytes. The default message buffer size limits the maximum message size the socket will be able to receive. It is generally recommneded to specify a buffer size no less than the size of a memory page.</p>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00618">618</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga2361aa95d1488bc13ca191207f7061fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t nl_socket_get_msg_buf_size </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get default message buffer size of netlink socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>Size of default message buffer. </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00631">631</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga6a5fcd2cbf0750b9cfdf46f601c375fc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_set_passcred </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable/disable credential passing on netlink socket. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">state</td><td>New state (0 - disabled, 1 - enabled)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00643">643</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga2facfac41d18210d3660f496d88023a2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nl_socket_recv_pktinfo </td>
          <td>(</td>
          <td class="paramtype">struct nl_sock *&#160;</td>
          <td class="paramname"><em>sk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>state</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enable/disable receival of additional packet information. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">sk</td><td>Netlink socket. </td></tr>
    <tr><td class="paramname">state</td><td>New state (0 - disabled, 1 - enabled)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd>0 on success or a negative error code </dd></dl>

<p>Definition at line <a class="el" href="socket_8c_source.html#l00670">670</a> of file <a class="el" href="socket_8c_source.html">socket.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Thu Jan 24 2013 14:39:30 for libnl by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.1 </li>
  </ul>
</div>
</body>
</html>