Current File : //usr/share/doc/dbus/api/group__DBusServerSocket.html
<!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>D-Bus: DBusServer implementations for SOCKET</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />



</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">D-Bus
   &#160;<span id="projectnumber">1.8.20</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.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>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">DBusServer implementations for SOCKET</div>  </div>
<div class="ingroups"><a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a></div></div><!--header-->
<div class="contents">

<p>Implementation details of <a class="el" href="structDBusServer.html" title="Internals of DBusServer object.">DBusServer</a> on SOCKET.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusServerSocket.html">DBusServerSocket</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Implementation details of <a class="el" href="structDBusServerSocket.html" title="Implementation details of DBusServerSocket.">DBusServerSocket</a>.  <a href="structDBusServerSocket.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gace7aafbe2ae3cdbfbce3b01972dde0ce"></a><!-- doxytag: member="DBusServerSocket::DBusServerSocket" ref="gace7aafbe2ae3cdbfbce3b01972dde0ce" args="" -->
typedef struct <a class="el" href="structDBusServerSocket.html">DBusServerSocket</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusServerSocket.html#gace7aafbe2ae3cdbfbce3b01972dde0ce">DBusServerSocket</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque object representing a Socket server implementation. <br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusServer.html">DBusServer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusServerSocket.html#ga93d00891e32dbc05a33d3c69ca2ffef6">_dbus_server_new_for_socket</a> (int *fds, int n_fds, const <a class="el" href="structDBusString.html">DBusString</a> *address, <a class="el" href="structDBusNonceFile.html">DBusNonceFile</a> *noncefile)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new server listening on the given file descriptor.  <a href="#ga93d00891e32dbc05a33d3c69ca2ffef6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusServer.html">DBusServer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusServerSocket.html#ga047d05c427e9a1fc5823fdfdcec5c5f6">_dbus_server_new_for_tcp_socket</a> (const char *host, const char *bind, const char *port, const char *family, <a class="el" href="structDBusError.html">DBusError</a> *error, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> use_nonce)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new server listening on TCP.  <a href="#ga047d05c427e9a1fc5823fdfdcec5c5f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBusServerListenResult&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusServerSocket.html#ga90a89943c15760592e5ddce31bf0e021">_dbus_server_listen_socket</a> (<a class="el" href="structDBusAddressEntry.html">DBusAddressEntry</a> *entry, <a class="el" href="structDBusServer.html">DBusServer</a> **server_p, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Tries to interpret the address entry for various socket-related addresses (well, currently only tcp and nonce-tcp).  <a href="#ga90a89943c15760592e5ddce31bf0e021"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusServerSocket.html#gaa9518c980672f1b8dba8f5a981b93fd9">_dbus_server_socket_own_filename</a> (<a class="el" href="structDBusServer.html">DBusServer</a> *server, char *filename)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This is a bad hack since it's really unix domain socket specific.  <a href="#gaa9518c980672f1b8dba8f5a981b93fd9"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Implementation details of <a class="el" href="structDBusServer.html" title="Internals of DBusServer object.">DBusServer</a> on SOCKET. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga90a89943c15760592e5ddce31bf0e021"></a><!-- doxytag: member="dbus&#45;server&#45;socket.c::_dbus_server_listen_socket" ref="ga90a89943c15760592e5ddce31bf0e021" args="(DBusAddressEntry *entry, DBusServer **server_p, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBusServerListenResult <a class="el" href="group__DBusServerSocket.html#ga90a89943c15760592e5ddce31bf0e021">_dbus_server_listen_socket</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAddressEntry.html">DBusAddressEntry</a> *&#160;</td>
          <td class="paramname"><em>entry</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusServer.html">DBusServer</a> **&#160;</td>
          <td class="paramname"><em>server_p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Tries to interpret the address entry for various socket-related addresses (well, currently only tcp and nonce-tcp). </p>
<p>Sets error if the result is not OK.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">entry</td><td>an address entry </td></tr>
    <tr><td class="paramname">server_p</td><td>a new <a class="el" href="structDBusServer.html" title="Internals of DBusServer object.">DBusServer</a>, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> on failure. </td></tr>
    <tr><td class="paramname">error</td><td>location to store rationale for failure on bad address </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the outcome </dd></dl>

<p>Definition at line <a class="el" href="dbus-server-socket_8c_source.html#l00526">526</a> of file <a class="el" href="dbus-server-socket_8c_source.html">dbus-server-socket.c</a>.</p>

<p>References <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-address_8c_source.html#l00227">dbus_address_entry_get_method()</a>, <a class="el" href="dbus-address_8c_source.html#l00244">dbus_address_entry_get_value()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga93d00891e32dbc05a33d3c69ca2ffef6"></a><!-- doxytag: member="dbus&#45;server&#45;socket.c::_dbus_server_new_for_socket" ref="ga93d00891e32dbc05a33d3c69ca2ffef6" args="(int *fds, int n_fds, const DBusString *address, DBusNonceFile *noncefile)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusServer.html">DBusServer</a>* <a class="el" href="group__DBusServerSocket.html#ga93d00891e32dbc05a33d3c69ca2ffef6">_dbus_server_new_for_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>fds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_fds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusNonceFile.html">DBusNonceFile</a> *&#160;</td>
          <td class="paramname"><em>noncefile</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new server listening on the given file descriptor. </p>
<p>The file descriptor should be nonblocking (use _dbus_set_fd_nonblocking() to make it so). The file descriptor should be listening for connections, that is, listen() should have been successfully invoked on it. The server will use accept() to accept new client connections.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fds</td><td>list of file descriptors. </td></tr>
    <tr><td class="paramname">n_fds</td><td>number of file descriptors </td></tr>
    <tr><td class="paramname">address</td><td>the server's address </td></tr>
    <tr><td class="paramname">noncefile</td><td>to be used for authentication (NULL if not needed) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the new server, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if no memory. </dd></dl>

<p>Definition at line <a class="el" href="dbus-server-socket_8c_source.html#l00280">280</a> of file <a class="el" href="dbus-server-socket_8c_source.html">dbus-server-socket.c</a>.</p>

<p>References <a class="el" href="dbus-server_8c_source.html#l00288">_dbus_server_add_watch()</a>, <a class="el" href="dbus-server_8c_source.html#l00193">_dbus_server_finalize_base()</a>, <a class="el" href="dbus-server_8c_source.html#l00111">_dbus_server_init_base()</a>, <a class="el" href="dbus-server_8c_source.html#l00304">_dbus_server_remove_watch()</a>, <a class="el" href="dbus-watch_8c_source.html#l00088">_dbus_watch_new()</a>, <a class="el" href="dbus-watch_8c_source.html#l00138">_dbus_watch_unref()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00052">base</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-memory_8h_source.html#l00058">dbus_new</a>, <a class="el" href="dbus-memory_8h_source.html#l00059">dbus_new0</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00054">fds</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00053">n_fds</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00057">noncefile</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-server-socket_8c_source.html#l00055">watch</a>.</p>

<p>Referenced by <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>, and <a class="el" href="dbus-server-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="ga047d05c427e9a1fc5823fdfdcec5c5f6"></a><!-- doxytag: member="dbus&#45;server&#45;socket.c::_dbus_server_new_for_tcp_socket" ref="ga047d05c427e9a1fc5823fdfdcec5c5f6" args="(const char *host, const char *bind, const char *port, const char *family, DBusError *error, dbus_bool_t use_nonce)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusServer.html">DBusServer</a>* <a class="el" href="group__DBusServerSocket.html#ga047d05c427e9a1fc5823fdfdcec5c5f6">_dbus_server_new_for_tcp_socket</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>bind</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>family</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> *&#160;</td>
          <td class="paramname"><em>error</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td>
          <td class="paramname"><em>use_nonce</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a new server listening on TCP. </p>
<p>If host is NULL, it will default to localhost. If bind is NULL, it will default to the value for the host parameter, and if that is NULL, then localhost If bind is a hostname, it will be resolved and will listen on all returned addresses. If family is NULL, hostname resolution will try all address families, otherwise it can be ipv4 or ipv6 to restrict the addresses considered.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>the hostname to report for the listen address </td></tr>
    <tr><td class="paramname">bind</td><td>the hostname to listen on </td></tr>
    <tr><td class="paramname">port</td><td>the port to listen on or 0 to let the OS choose </td></tr>
    <tr><td class="paramname">family</td><td></td></tr>
    <tr><td class="paramname">error</td><td>location to store reason for failure. </td></tr>
    <tr><td class="paramname">use_nonce</td><td>whether to use a nonce for low-level authentication (nonce-tcp transport) or not (tcp transport) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the new server, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> on failure. </dd></dl>

<p>Definition at line <a class="el" href="dbus-server-socket_8c_source.html#l00388">388</a> of file <a class="el" href="dbus-server-socket_8c_source.html">dbus-server-socket.c</a>.</p>

<p>References <a class="el" href="dbus-address_8c_source.html#l00104">_dbus_address_append_escaped()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00202">_dbus_close_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-server-socket_8c_source.html#l00280">_dbus_server_new_for_socket()</a>, <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00352">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-memory_8h_source.html#l00059">dbus_new0</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-server-win_8c_source.html#l00050">_dbus_server_listen_platform_specific()</a>, and <a class="el" href="dbus-server-socket_8c_source.html#l00526">_dbus_server_listen_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa9518c980672f1b8dba8f5a981b93fd9"></a><!-- doxytag: member="dbus&#45;server&#45;socket.c::_dbus_server_socket_own_filename" ref="gaa9518c980672f1b8dba8f5a981b93fd9" args="(DBusServer *server, char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusServerSocket.html#gaa9518c980672f1b8dba8f5a981b93fd9">_dbus_server_socket_own_filename</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusServer.html">DBusServer</a> *&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>filename</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This is a bad hack since it's really unix domain socket specific. </p>
<p>Also, the function weirdly adopts ownership of the passed-in string.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">server</td><td>a socket server </td></tr>
    <tr><td class="paramname">filename</td><td>socket filename to report/delete </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-server-socket_8c_source.html#l00579">579</a> of file <a class="el" href="dbus-server-socket_8c_source.html">dbus-server-socket.c</a>.</p>

<p>References <a class="el" href="dbus-server-socket_8c_source.html#l00056">socket_name</a>.</p>

<p>Referenced by <a class="el" href="dbus-server-unix_8c_source.html#l00237">_dbus_server_new_for_domain_socket()</a>.</p>

</div>
</div>
</div><!-- contents -->


<hr class="footer"/><address class="footer"><small>
Generated on Thu Mar 3 2016 17:50:33 for D-Bus by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>