Current File : //usr/share/doc/dbus/api/group__DBusSysdeps.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: Internal system-dependent API</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="#define-members">Defines</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Internal system-dependent API</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>Internal system-dependent API available on UNIX and Windows.  
<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="structDBusAtomic.html">DBusAtomic</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An atomic integer safe to increment or decrement from multiple threads.  <a href="structDBusAtomic.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusPollFD.html">DBusPollFD</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A portable struct pollfd wrapper.  <a href="structDBusPollFD.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusStat.html">DBusStat</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Portable struct with stat() results.  <a href="structDBusStat.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4eb5f05dd6ad89caa4b0340e1cf0b8d9"></a><!-- doxytag: member="DBusSysdeps::DBUS_PID_UNSET" ref="ga4eb5f05dd6ad89caa4b0340e1cf0b8d9" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga4eb5f05dd6ad89caa4b0340e1cf0b8d9">DBUS_PID_UNSET</a>&#160;&#160;&#160;((<a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a>) -1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an invalid PID used to represent an uninitialized dbus_pid_t field <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3d2f3fb32bb759cabe362ca2de383f7d"></a><!-- doxytag: member="DBusSysdeps::DBUS_UID_UNSET" ref="ga3d2f3fb32bb759cabe362ca2de383f7d" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3d2f3fb32bb759cabe362ca2de383f7d">DBUS_UID_UNSET</a>&#160;&#160;&#160;((<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>) -1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an invalid UID used to represent an uninitialized dbus_uid_t field <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga768a080926a119a6131083facc0bd42b"></a><!-- doxytag: member="DBusSysdeps::DBUS_GID_UNSET" ref="ga768a080926a119a6131083facc0bd42b" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga768a080926a119a6131083facc0bd42b">DBUS_GID_UNSET</a>&#160;&#160;&#160;((<a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a>) -1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an invalid GID used to represent an uninitialized dbus_gid_t field <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf4553a43e3b8c0e43d9148a00dcc3fa4"></a><!-- doxytag: member="DBusSysdeps::DBUS_PID_FORMAT" ref="gaf4553a43e3b8c0e43d9148a00dcc3fa4" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaf4553a43e3b8c0e43d9148a00dcc3fa4">DBUS_PID_FORMAT</a>&#160;&#160;&#160;&quot;%lu&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an appropriate printf format for dbus_pid_t <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab657f0434f01b463891942f373f7b4a1"></a><!-- doxytag: member="DBusSysdeps::DBUS_UID_FORMAT" ref="gab657f0434f01b463891942f373f7b4a1" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gab657f0434f01b463891942f373f7b4a1">DBUS_UID_FORMAT</a>&#160;&#160;&#160;&quot;%lu&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an appropriate printf format for dbus_uid_t <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaab5918b2ae57886d9783df09bd61c7e"></a><!-- doxytag: member="DBusSysdeps::DBUS_GID_FORMAT" ref="gaaab5918b2ae57886d9783df09bd61c7e" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaaab5918b2ae57886d9783df09bd61c7e">DBUS_GID_FORMAT</a>&#160;&#160;&#160;&quot;%lu&quot;</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">an appropriate printf format for dbus_gid_t <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96b5ba58b9939d789bfece0d9bb82f41"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLIN" ref="ga96b5ba58b9939d789bfece0d9bb82f41" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga96b5ba58b9939d789bfece0d9bb82f41">_DBUS_POLLIN</a>&#160;&#160;&#160;0x0001</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">There is data to read. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1db7d09a41912c10978c6a4955d9a9d2"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLPRI" ref="ga1db7d09a41912c10978c6a4955d9a9d2" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga1db7d09a41912c10978c6a4955d9a9d2">_DBUS_POLLPRI</a>&#160;&#160;&#160;0x0002</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">There is urgent data to read. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cb1ace07be145e0b908687e99b5f161"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLOUT" ref="ga0cb1ace07be145e0b908687e99b5f161" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga0cb1ace07be145e0b908687e99b5f161">_DBUS_POLLOUT</a>&#160;&#160;&#160;0x0004</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writing now will not block. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga231164196ff407eccb732452a2d36468"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLERR" ref="ga231164196ff407eccb732452a2d36468" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga231164196ff407eccb732452a2d36468">_DBUS_POLLERR</a>&#160;&#160;&#160;0x0008</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Error condition. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6f08232c1f943313e3eefd7de8f3592f"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLHUP" ref="ga6f08232c1f943313e3eefd7de8f3592f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6f08232c1f943313e3eefd7de8f3592f">_DBUS_POLLHUP</a>&#160;&#160;&#160;0x0010</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Hung up. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga83bf3d24f3a1a853dda794835c39fc6f"></a><!-- doxytag: member="DBusSysdeps::_DBUS_POLLNVAL" ref="ga83bf3d24f3a1a853dda794835c39fc6f" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga83bf3d24f3a1a853dda794835c39fc6f">_DBUS_POLLNVAL</a>&#160;&#160;&#160;0x0020</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid request: fd not open. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga19d519dc45ab7d8e7beb6d6b8c1624b4"></a><!-- doxytag: member="DBusSysdeps::DBUS_VA_COPY" ref="ga19d519dc45ab7d8e7beb6d6b8c1624b4" args="(ap1, ap2)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DBUS_VA_COPY</b>(ap1, ap2)&#160;&#160;&#160;((ap1) = (ap2))</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga50e1eddfbce31548ca2c50ca7b9ebf35"></a><!-- doxytag: member="DBusSysdeps::_DBUS_BYTE_OF_PRIMITIVE" ref="ga50e1eddfbce31548ca2c50ca7b9ebf35" args="(p, i)" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35">_DBUS_BYTE_OF_PRIMITIVE</a>(p, i)&#160;&#160;&#160;(((const char*)&amp;(p))[(i)])</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Casts a primitive C type to a byte array and then indexes a particular byte of the array. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gac8269b795461ee42004b65734ce89e0b">_DBUS_DOUBLES_BITWISE_EQUAL</a>(a, b)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">On x86 there is an 80-bit FPU, and if you do "a == b" it may have a or b in an 80-bit register, thus failing to compare the two 64-bit doubles for bitwise equality.  <a href="#gac8269b795461ee42004b65734ce89e0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad11b2d894fce7ae647a9cb2d9ba70f81"></a><!-- doxytag: member="DBusSysdeps::DBUS_DEFAULT_MESSAGE_UNIX_FDS" ref="gad11b2d894fce7ae647a9cb2d9ba70f81" args="" -->
#define&#160;</td><td class="memItemRight" valign="bottom"><b>DBUS_DEFAULT_MESSAGE_UNIX_FDS</b>&#160;&#160;&#160;16</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="ga1eff6303266888ec466cddba6c03aa40"></a><!-- doxytag: member="DBusSysdeps::dbus_pid_t" ref="ga1eff6303266888ec466cddba6c03aa40" args="" -->
typedef unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A process ID. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga186e987b700f9ddc6cea8aa0db82b151"></a><!-- doxytag: member="DBusSysdeps::dbus_uid_t" ref="ga186e987b700f9ddc6cea8aa0db82b151" args="" -->
typedef unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A user ID. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2f5c2e418b81ec2a86594f56ec6d7627"></a><!-- doxytag: member="DBusSysdeps::dbus_gid_t" ref="ga2f5c2e418b81ec2a86594f56ec6d7627" args="" -->
typedef unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A group ID. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga208bb797a458b9cc721b317d9c95d233"></a><!-- doxytag: member="DBusSysdeps::DBusAtomic" ref="ga208bb797a458b9cc721b317d9c95d233" args="" -->
typedef struct <a class="el" href="structDBusAtomic.html">DBusAtomic</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga208bb797a458b9cc721b317d9c95d233">DBusAtomic</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque type representing an atomically-modifiable integer that can be used from multiple threads. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga54409fb809f59d2b497592c49df04c52"></a><!-- doxytag: member="DBusSysdeps::DBusDirIter" ref="ga54409fb809f59d2b497592c49df04c52" args="" -->
typedef struct <a class="el" href="structDBusDirIter.html">DBusDirIter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga54409fb809f59d2b497592c49df04c52">DBusDirIter</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque type for reading a directory listing. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c69cb20ec385aa86a213c898149f8ea"></a><!-- doxytag: member="DBusSysdeps::DBusSignalHandler" ref="ga5c69cb20ec385aa86a213c898149f8ea" args=")(int sig)" -->
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga5c69cb20ec385aa86a213c898149f8ea">DBusSignalHandler</a> )(int sig)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A UNIX signal handler. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef union <a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Type representing a universally unique ID.  <a href="#ga24015a2f75b94c1307360755ce97f869"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga064d89fe6400aac228895eea96117769"></a><!-- doxytag: member="DBusSysdeps::DBusRLimit" ref="ga064d89fe6400aac228895eea96117769" args="" -->
typedef struct DBusRLimit&#160;</td><td class="memItemRight" valign="bottom"><b>DBusRLimit</b></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>DBusSystemLogSeverity</b> { <b>DBUS_SYSTEM_LOG_INFO</b>, 
<b>DBUS_SYSTEM_LOG_SECURITY</b>, 
<b>DBUS_SYSTEM_LOG_FATAL</b>
 }</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="anchor" id="ga83c51771d3c4e612522bd5ad72e6ad7a"></a><!-- doxytag: member="DBusSysdeps::_dbus_abort" ref="ga83c51771d3c4e612522bd5ad72e6ad7a" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga83c51771d3c4e612522bd5ad72e6ad7a">_dbus_abort</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Aborts the program with SIGABRT (dumping core). <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gab846071a4de54cb7e518654f9375313a">_dbus_getenv</a> (const char *varname)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for getenv().  <a href="#gab846071a4de54cb7e518654f9375313a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga38d9b871ec4fb30371d1187d8c9d3ef9">_dbus_clearenv</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for clearenv().  <a href="#ga38d9b871ec4fb30371d1187d8c9d3ef9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga9393ded03e3b9812e4ba99b437ea992d">_dbus_split_paths_and_append</a> (<a class="el" href="structDBusString.html">DBusString</a> *dirs, const char *suffix, <a class="el" href="structDBusList.html">DBusList</a> **dir_list)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Split paths into a list of char strings.  <a href="#ga9393ded03e3b9812e4ba99b437ea992d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaae48868ce818ad287cdae113aabcc858">_dbus_get_environment</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>-terminated list of key=value pairs from the environment.  <a href="#gaae48868ce818ad287cdae113aabcc858"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga701f9b3087c196404f66ff95b4ace0b8">_dbus_close_socket</a> (int fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Socket interface.  <a href="#ga701f9b3087c196404f66ff95b4ace0b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530">_dbus_read_socket</a> (int fd, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int count)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#gaf52cb1d5b9fc5611808ce32eff898c28" title="Thin wrapper around the read() system call that appends the data it reads to the DBusString buffer...">_dbus_read()</a>, but only works on sockets so is available on Windows.  <a href="#ga6fe72fa1c0484ac5594b08145ea19530"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga346cadd9b0f7d0ae1cd19007b2e4c2de">_dbus_write_socket</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#ga3a789bcdfd3d468c2bf917fa5081b27f" title="Thin wrapper around the write() system call that writes a part of a DBusString and handles EINTR for ...">_dbus_write()</a>, but only supports sockets and is thus available on Windows.  <a href="#ga346cadd9b0f7d0ae1cd19007b2e4c2de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga02da720105c2a2397b7c687c5ca81174">_dbus_write_socket_two</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer1, int start1, int len1, const <a class="el" href="structDBusString.html">DBusString</a> *buffer2, int start2, int len2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#ga506a183b1f6970d1bfca165ab3de4736" title="Like _dbus_write() but will use writev() if possible to write both buffers in sequence.">_dbus_write_two()</a> but only works on sockets and is thus available on Windows.  <a href="#ga02da720105c2a2397b7c687c5ca81174"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga14aa692ac7e9aab777b9f565c4b8933b">_dbus_read_socket_with_unix_fds</a> (int fd, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int count, int *fds, int *n_fds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530" title="Like _dbus_read(), but only works on sockets so is available on Windows.">_dbus_read_socket()</a> but also tries to read unix fds from the socket.  <a href="#ga14aa692ac7e9aab777b9f565c4b8933b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabcdf774b69a022d5d6771cd127a41bcf"></a><!-- doxytag: member="DBusSysdeps::_dbus_write_socket_with_unix_fds" ref="gabcdf774b69a022d5d6771cd127a41bcf" args="(int fd, const DBusString *buffer, int start, int len, const int *fds, int n_fds)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_write_socket_with_unix_fds</b> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len, const int *fds, int n_fds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaadbce91e0ff63d2a7895bae1639fba81"></a><!-- doxytag: member="DBusSysdeps::_dbus_write_socket_with_unix_fds_two" ref="gaadbce91e0ff63d2a7895bae1639fba81" args="(int fd, const DBusString *buffer1, int start1, int len1, const DBusString *buffer2, int start2, int len2, const int *fds, int n_fds)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_write_socket_with_unix_fds_two</b> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer1, int start1, int len1, const <a class="el" href="structDBusString.html">DBusString</a> *buffer2, int start2, int len2, const int *fds, int n_fds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabc28993ee2ec72dc86f3656a26f18430"></a><!-- doxytag: member="DBusSysdeps::_dbus_socket_is_invalid" ref="gabc28993ee2ec72dc86f3656a26f18430" args="(int fd)" -->
<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_socket_is_invalid</b> (int fd)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaa3adf90f6e47d30eeacf0a27d1a09ee5">_dbus_connect_tcp_socket</a> (const char *host, const char *port, const char *family, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a socket and connects to a socket at the given host and port.  <a href="#gaa3adf90f6e47d30eeacf0a27d1a09ee5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8eaa78f8111092e35aa482d908f5e4c1"></a><!-- doxytag: member="DBusSysdeps::_dbus_connect_tcp_socket_with_nonce" ref="ga8eaa78f8111092e35aa482d908f5e4c1" args="(const char *host, const char *port, const char *family, const char *noncefile, DBusError *error)" -->
int&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_connect_tcp_socket_with_nonce</b> (const char *host, const char *port, const char *family, const char *noncefile, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gafdae31b3b61299dbaaccfcb1205a6f30">_dbus_listen_tcp_socket</a> (const char *host, const char *port, const char *family, <a class="el" href="structDBusString.html">DBusString</a> *retport, int **fds_p, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a socket and binds it to the given path, then listens on the socket.  <a href="#gafdae31b3b61299dbaaccfcb1205a6f30"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga687f4393a365474ec16f02e40c418cce">_dbus_accept</a> (int listen_fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accepts a connection on a listening socket.  <a href="#ga687f4393a365474ec16f02e40c418cce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga9906c86bebb51358f0d8df6a42af30f6">_dbus_read_credentials_socket</a> (int client_fd, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available.  <a href="#ga9906c86bebb51358f0d8df6a42af30f6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6cc9916aa1dde4d44072ee85b5691b5b">_dbus_send_credentials_socket</a> (int server_fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a single nul byte with our UNIX credentials as ancillary data.  <a href="#ga6cc9916aa1dde4d44072ee85b5691b5b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gacecdbb00a3c8b63e821edae537ae3c7b">_dbus_credentials_add_from_user</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, const <a class="el" href="structDBusString.html">DBusString</a> *username)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the credentials corresponding to the given username.  <a href="#gacecdbb00a3c8b63e821edae537ae3c7b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga9d5493f8bd1c5577060c8c6dce44d09f">_dbus_credentials_add_from_current_process</a> (<a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the credentials of the current process to the passed-in credentials object.  <a href="#ga9d5493f8bd1c5577060c8c6dce44d09f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga095c54de3974c6d04c29ef86c6e06e35">_dbus_append_user_from_current_process</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append to the string the identity we would like to have when we authenticate, on UNIX this is the current process UID and on Windows something else, probably a Windows SID string.  <a href="#ga095c54de3974c6d04c29ef86c6e06e35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a UNIX user from the bus config file.  <a href="#ga437470fc327b0169fc14a0b66a6e5278"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid_p)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a UNIX group from the bus config file.  <a href="#ga96da816095ec7fec07136a6019745bcb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **group_ids, int *n_group_ids)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets all groups corresponding to the given UNIX user ID.  <a href="#ga79647ec21c7edccd1510808ea0ca3779"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaed2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the UNIX user ID is at the console.  <a href="#gaed2e025454364fbe31cd9b6538c9a936"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> (<a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the UNIX user ID matches the UID of the process.  <a href="#ga849177164bc5e73435104f57c631ed7e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> (const char *windows_sid)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to see if the Windows user SID matches the owner of the process.  <a href="#ga912d34a7e40b3a57864972e6d6ab65ba"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3cc5a5734416858fa58f3166ed181a64">_dbus_append_keyring_directory_for_credentials</a> (<a class="el" href="structDBusString.html">DBusString</a> *directory, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the directory in which a keyring for the given credentials should be stored.  <a href="#ga3cc5a5734416858fa58f3166ed181a64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa9d1f52c60fdbbfade50fe0136400890"></a><!-- doxytag: member="DBusSysdeps::_dbus_daemon_is_session_bus_address_published" ref="gaa9d1f52c60fdbbfade50fe0136400890" args="(const char *scope)" -->
<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_daemon_is_session_bus_address_published</b> (const char *scope)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa00b8cf76d8ede8ed0bd56440ca7285"></a><!-- doxytag: member="DBusSysdeps::_dbus_daemon_publish_session_bus_address" ref="gafa00b8cf76d8ede8ed0bd56440ca7285" args="(const char *address, const char *shm_name)" -->
<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_daemon_publish_session_bus_address</b> (const char *address, const char *shm_name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7e2e5b6f5c628c850bc566a4345ebd15"></a><!-- doxytag: member="DBusSysdeps::_dbus_daemon_unpublish_session_bus_address" ref="ga7e2e5b6f5c628c850bc566a4345ebd15" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_daemon_unpublish_session_bus_address</b> (void)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga06183453a52a6919619e85dc1812c9b7">_dbus_socket_can_pass_unix_fd</a> (int fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether file descriptors may be passed via the socket.  <a href="#ga06183453a52a6919619e85dc1812c9b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gae74c3fcf12acaeccdb152ef907de951c">_dbus_atomic_inc</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Atomically increments an integer.  <a href="#gae74c3fcf12acaeccdb152ef907de951c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3c50a069f795dceeb9172fe2b517bbdc">_dbus_atomic_dec</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Atomically decrement an integer.  <a href="#ga3c50a069f795dceeb9172fe2b517bbdc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga626c810359ba0e362367ce2ec6691aca">_dbus_atomic_get</a> (<a class="el" href="structDBusAtomic.html">DBusAtomic</a> *atomic)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Atomically get the value of an integer.  <a href="#ga626c810359ba0e362367ce2ec6691aca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gac1cdb5995dcef6dd54399ab610ae689a">_dbus_poll</a> (<a class="el" href="structDBusPollFD.html">DBusPollFD</a> *fds, int n_fds, int timeout_milliseconds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrapper for poll().  <a href="#gac1cdb5995dcef6dd54399ab610ae689a"></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__DBusSysdeps.html#ga1153b4669819148af6b3f6f2b7c9183a">_dbus_sleep_milliseconds</a> (int milliseconds)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleeps the given number of milliseconds.  <a href="#ga1153b4669819148af6b3f6f2b7c9183a"></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__DBusSysdeps.html#gab9951a7fd8c33188bf86314e7fd56300">_dbus_get_monotonic_time</a> (long *tv_sec, long *tv_usec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current time, as in gettimeofday().  <a href="#gab9951a7fd8c33188bf86314e7fd56300"></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__DBusSysdeps.html#gae10ee21ab353beadbe2493728065f600">_dbus_get_real_time</a> (long *tv_sec, long *tv_usec)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current time, as in gettimeofday().  <a href="#gae10ee21ab353beadbe2493728065f600"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaa47156dedbe573ee9b213d1fd3f7bb79">_dbus_create_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">directory interface  <a href="#gaa47156dedbe573ee9b213d1fd3f7bb79"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3bc1512aef42cea17a2aaacc7d8e7211">_dbus_delete_directory</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a directory; Directory must be empty.  <a href="#ga3bc1512aef42cea17a2aaacc7d8e7211"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gae3a3fdc0c6001e367584bb016aca495d">_dbus_concat_dir_and_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *dir, const <a class="el" href="structDBusString.html">DBusString</a> *next_component)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the given filename to the given directory.  <a href="#gae3a3fdc0c6001e367584bb016aca495d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gafa79c1113fa75419dcc5ee4290e06608">_dbus_string_get_dirname</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusString.html">DBusString</a> *dirname)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the directory name from a complete filename.  <a href="#gafa79c1113fa75419dcc5ee4290e06608"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6d80876bcae54f47cde79d0bce20321d">_dbus_path_is_absolute</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the filename is an absolute path.  <a href="#ga6d80876bcae54f47cde79d0bce20321d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga079d34a9d90759e6b3ebebab424c696e">_dbus_get_standard_session_servicedirs</a> (<a class="el" href="structDBusList.html">DBusList</a> **dirs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the standard directories for a session bus to look for service activation files.  <a href="#ga079d34a9d90759e6b3ebebab424c696e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga5193160c3dc144af34b250cfb5b0a61e">_dbus_get_standard_system_servicedirs</a> (<a class="el" href="structDBusList.html">DBusList</a> **dirs)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the standard directories for a system bus to look for service activation files.  <a href="#ga5193160c3dc144af34b250cfb5b0a61e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6a9478a21745b128750df87ac557c7d4">_dbus_append_system_config_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the absolute path of the system.conf file (there is no system bus on Windows so this can just return FALSE and print a warning or something)  <a href="#ga6a9478a21745b128750df87ac557c7d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gacc062b5f20f4a355ea78afccb0abd5f9">_dbus_append_session_config_file</a> (<a class="el" href="structDBusString.html">DBusString</a> *str)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the absolute path of the session.conf file.  <a href="#gacc062b5f20f4a355ea78afccb0abd5f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaaf6eb8179fb6ea2175ed9742a0c8be68">_dbus_directory_open</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Open a directory to iterate over.  <a href="#gaaf6eb8179fb6ea2175ed9742a0c8be68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gab9a2ddb130da035d6186f2d96bf37cb4">_dbus_directory_get_next_file</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter, <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get next file in the directory.  <a href="#gab9a2ddb130da035d6186f2d96bf37cb4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1821b64302fe8e12278fa227eb11d393"></a><!-- doxytag: member="DBusSysdeps::_dbus_directory_close" ref="ga1821b64302fe8e12278fa227eb11d393" args="(DBusDirIter *iter)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga1821b64302fe8e12278fa227eb11d393">_dbus_directory_close</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes a directory iteration. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga8e16f75e361d9fed43223f69baf0e2a5">_dbus_check_dir_is_private_to_user</a> (<a class="el" href="structDBusString.html">DBusString</a> *dir, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks to make sure the given directory is private to the user.  <a href="#ga8e16f75e361d9fed43223f69baf0e2a5"></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__DBusSysdeps.html#ga21ef96952f98f23e590ebbf060fd5ca6">_dbus_fd_set_close_on_exec</a> (intptr_t fd)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the file descriptor to be close on exec.  <a href="#ga21ef96952f98f23e590ebbf060fd5ca6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3ecdae905f2d9e95fd35891b20f06532">_dbus_get_tmpdir</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the temporary files directory by inspecting the environment variables TMPDIR, TMP, and TEMP in that order.  <a href="#ga3ecdae905f2d9e95fd35891b20f06532"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafb4454c18ee8e5bcc20dbccd93e1d9ba"></a><!-- doxytag: member="DBusSysdeps::_dbus_generate_pseudorandom_bytes_buffer" ref="gafb4454c18ee8e5bcc20dbccd93e1d9ba" args="(char *buffer, int n_bytes)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gafb4454c18ee8e5bcc20dbccd93e1d9ba">_dbus_generate_pseudorandom_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Random numbers. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaa32f87746e9264b2425736043d02fad4">_dbus_generate_random_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fills n_bytes of the given buffer with random bytes.  <a href="#gaa32f87746e9264b2425736043d02fad4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gac9fd08af5e54c0e9b3db108b48a65778">_dbus_generate_random_bytes</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the given number of random bytes, using the best mechanism we can come up with.  <a href="#gac9fd08af5e54c0e9b3db108b48a65778"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga709ce349c6ee05263850444fb4e0177d">_dbus_generate_random_ascii</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset.  <a href="#ga709ce349c6ee05263850444fb4e0177d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga2212aa0e5732257598a6597748c658e4">_dbus_error_from_errno</a> (int error_number)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a UNIX errno, or Windows errno or WinSock error value into a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> name.  <a href="#ga2212aa0e5732257598a6597748c658e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaf4f1db48d66dcb310b9771beb955578e">_dbus_error_from_system_errno</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts the current system errno value into a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> name.  <a href="#gaf4f1db48d66dcb310b9771beb955578e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf0f4cb7f145fe1f48f5302277560407a"></a><!-- doxytag: member="DBusSysdeps::_dbus_set_errno_to_zero" ref="gaf0f4cb7f145fe1f48f5302277560407a" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaf0f4cb7f145fe1f48f5302277560407a">_dbus_set_errno_to_zero</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign 0 to the global errno variable. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gab9ccdfee5c7986ff236a6cde66a9af2f">_dbus_get_is_errno_nonzero</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is set.  <a href="#gab9ccdfee5c7986ff236a6cde66a9af2f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaa03e5d4d95ef46a70d25fe315e674e24">_dbus_get_is_errno_eagain_or_ewouldblock</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is EAGAIN or EWOULDBLOCK (this has to be done differently for Winsock so is abstracted)  <a href="#gaa03e5d4d95ef46a70d25fe315e674e24"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaec2ce24907adaedd1bf88bb28d82c96d">_dbus_get_is_errno_enomem</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is ENOMEM.  <a href="#gaec2ce24907adaedd1bf88bb28d82c96d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga08e67a10b197995c101c89f248c24105">_dbus_get_is_errno_eintr</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is EINTR.  <a href="#ga08e67a10b197995c101c89f248c24105"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga1001bb8d98eaee545a4e9b3994d13440">_dbus_get_is_errno_epipe</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is EPIPE.  <a href="#ga1001bb8d98eaee545a4e9b3994d13440"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga69062313641c53627f5afb7be96e4ea4">_dbus_get_is_errno_etoomanyrefs</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See if errno is ETOOMANYREFS.  <a href="#ga69062313641c53627f5afb7be96e4ea4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga56de84795d6df4162ad79b3be7af7588">_dbus_strerror_from_errno</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get error message from errno.  <a href="#ga56de84795d6df4162ad79b3be7af7588"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6890d4cde3afec0bf274ca2af8c9e204"></a><!-- doxytag: member="DBusSysdeps::_dbus_disable_sigpipe" ref="ga6890d4cde3afec0bf274ca2af8c9e204" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga6890d4cde3afec0bf274ca2af8c9e204">_dbus_disable_sigpipe</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">signal (SIGPIPE, SIG_IGN); <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga203e3257b50597a8fe7757c920474a20">_dbus_exit</a> (int code) _DBUS_GNUC_NORETURN</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Exit the process, returning the given value.  <a href="#ga203e3257b50597a8fe7757c920474a20"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaffaf8b5bb832c20a8ccb10f012920776">_dbus_printf_string_upper_bound</a> (const char *format, va_list args)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Measure the length of the given format string and arguments, not including the terminating nul.  <a href="#gaffaf8b5bb832c20a8ccb10f012920776"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga04e98ad0e3a181f0a5921a4cbc49cf08">_dbus_stat</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="structDBusStat.html">DBusStat</a> *statbuf, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">stat() wrapper.  <a href="#ga04e98ad0e3a181f0a5921a4cbc49cf08"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gae96a3f400324b065f78a865a86454d09">_dbus_full_duplex_pipe</a> (int *fd1, int *fd2, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> blocking, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a full-duplex pipe (as in socketpair()).  <a href="#gae96a3f400324b065f78a865a86454d09"></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__DBusSysdeps.html#ga8646ab2ef727fcc862c7904113c88a8d">_dbus_print_backtrace</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">On GNU libc systems, print a crude backtrace to stderr.  <a href="#ga8646ab2ef727fcc862c7904113c88a8d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gaca61af8681a48862835ea8cfd263f5ab">_dbus_become_daemon</a> (const <a class="el" href="structDBusString.html">DBusString</a> *pidfile, <a class="el" href="structDBusPipe.html">DBusPipe</a> *print_pid_pipe, <a class="el" href="structDBusError.html">DBusError</a> *error, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> keep_umask)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Does the chdir, fork, setsid, etc.  <a href="#gaca61af8681a48862835ea8cfd263f5ab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga45f661c5a089ed45233a1acabaf31964">_dbus_verify_daemon_user</a> (const char *user)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Verify that after the fork we can successfully change to this user.  <a href="#ga45f661c5a089ed45233a1acabaf31964"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga82c920a8c3b5958ba1ecf8e5f5d6373b">_dbus_change_to_daemon_user</a> (const char *user, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the user and group the bus is running as.  <a href="#ga82c920a8c3b5958ba1ecf8e5f5d6373b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga123620ec5ce2b881786588121d6a03fd">_dbus_write_pid_to_file_and_pipe</a> (const <a class="el" href="structDBusString.html">DBusString</a> *pidfile, <a class="el" href="structDBusPipe.html">DBusPipe</a> *print_pid_pipe, <a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a> pid_to_write, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given pid_to_write to a pidfile (if non-NULL) and/or to a pipe (if non-NULL).  <a href="#ga123620ec5ce2b881786588121d6a03fd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3551d425aba3d92e652b8809fdfe9339">_dbus_command_for_pid</a> (unsigned long pid, <a class="el" href="structDBusString.html">DBusString</a> *str, int max_len, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a printable string describing the command used to execute the process with pid.  <a href="#ga3551d425aba3d92e652b8809fdfe9339"></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__DBusSysdeps.html#ga4aa7500366dad2dd6d3fa97b3aa7165b">_dbus_set_signal_handler</a> (int sig, <a class="el" href="group__DBusSysdeps.html#ga5c69cb20ec385aa86a213c898149f8ea">DBusSignalHandler</a> handler)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a UNIX signal handler.  <a href="#ga4aa7500366dad2dd6d3fa97b3aa7165b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga31ec42cef2d15ca358e737bb5f19c5cf">_dbus_user_at_console</a> (const char *username, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if user is at the console.  <a href="#ga31ec42cef2d15ca358e737bb5f19c5cf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2459d60bd0dac4119a118191b091b967"></a><!-- doxytag: member="DBusSysdeps::_dbus_init_system_log" ref="ga2459d60bd0dac4119a118191b091b967" args="(dbus_bool_t is_daemon)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_init_system_log</b> (<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> is_daemon)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga73a19aaac889c47ba5f6caa5107a47a5">_dbus_system_log</a> (DBusSystemLogSeverity severity, const char *msg,...)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message to the system log file (e.g.  <a href="#ga73a19aaac889c47ba5f6caa5107a47a5"></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__DBusSysdeps.html#ga82cb5dfe162480ad15faddcf74ea0617">_dbus_system_logv</a> (DBusSystemLogSeverity severity, const char *msg, va_list args)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Log a message to the system log file (e.g.  <a href="#ga82cb5dfe162480ad15faddcf74ea0617"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gabc4712c0db91f11854cdd933027355af">_dbus_get_autolaunch_address</a> (const char *scope, <a class="el" href="structDBusString.html">DBusString</a> *address, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of a new session bus.  <a href="#gabc4712c0db91f11854cdd933027355af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gade479f90c1083346d74bc21af178d856">_dbus_lookup_session_address</a> (<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> *supported, <a class="el" href="structDBusString.html">DBusString</a> *address, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Determines the address of the session bus by querying a platform-specific method.  <a href="#gade479f90c1083346d74bc21af178d856"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga3f073afc8ef8397471531baf513e1bb5">_dbus_read_local_machine_uuid</a> (<a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a> *machine_id, <a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> create_if_not_found, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the uuid of the machine we're running on from the dbus configuration.  <a href="#ga3f073afc8ef8397471531baf513e1bb5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#gae7be34dbffb6458578e86c59a26d4fad">_dbus_threads_init_platform_specific</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize threads as in <a class="el" href="group__DBusThreads.html#ga33b6cf3b8f1e41bad5508f84758818a7" title="Initializes threads.">dbus_threads_init_default()</a>, appropriately for the platform.  <a href="#gae7be34dbffb6458578e86c59a26d4fad"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga65d32daf6d876dd39b7410f3fa35b591"></a><!-- doxytag: member="DBusSysdeps::_dbus_threads_lock_platform_specific" ref="ga65d32daf6d876dd39b7410f3fa35b591" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga65d32daf6d876dd39b7410f3fa35b591">_dbus_threads_lock_platform_specific</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Lock a static mutex used to protect <a class="el" href="group__DBusSysdeps.html#gae7be34dbffb6458578e86c59a26d4fad" title="Initialize threads as in dbus_threads_init_default(), appropriately for the platform.">_dbus_threads_init_platform_specific()</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga99c22b80d17ef18fa0a11f3a2a415403"></a><!-- doxytag: member="DBusSysdeps::_dbus_threads_unlock_platform_specific" ref="ga99c22b80d17ef18fa0a11f3a2a415403" args="(void)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga99c22b80d17ef18fa0a11f3a2a415403">_dbus_threads_unlock_platform_specific</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Undo <a class="el" href="group__DBusSysdeps.html#ga65d32daf6d876dd39b7410f3fa35b591" title="Lock a static mutex used to protect _dbus_threads_init_platform_specific().">_dbus_threads_lock_platform_specific()</a>. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga1b30aa55e8758ed6e1b62e0f86866543">_dbus_pid_for_log</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The only reason this is separate from <a class="el" href="group__DBusSysdeps.html#ga870807b07f3b1c1a725eb9408edad147" title="Gets our process ID.">_dbus_getpid()</a> is to allow it on Windows for logging but not for other purposes.  <a href="#ga1b30aa55e8758ed6e1b62e0f86866543"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdeps.html#ga870807b07f3b1c1a725eb9408edad147">_dbus_getpid</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets our process ID.  <a href="#ga870807b07f3b1c1a725eb9408edad147"></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__DBusSysdeps.html#ga184b42c4b42b91ef73e9ee50a1fa12c2">_dbus_flush_caches</a> (void)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when the bus daemon is signaled to reload its configuration; any caches should be nuked.  <a href="#ga184b42c4b42b91ef73e9ee50a1fa12c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga36cf9544881e68c162e9d9ba6697e6ab"></a><!-- doxytag: member="DBusSysdeps::_dbus_replace_install_prefix" ref="ga36cf9544881e68c162e9d9ba6697e6ab" args="(const char *configure_time_path)" -->
const char *&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_replace_install_prefix</b> (const char *configure_time_path)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7c32ae74e6ebbb28ab28853237be034e"></a><!-- doxytag: member="DBusSysdeps::_dbus_rlimit_save_fd_limit" ref="ga7c32ae74e6ebbb28ab28853237be034e" args="(DBusError *error)" -->
DBusRLimit *&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_rlimit_save_fd_limit</b> (<a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga72b9aeaedfccd2143bdd889b6e98d0cb"></a><!-- doxytag: member="DBusSysdeps::_dbus_rlimit_raise_fd_limit_if_privileged" ref="ga72b9aeaedfccd2143bdd889b6e98d0cb" args="(unsigned int desired, DBusError *error)" -->
<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_rlimit_raise_fd_limit_if_privileged</b> (unsigned int desired, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab87dbd966b0051b7ff916e06e43fcf2e"></a><!-- doxytag: member="DBusSysdeps::_dbus_rlimit_restore_fd_limit" ref="gab87dbd966b0051b7ff916e06e43fcf2e" args="(DBusRLimit *saved, DBusError *error)" -->
<a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_rlimit_restore_fd_limit</b> (DBusRLimit *saved, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga53db90ef9ed40073f1b0821d1589a024"></a><!-- doxytag: member="DBusSysdeps::_dbus_rlimit_free" ref="ga53db90ef9ed40073f1b0821d1589a024" args="(DBusRLimit *lim)" -->
void&#160;</td><td class="memItemRight" valign="bottom"><b>_dbus_rlimit_free</b> (DBusRLimit *lim)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>Internal system-dependent API available on UNIX and Windows. </p>
<p>The system-dependent API has a dual purpose. First, it encapsulates all usage of operating system APIs for ease of auditing and to avoid cluttering the rest of the code with bizarre OS quirks and headers. Second, it abstracts different operating system APIs for portability. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gac8269b795461ee42004b65734ce89e0b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_DBUS_DOUBLES_BITWISE_EQUAL" ref="gac8269b795461ee42004b65734ce89e0b" args="(a, b)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define <a class="el" href="group__DBusSysdeps.html#gac8269b795461ee42004b65734ce89e0b">_DBUS_DOUBLES_BITWISE_EQUAL</a></td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">a, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">b&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment">(<a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (a, 0) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 0) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 1) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 1) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 2) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 2) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 3) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 3) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 4) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 4) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 5) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 5) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 6) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 6) &amp;&amp;       \
      _DBUS_BYTE_OF_PRIMITIVE (a, 7) == <a class="code" href="group__DBusSysdeps.html#ga50e1eddfbce31548ca2c50ca7b9ebf35" title="Casts a primitive C type to a byte array and then indexes a particular byte of the array...">_DBUS_BYTE_OF_PRIMITIVE</a> (b, 7))
</pre></div>
<p>On x86 there is an 80-bit FPU, and if you do "a == b" it may have a or b in an 80-bit register, thus failing to compare the two 64-bit doubles for bitwise equality. </p>
<p>So this macro compares the two doubles bitwise. </p>

<p>Definition at line <a class="el" href="dbus-sysdeps_8h_source.html#l00487">487</a> of file <a class="el" href="dbus-sysdeps_8h_source.html">dbus-sysdeps.h</a>.</p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga24015a2f75b94c1307360755ce97f869"></a><!-- doxytag: member="dbus&#45;sysdeps.h::DBusGUID" ref="ga24015a2f75b94c1307360755ce97f869" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef union <a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a> <a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type representing a universally unique ID. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000064">Todo:</a></b></dt><dd>rename to UUID instead of GUID </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8h_source.html#l00508">508</a> of file <a class="el" href="dbus-sysdeps_8h_source.html">dbus-sysdeps.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga687f4393a365474ec16f02e40c418cce"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_accept" ref="ga687f4393a365474ec16f02e40c418cce" args="(int listen_fd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#ga687f4393a365474ec16f02e40c418cce">_dbus_accept</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>listen_fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accepts a connection on a listening socket. </p>
<p>Handles EINTR for you.</p>
<p>This will enable FD_CLOEXEC for the returned socket.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">listen_fd</td><td>the listen file descriptor </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the connection fd of the client, or -1 on error</dd></dl>
<p>Handles EINTR for you.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">listen_fd</td><td>the listen file descriptor </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the connection fd of the client, or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01968">1968</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02937">_dbus_fd_set_close_on_exec()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga3cc5a5734416858fa58f3166ed181a64"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_append_keyring_directory_for_credentials" ref="ga3cc5a5734416858fa58f3166ed181a64" args="(DBusString *directory, DBusCredentials *credentials)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga3cc5a5734416858fa58f3166ed181a64">_dbus_append_keyring_directory_for_credentials</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>directory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&#160;</td>
          <td class="paramname"><em>credentials</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends the directory in which a keyring for the given credentials should be stored. </p>
<p>The credentials should have either a Windows or UNIX user in them. The directory should be an absolute path.</p>
<p>On UNIX the directory is ~/.dbus-keyrings while on Windows it should probably be something else, since the dotfile convention is not normal on Windows.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">directory</td><td>string to append directory to </td></tr>
    <tr><td class="paramname">credentials</td><td>credentials the directory should be for</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">3806</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00361">_dbus_credentials_are_anonymous()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00268">_dbus_credentials_get_unix_uid()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00185">_dbus_getenv()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00461">_dbus_homedir_from_uid()</a>, <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</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#l00722">_dbus_string_get_length()</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-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00104">DBUS_UID_UNSET</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>

<p>Referenced by <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>.</p>

</div>
</div>
<a class="anchor" id="gacc062b5f20f4a355ea78afccb0abd5f9"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_append_session_config_file" ref="gacc062b5f20f4a355ea78afccb0abd5f9" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gacc062b5f20f4a355ea78afccb0abd5f9">_dbus_append_session_config_file</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the absolute path of the session.conf file. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to append to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01470">1470</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6a9478a21745b128750df87ac557c7d4"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_append_system_config_file" ref="ga6a9478a21745b128750df87ac557c7d4" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga6a9478a21745b128750df87ac557c7d4">_dbus_append_system_config_file</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append the absolute path of the system.conf file (there is no system bus on Windows so this can just return FALSE and print a warning or something) </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to append to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01458">1458</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>.</p>

</div>
</div>
<a class="anchor" id="ga095c54de3974c6d04c29ef86c6e06e35"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_append_user_from_current_process" ref="ga095c54de3974c6d04c29ef86c6e06e35" args="(DBusString *str)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga095c54de3974c6d04c29ef86c6e06e35">_dbus_append_user_from_current_process</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append to the string the identity we would like to have when we authenticate, on UNIX this is the current process UID and on Windows something else, probably a Windows SID string. </p>
<p>No escaping is required, that is done in <a class="el" href="dbus-auth_8c_source.html">dbus-auth.c</a>. The username here need not be anything human-readable, it can be the machine-readable form i.e. a user id.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to append to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on no memory</dd></dl>
<p>No escaping is required, that is done in <a class="el" href="dbus-auth_8c_source.html">dbus-auth.c</a>. The username here need not be anything human-readable, it can be the machine-readable form i.e. a user id.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to append to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on no memory </dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000061">Todo:</a></b></dt><dd>to which class belongs this </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02399">2399</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02428">_dbus_geteuid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02410">_dbus_getpid()</a>, <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00387">_dbus_string_append_uint()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga3c50a069f795dceeb9172fe2b517bbdc"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_atomic_dec" ref="ga3c50a069f795dceeb9172fe2b517bbdc" args="(DBusAtomic *atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> <a class="el" href="group__DBusSysdeps.html#ga3c50a069f795dceeb9172fe2b517bbdc">_dbus_atomic_dec</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&#160;</td>
          <td class="paramname"><em>atomic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Atomically decrement an integer. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">atomic</td><td>pointer to the integer to decrement </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the value before decrementing </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02524">2524</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8h_source.html#l00231">DBusAtomic::value</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l01442">_dbus_connection_unref_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00457">_dbus_pending_call_unref_and_unlock()</a>, <a class="el" href="dbus-server_8c_source.html#l00467">_dbus_server_unref_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l02817">dbus_connection_unref()</a>, <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-message_8c_source.html#l01690">dbus_message_unref()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00597">dbus_pending_call_unref()</a>, <a class="el" href="dbus-server_8c_source.html#l00687">dbus_server_ref()</a>, and <a class="el" href="dbus-server_8c_source.html#l00720">dbus_server_unref()</a>.</p>

</div>
</div>
<a class="anchor" id="ga626c810359ba0e362367ce2ec6691aca"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_atomic_get" ref="ga626c810359ba0e362367ce2ec6691aca" args="(DBusAtomic *atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> <a class="el" href="group__DBusSysdeps.html#ga626c810359ba0e362367ce2ec6691aca">_dbus_atomic_get</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&#160;</td>
          <td class="paramname"><em>atomic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Atomically get the value of an integer. </p>
<p>It may change at any time thereafter, so this is mostly only useful for assertions.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">atomic</td><td>pointer to the integer to get </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the value at this moment </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02548">2548</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8h_source.html#l00231">DBusAtomic::value</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l02146">_dbus_connection_close_if_only_one_ref()</a>.</p>

</div>
</div>
<a class="anchor" id="gae74c3fcf12acaeccdb152ef907de951c"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_atomic_inc" ref="gae74c3fcf12acaeccdb152ef907de951c" args="(DBusAtomic *atomic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#gab18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a> <a class="el" href="group__DBusSysdeps.html#gae74c3fcf12acaeccdb152ef907de951c">_dbus_atomic_inc</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusAtomic.html">DBusAtomic</a> *&#160;</td>
          <td class="paramname"><em>atomic</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Atomically increments an integer. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">atomic</td><td>pointer to the integer to increment </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the value before incrementing </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02501">2501</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8h_source.html#l00231">DBusAtomic::value</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l01249">_dbus_connection_new_for_transport()</a>, <a class="el" href="dbus-connection_8c_source.html#l01419">_dbus_connection_ref_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00109">_dbus_pending_call_new_unlocked()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00394">_dbus_pending_call_ref_unlocked()</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#l00448">_dbus_server_ref_unlocked()</a>, <a class="el" href="dbus-connection_8c_source.html#l05511">dbus_connection_add_filter()</a>, <a class="el" href="dbus-connection_8c_source.html#l02681">dbus_connection_ref()</a>, <a class="el" href="dbus-memory_8c_source.html#l00461">dbus_malloc()</a>, <a class="el" href="dbus-memory_8c_source.html#l00531">dbus_malloc0()</a>, <a class="el" href="dbus-message_8c_source.html#l01587">dbus_message_copy()</a>, <a class="el" href="dbus-message_8c_source.html#l01667">dbus_message_ref()</a>, <a class="el" href="dbus-pending-call_8c_source.html#l00577">dbus_pending_call_ref()</a>, <a class="el" href="dbus-memory_8c_source.html#l00601">dbus_realloc()</a>, <a class="el" href="dbus-server_8c_source.html#l00687">dbus_server_ref()</a>, and <a class="el" href="dbus-server_8c_source.html#l00720">dbus_server_unref()</a>.</p>

</div>
</div>
<a class="anchor" id="gaca61af8681a48862835ea8cfd263f5ab"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_become_daemon" ref="gaca61af8681a48862835ea8cfd263f5ab" args="(const DBusString *pidfile, DBusPipe *print_pid_pipe, DBusError *error, dbus_bool_t keep_umask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaca61af8681a48862835ea8cfd263f5ab">_dbus_become_daemon</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>pidfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&#160;</td>
          <td class="paramname"><em>print_pid_pipe</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>keep_umask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Does the chdir, fork, setsid, etc. </p>
<p>to become a daemon process.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pidfile</td><td><a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>, or pidfile to create </td></tr>
    <tr><td class="paramname">print_pid_pipe</td><td>pipe to print daemon's pid to, or -1 for none </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
    <tr><td class="paramname">keep_umask</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> to keep the original umask </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure</dd></dl>
<p>to become a daemon process.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pidfile</td><td><a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>, or pidfile to create </td></tr>
    <tr><td class="paramname">print_pid_pipe</td><td>file descriptor to print daemon's pid to, or -1 for none </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
    <tr><td class="paramname">keep_umask</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> to keep the original umask </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00087">87</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00185">_dbus_getenv()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">_dbus_write_pid_to_file_and_pipe()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h_source.html#l00364">DBUS_ERROR_NOT_SUPPORTED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-errors_8h_source.html#l00051">DBusError::message</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="ga82c920a8c3b5958ba1ecf8e5f5d6373b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_change_to_daemon_user" ref="ga82c920a8c3b5958ba1ecf8e5f5d6373b" args="(const char *user, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga82c920a8c3b5958ba1ecf8e5f5d6373b">_dbus_change_to_daemon_user</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>user</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>Changes the user and group the bus is running as. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">user</td><td>the user to become </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00334">334</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00199">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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="ga8e16f75e361d9fed43223f69baf0e2a5"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_check_dir_is_private_to_user" ref="ga8e16f75e361d9fed43223f69baf0e2a5" args="(DBusString *dir, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga8e16f75e361d9fed43223f69baf0e2a5">_dbus_check_dir_is_private_to_user</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dir</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>Checks to make sure the given directory is private to the user. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dir</td><td>the name of the directory </td></tr>
    <tr><td class="paramname">error</td><td>error return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02023">2023</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga38d9b871ec4fb30371d1187d8c9d3ef9"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_clearenv" ref="ga38d9b871ec4fb30371d1187d8c9d3ef9" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga38d9b871ec4fb30371d1187d8c9d3ef9">_dbus_clearenv</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wrapper for clearenv(). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00196">196</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <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="ga701f9b3087c196404f66ff95b4ace0b8"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_close_socket" ref="ga701f9b3087c196404f66ff95b4ace0b8" args="(int fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga701f9b3087c196404f66ff95b4ace0b8">_dbus_close_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</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>Socket interface. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000063">Todo:</a></b></dt><dd>Use for the file descriptors a struct<ul>
<li>struct DBusSocket{ int d; }; - instead of int to get type-safety which will be checked by the compiler.</li>
</ul>
</dd></dl>
<p>Socket interface.</p>
<p>Should not be used on non-socket file descriptors or handles.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the socket </td></tr>
    <tr><td class="paramname">error</td><td>return location for an error </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if error is set</dd></dl>
<p>Socket interface.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor </td></tr>
    <tr><td class="paramname">error</td><td>error object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if error set </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00202">202</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-spawn-win_8c_source.html#l00187">_dbus_babysitter_unref()</a>, <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-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>, <a class="el" href="dbus-transport-unix_8c_source.html#l00058">_dbus_transport_new_for_domain_socket()</a>, and <a class="el" href="dbus-transport-socket_8c_source.html#l01331">_dbus_transport_new_for_tcp_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3551d425aba3d92e652b8809fdfe9339"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_command_for_pid" ref="ga3551d425aba3d92e652b8809fdfe9339" args="(unsigned long pid, DBusString *str, int max_len, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga3551d425aba3d92e652b8809fdfe9339">_dbus_command_for_pid</a> </td>
          <td>(</td>
          <td class="paramtype">unsigned long&#160;</td>
          <td class="paramname"><em>pid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_len</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>Get a printable string describing the command used to execute the process with pid. </p>
<p>This string should only be used for informative purposes such as logging; it may not be trusted.</p>
<p>The command is guaranteed to be printable ASCII and no longer than max_len.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pid</td><td>Process id </td></tr>
    <tr><td class="paramname">str</td><td>Append command to this string </td></tr>
    <tr><td class="paramname">max_len</td><td>Maximum length of returned command </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">1231</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-string_8c_source.html#l01096">_dbus_string_append_printf()</a>, <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</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#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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="gae3a3fdc0c6001e367584bb016aca495d"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_concat_dir_and_file" ref="gae3a3fdc0c6001e367584bb016aca495d" args="(DBusString *dir, const DBusString *next_component)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gae3a3fdc0c6001e367584bb016aca495d">_dbus_concat_dir_and_file</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dir</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>next_component</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Appends the given filename to the given directory. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000058">Todo:</a></b></dt><dd>it might be cute to collapse multiple '/' such as "foo//" concat "//bar"</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dir</td><td>the directory name </td></tr>
    <tr><td class="paramname">next_component</td><td>the filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000060">Todo:</a></b></dt><dd>it might be cute to collapse multiple '/' such as "foo//" concat "//bar"</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dir</td><td>the directory name </td></tr>
    <tr><td class="paramname">next_component</td><td>the filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">2759</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l01139">_dbus_string_append_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l01265">_dbus_string_copy()</a>, <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00763">_dbus_string_shorten()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">_dbus_user_at_console()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa3adf90f6e47d30eeacf0a27d1a09ee5"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_connect_tcp_socket" ref="gaa3adf90f6e47d30eeacf0a27d1a09ee5" args="(const char *host, const char *port, const char *family, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#gaa3adf90f6e47d30eeacf0a27d1a09ee5">_dbus_connect_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>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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Creates a socket and connects to a socket at the given host and port. </p>
<p>The connection fd is returned, and is set up as nonblocking.</p>
<p>This will set FD_CLOEXEC for the socket returned</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>the host name to connect to </td></tr>
    <tr><td class="paramname">port</td><td>the port to connect to </td></tr>
    <tr><td class="paramname">family</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td class="paramname">error</td><td>return location for error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>connection file descriptor or -1 on error</dd></dl>
<p>The connection fd is returned, and is set up as nonblocking.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>the host name to connect to </td></tr>
    <tr><td class="paramname">port</td><td>the port to connect to </td></tr>
    <tr><td class="paramname">family</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td class="paramname">error</td><td>return location for error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>connection file descriptor or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01254">1254</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaa47156dedbe573ee9b213d1fd3f7bb79"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_create_directory" ref="gaa47156dedbe573ee9b213d1fd3f7bb79" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaa47156dedbe573ee9b213d1fd3f7bb79">_dbus_create_directory</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</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>directory interface </p>
<p>directory interface</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>directory filename </td></tr>
    <tr><td class="paramname">error</td><td>initialized error object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02725">2725</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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>

<p>Referenced by <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9d5493f8bd1c5577060c8c6dce44d09f"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_credentials_add_from_current_process" ref="ga9d5493f8bd1c5577060c8c6dce44d09f" args="(DBusCredentials *credentials)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga9d5493f8bd1c5577060c8c6dce44d09f">_dbus_credentials_add_from_current_process</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&#160;</td>
          <td class="paramname"><em>credentials</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds the credentials of the current process to the passed-in credentials object. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">credentials</td><td>credentials to add to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory; does not properly roll back on failure, so only some credentials may have been added </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02369">2369</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-credentials_8c_source.html#l00149">_dbus_credentials_add_pid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00164">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00180">_dbus_credentials_add_windows_sid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02428">_dbus_geteuid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02410">_dbus_getpid()</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>

<p>Referenced by <a class="el" href="dbus-credentials_8c_source.html#l00093">_dbus_credentials_new_from_current_process()</a>, and <a class="el" href="dbus-keyring_8c_source.html#l00709">_dbus_keyring_new_for_credentials()</a>.</p>

</div>
</div>
<a class="anchor" id="gacecdbb00a3c8b63e821edae537ae3c7b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_credentials_add_from_user" ref="gacecdbb00a3c8b63e821edae537ae3c7b" args="(DBusCredentials *credentials, const DBusString *username)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusInternalsUtils.html#gacecdbb00a3c8b63e821edae537ae3c7b">_dbus_credentials_add_from_user</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&#160;</td>
          <td class="paramname"><em>credentials</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>username</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Adds the credentials corresponding to the given username. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">credentials</td><td>credentials to fill in </td></tr>
    <tr><td class="paramname">username</td><td>the username </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the username existed and we got some credentials</dd></dl>
<p>Used among other purposes to parses a desired identity provided from a client in the auth protocol. On UNIX this means parsing a UID, on Windows probably parsing an SID string.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000068">Todo:</a></b></dt><dd>this is broken because it treats OOM and parse error the same way. Needs a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a>.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">credentials</td><td>credentials to fill in </td></tr>
    <tr><td class="paramname">username</td><td>the username </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the username existed and we got some credentials </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-win_8c_source.html#l02060">2060</a> of file <a class="el" href="dbus-sysdeps-win_8c_source.html">dbus-sysdeps-win.c</a>.</p>

<p>References <a class="el" href="dbus-credentials_8c_source.html#l00164">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00180">_dbus_credentials_add_windows_sid()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00336">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00676">_dbus_user_database_get_username()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00306">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00323">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</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-sysdeps-unix_8h_source.html#l00100">DBusUserInfo::uid</a>.</p>

</div>
</div>
<a class="anchor" id="ga3bc1512aef42cea17a2aaacc7d8e7211"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_delete_directory" ref="ga3bc1512aef42cea17a2aaacc7d8e7211" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga3bc1512aef42cea17a2aaacc7d8e7211">_dbus_delete_directory</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</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>Removes a directory; Directory must be empty. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>directory filename </td></tr>
    <tr><td class="paramname">error</td><td>initialized error object </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03906">3906</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="gab9a2ddb130da035d6186f2d96bf37cb4"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_directory_get_next_file" ref="gab9a2ddb130da035d6186f2d96bf37cb4" args="(DBusDirIter *iter, DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gab9a2ddb130da035d6186f2d96bf37cb4">_dbus_directory_get_next_file</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> *&#160;</td>
          <td class="paramname"><em>iter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</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>Get next file in the directory. </p>
<p>Will not return "." or ".." on UNIX. If an error occurs, the contents of "filename" are undefined. The error is never set if the function succeeds.</p>
<p>This function is not re-entrant, and not necessarily thread-safe. Only use it for test code or single-threaded utilities.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator </td></tr>
    <tr><td class="paramname">filename</td><td>string to be set to the next file in the dir </td></tr>
    <tr><td class="paramname">error</td><td>return location for error </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if filename was filled in with a new filename</dd></dl>
<p>Will not return "." or ".." on UNIX. If an error occurs, the contents of "filename" are undefined. The error is never set if the function succeeds.</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000059">Todo:</a></b></dt><dd>for thread safety, I think we have to use readdir_r(). (GLib has the same issue, should file a bug.)</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">iter</td><td>the iterator </td></tr>
    <tr><td class="paramname">filename</td><td>string to be set to the next file in the dir </td></tr>
    <tr><td class="paramname">error</td><td>return location for error </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if filename was filled in with a new filename </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00825">825</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00765">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h_source.html#l00352">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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="gaaf6eb8179fb6ea2175ed9742a0c8be68"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_directory_open" ref="gaaf6eb8179fb6ea2175ed9742a0c8be68" args="(const DBusString *filename, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDBusDirIter.html">DBusDirIter</a>* <a class="el" href="group__DBusSysdeps.html#gaaf6eb8179fb6ea2175ed9742a0c8be68">_dbus_directory_open</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</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>Open a directory to iterate over. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>the directory name </td></tr>
    <tr><td class="paramname">error</td><td>exception return object or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new iterator, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00777">777</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00765">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h_source.html#l00352">DBUS_ERROR_NO_MEMORY</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>

</div>
</div>
<a class="anchor" id="ga2212aa0e5732257598a6597748c658e4"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_error_from_errno" ref="ga2212aa0e5732257598a6597748c658e4" args="(int error_number)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusSysdeps.html#ga2212aa0e5732257598a6597748c658e4">_dbus_error_from_errno</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>error_number</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts a UNIX errno, or Windows errno or WinSock error value into a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> name. </p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000062">Todo:</a></b></dt><dd>should cover more errnos, specifically those from open().</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">error_number</td><td>the errno. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an error name </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00609">609</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-protocol_8h_source.html#l00368">DBUS_ERROR_ACCESS_DENIED</a>, <a class="el" href="dbus-protocol_8h_source.html#l00382">DBUS_ERROR_ADDRESS_IN_USE</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h_source.html#l00390">DBUS_ERROR_FILE_EXISTS</a>, <a class="el" href="dbus-protocol_8h_source.html#l00388">DBUS_ERROR_FILE_NOT_FOUND</a>, <a class="el" href="dbus-protocol_8h_source.html#l00366">DBUS_ERROR_LIMITS_EXCEEDED</a>, <a class="el" href="dbus-protocol_8h_source.html#l00352">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-protocol_8h_source.html#l00380">DBUS_ERROR_NO_NETWORK</a>, <a class="el" href="dbus-protocol_8h_source.html#l00372">DBUS_ERROR_NO_SERVER</a>, <a class="el" href="dbus-protocol_8h_source.html#l00364">DBUS_ERROR_NOT_SUPPORTED</a>, and <a class="el" href="dbus-protocol_8h_source.html#l00378">DBUS_ERROR_TIMEOUT</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l04035">_dbus_append_address_from_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00087">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00334">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02023">_dbus_check_dir_is_private_to_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00493">_dbus_close_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01231">_dbus_command_for_pid()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00927">_dbus_connect_exec()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00831">_dbus_connect_unix_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00825">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00777">_dbus_directory_open()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02987">_dbus_dup()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00701">_dbus_error_from_system_errno()</a>, <a class="el" href="dbus-file-unix_8c_source.html#l00055">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03109">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01160">_dbus_listen_systemd_sockets()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01033">_dbus_listen_unix_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01665">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01870">_dbus_send_credentials_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00729">_dbus_stat()</a>, and <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf4f1db48d66dcb310b9771beb955578e"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_error_from_system_errno" ref="gaf4f1db48d66dcb310b9771beb955578e" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusSysdeps.html#gaf4f1db48d66dcb310b9771beb955578e">_dbus_error_from_system_errno</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Converts the current system errno value into a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> name. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>an error name </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00701">701</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>.</p>

</div>
</div>
<a class="anchor" id="ga203e3257b50597a8fe7757c920474a20"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_exit" ref="ga203e3257b50597a8fe7757c920474a20" args="(int code) _DBUS_GNUC_NORETURN" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga203e3257b50597a8fe7757c920474a20">_dbus_exit</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>code</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Exit the process, returning the given value. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">code</td><td>the exit code </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02895">2895</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>.</p>

</div>
</div>
<a class="anchor" id="ga21ef96952f98f23e590ebbf060fd5ca6"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_fd_set_close_on_exec" ref="ga21ef96952f98f23e590ebbf060fd5ca6" args="(intptr_t fd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga21ef96952f98f23e590ebbf060fd5ca6">_dbus_fd_set_close_on_exec</a> </td>
          <td>(</td>
          <td class="paramtype">intptr_t&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the file descriptor to be close on exec. </p>
<p>Should be called for all file descriptors in D-Bus code.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor</td></tr>
  </table>
  </dd>
</dl>
<p>Should be called for all file descriptors in D-Bus code.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>the Windows HANDLE </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02937">2937</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01968">_dbus_accept()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00927">_dbus_connect_exec()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02987">_dbus_dup()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03109">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01635">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>, and <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>.</p>

</div>
</div>
<a class="anchor" id="ga184b42c4b42b91ef73e9ee50a1fa12c2"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_flush_caches" ref="ga184b42c4b42b91ef73e9ee50a1fa12c2" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga184b42c4b42b91ef73e9ee50a1fa12c2">_dbus_flush_caches</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called when the bus daemon is signaled to reload its configuration; any caches should be nuked. </p>
<p>Of course any caches that need explicit reload are probably broken, but c'est la vie. </p>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03787">3787</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb_8c_source.html#l00349">_dbus_user_database_flush_system()</a>.</p>

</div>
</div>
<a class="anchor" id="gae96a3f400324b065f78a865a86454d09"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_full_duplex_pipe" ref="gae96a3f400324b065f78a865a86454d09" args="(int *fd1, int *fd2, dbus_bool_t blocking, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gae96a3f400324b065f78a865a86454d09">_dbus_full_duplex_pipe</a> </td>
          <td>(</td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>fd1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>fd2</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>blocking</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>Creates a full-duplex pipe (as in socketpair()). </p>
<p>Sets both ends of the pipe nonblocking.</p>
<p>Marks both file descriptors as close-on-exec</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd1</td><td>return location for one end </td></tr>
    <tr><td class="paramname">fd2</td><td>return location for the other end </td></tr>
    <tr><td class="paramname">blocking</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if pipe should be blocking </td></tr>
    <tr><td class="paramname">error</td><td>error return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure (if error is set)</dd></dl>
<p>Sets both ends of the pipe nonblocking.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd1</td><td>return location for one end </td></tr>
    <tr><td class="paramname">fd2</td><td>return location for the other end </td></tr>
    <tr><td class="paramname">blocking</td><td><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if pipe should be blocking </td></tr>
    <tr><td class="paramname">error</td><td>error return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on failure (if error is set) </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03109">3109</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02937">_dbus_fd_set_close_on_exec()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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>

<p>Referenced by <a class="el" href="dbus-spawn-win_8c_source.html#l00644">_dbus_spawn_async_with_babysitter()</a>.</p>

</div>
</div>
<a class="anchor" id="ga709ce349c6ee05263850444fb4e0177d"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_generate_random_ascii" ref="ga709ce349c6ee05263850444fb4e0177d" args="(DBusString *str, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga709ce349c6ee05263850444fb4e0177d">_dbus_generate_random_ascii</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">n_bytes</td><td>the number of random ASCII bytes to append to string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory or other failure </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00570">570</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02852">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00521">_dbus_string_set_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l02432">_dbus_string_validate_ascii()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-server-unix_8c_source.html#l00054">_dbus_server_listen_platform_specific()</a>, and <a class="el" href="dbus-file-unix_8c_source.html#l00164">_dbus_string_save_to_file()</a>.</p>

</div>
</div>
<a class="anchor" id="gac9fd08af5e54c0e9b3db108b48a65778"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_generate_random_bytes" ref="gac9fd08af5e54c0e9b3db108b48a65778" args="(DBusString *str, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gac9fd08af5e54c0e9b3db108b48a65778">_dbus_generate_random_bytes</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Generates the given number of random bytes, using the best mechanism we can come up with. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string </td></tr>
    <tr><td class="paramname">n_bytes</td><td>the number of random bytes to append to string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02852">2852</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-string_8c_source.html#l00473">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</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>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00570">_dbus_generate_random_ascii()</a>, and <a class="el" href="dbus-sysdeps_8c_source.html#l00538">_dbus_generate_random_bytes_buffer()</a>.</p>

</div>
</div>
<a class="anchor" id="gaa32f87746e9264b2425736043d02fad4"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_generate_random_bytes_buffer" ref="gaa32f87746e9264b2425736043d02fad4" args="(char *buffer, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#gaa32f87746e9264b2425736043d02fad4">_dbus_generate_random_bytes_buffer</a> </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>n_bytes</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fills n_bytes of the given buffer with random bytes. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">buffer</td><td>an allocated buffer </td></tr>
    <tr><td class="paramname">n_bytes</td><td>the number of bytes in buffer to write to </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00538">538</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00503">_dbus_generate_pseudorandom_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02852">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c_source.html#l00680">_dbus_string_copy_to_buffer()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, and <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>.</p>

<p>Referenced by <a class="el" href="dbus-internals_8c_source.html#l00641">_dbus_generate_uuid()</a>.</p>

</div>
</div>
<a class="anchor" id="gabc4712c0db91f11854cdd933027355af"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_autolaunch_address" ref="gabc4712c0db91f11854cdd933027355af" args="(const char *scope, DBusString *address, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gabc4712c0db91f11854cdd933027355af">_dbus_get_autolaunch_address</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>scope</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><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="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>Returns the address of a new session bus. </p>
<p>If successful, returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> and appends the address to <code>address</code>. If a failure happens, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> and sets an error in <code>error</code>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">scope</td><td>scope of autolaunch (Windows only) </td></tr>
    <tr><td class="paramname">address</td><td>a <a class="el" href="structDBusString.html">DBusString</a> where the address can be stored </td></tr>
    <tr><td class="paramname">error</td><td>a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> to store the error in case of failure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if an error happened </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03508">3508</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-internals_8c_source.html#l00854">_dbus_get_local_machine_uuid_encoded()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00185">_dbus_getenv()</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#l00434">_dbus_string_get_data()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h_source.html#l00364">DBUS_ERROR_NOT_SUPPORTED</a>, <a class="el" href="dbus-errors_8c_source.html#l00243">dbus_set_error_const()</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="gaae48868ce818ad287cdae113aabcc858"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_environment" ref="gaae48868ce818ad287cdae113aabcc858" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char** <a class="el" href="group__DBusSysdeps.html#gaae48868ce818ad287cdae113aabcc858">_dbus_get_environment</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets a <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>-terminated list of key=value pairs from the environment. </p>
<p>Use dbus_free_string_array to free it.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the environment or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> on OOM </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util_8c_source.html#l00049">49</a> of file <a class="el" href="dbus-sysdeps-util_8c_source.html">dbus-sysdeps-util.c</a>.</p>

<p>References <a class="el" href="dbus-internals_8c_source.html#l00527">_dbus_strdup()</a>, <a class="el" href="dbus-memory_8c_source.html#l00749">dbus_free_string_array()</a>, <a class="el" href="dbus-memory_8h_source.html#l00059">dbus_new0</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gaa03e5d4d95ef46a70d25fe315e674e24"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_eagain_or_ewouldblock" ref="gaa03e5d4d95ef46a70d25fe315e674e24" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaa03e5d4d95ef46a70d25fe315e674e24">_dbus_get_is_errno_eagain_or_ewouldblock</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is EAGAIN or EWOULDBLOCK (this has to be done differently for Winsock so is abstracted) </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno == EAGAIN or errno == EWOULDBLOCK </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03893">3893</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga08e67a10b197995c101c89f248c24105"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_eintr" ref="ga08e67a10b197995c101c89f248c24105" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga08e67a10b197995c101c89f248c24105">_dbus_get_is_errno_eintr</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is EINTR. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno == EINTR </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00744">744</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

</div>
</div>
<a class="anchor" id="gaec2ce24907adaedd1bf88bb28d82c96d"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_enomem" ref="gaec2ce24907adaedd1bf88bb28d82c96d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaec2ce24907adaedd1bf88bb28d82c96d">_dbus_get_is_errno_enomem</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is ENOMEM. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno == ENOMEM </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00734">734</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga1001bb8d98eaee545a4e9b3994d13440"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_epipe" ref="ga1001bb8d98eaee545a4e9b3994d13440" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga1001bb8d98eaee545a4e9b3994d13440">_dbus_get_is_errno_epipe</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is EPIPE. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno == EPIPE </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00754">754</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

</div>
</div>
<a class="anchor" id="ga69062313641c53627f5afb7be96e4ea4"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_etoomanyrefs" ref="ga69062313641c53627f5afb7be96e4ea4" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga69062313641c53627f5afb7be96e4ea4">_dbus_get_is_errno_etoomanyrefs</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is ETOOMANYREFS. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno == ETOOMANYREFS </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00764">764</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="gab9ccdfee5c7986ff236a6cde66a9af2f"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_is_errno_nonzero" ref="gab9ccdfee5c7986ff236a6cde66a9af2f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gab9ccdfee5c7986ff236a6cde66a9af2f">_dbus_get_is_errno_nonzero</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if errno is set. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if errno is not 0 </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00724">724</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

</div>
</div>
<a class="anchor" id="gab9951a7fd8c33188bf86314e7fd56300"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_monotonic_time" ref="gab9951a7fd8c33188bf86314e7fd56300" args="(long *tv_sec, long *tv_usec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#gab9951a7fd8c33188bf86314e7fd56300">_dbus_get_monotonic_time</a> </td>
          <td>(</td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>tv_sec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>tv_usec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current time, as in gettimeofday(). </p>
<p>Use the monotonic clock if available, to avoid problems when the system time changes.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">tv_sec</td><td>return location for number of seconds </td></tr>
    <tr><td class="paramname">tv_usec</td><td>return location for number of microseconds </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02672">2672</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02703">_dbus_get_real_time()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-connection_8c_source.html#l02379">_dbus_connection_block_pending_call()</a>.</p>

</div>
</div>
<a class="anchor" id="gae10ee21ab353beadbe2493728065f600"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_real_time" ref="gae10ee21ab353beadbe2493728065f600" args="(long *tv_sec, long *tv_usec)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#gae10ee21ab353beadbe2493728065f600">_dbus_get_real_time</a> </td>
          <td>(</td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>tv_sec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long *&#160;</td>
          <td class="paramname"><em>tv_usec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get current time, as in gettimeofday(). </p>
<p>Never uses the monotonic clock.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">tv_sec</td><td>return location for number of seconds </td></tr>
    <tr><td class="paramname">tv_usec</td><td>return location for number of microseconds </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02703">2703</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusTypes.html#ga8deac39e1bf9fcca44854afeaaaf6199">DBUS_INT64_CONSTANT</a>, <a class="el" href="dbus-arch-deps_8h_source.html#l00037">dbus_uint64_t</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00503">_dbus_generate_pseudorandom_bytes_buffer()</a>, <a class="el" href="dbus-internals_8c_source.html#l00641">_dbus_generate_uuid()</a>, and <a class="el" href="dbus-sysdeps-win_8c_source.html#l02199">_dbus_get_monotonic_time()</a>.</p>

</div>
</div>
<a class="anchor" id="ga079d34a9d90759e6b3ebebab424c696e"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_standard_session_servicedirs" ref="ga079d34a9d90759e6b3ebebab424c696e" args="(DBusList **dirs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga079d34a9d90759e6b3ebebab424c696e">_dbus_get_standard_session_servicedirs</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>dirs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the standard directories for a session bus to look for service activation files. </p>
<p>On UNIX this should be the standard xdg freedesktop.org data directories:</p>
<p>XDG_DATA_HOME=${XDG_DATA_HOME-$HOME/.local/share} XDG_DATA_DIRS=${XDG_DATA_DIRS-/usr/local/share:/usr/share}</p>
<p>and</p>
<p>DBUS_DATADIR</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dirs</td><td>the directory list we are returning </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on OOM</dd></dl>
<p>On Windows this should be data directories:</p>
<p>CommonProgramFiles%/dbus</p>
<p>and</p>
<p>relocated DBUS_DATADIR</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dirs</td><td>the directory list we are returning </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on OOM </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">1332</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00185">_dbus_getenv()</a>, <a class="el" href="dbus-userdb_8c_source.html#l00395">_dbus_homedir_from_current_process()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00712">_dbus_path_is_absolute()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</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="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="ga5193160c3dc144af34b250cfb5b0a61e"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_standard_system_servicedirs" ref="ga5193160c3dc144af34b250cfb5b0a61e" args="(DBusList **dirs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga5193160c3dc144af34b250cfb5b0a61e">_dbus_get_standard_system_servicedirs</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>dirs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the standard directories for a system bus to look for service activation files. </p>
<p>On UNIX this should be the standard xdg freedesktop.org data directories:</p>
<p>XDG_DATA_DIRS=${XDG_DATA_DIRS-/usr/local/share:/usr/share}</p>
<p>and</p>
<p>DBUS_DATADIR</p>
<p>On Windows there is no system bus and this function can return nothing.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dirs</td><td>the directory list we are returning </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on OOM </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01424">1424</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00221">_dbus_split_paths_and_append()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</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="ga3ecdae905f2d9e95fd35891b20f06532"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_get_tmpdir" ref="ga3ecdae905f2d9e95fd35891b20f06532" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusSysdeps.html#ga3ecdae905f2d9e95fd35891b20f06532">_dbus_get_tmpdir</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets the temporary files directory by inspecting the environment variables TMPDIR, TMP, and TEMP in that order. </p>
<p>If none of those are set "/tmp" is returned</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>location of temp directory, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if no memory for locking </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03254">3254</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="gab846071a4de54cb7e518654f9375313a"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_getenv" ref="gab846071a4de54cb7e518654f9375313a" args="(const char *varname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * <a class="el" href="group__DBusSysdeps.html#gab846071a4de54cb7e518654f9375313a">_dbus_getenv</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>varname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wrapper for getenv(). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">varname</td><td>name of environment variable </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>value of environment variable or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> if unset </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00185">185</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03806">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00087">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03508">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, and <a class="el" href="dbus-server-launchd_8c_source.html#l00065">_dbus_server_new_for_launchd()</a>.</p>

</div>
</div>
<a class="anchor" id="ga870807b07f3b1c1a725eb9408edad147"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_getpid" ref="ga870807b07f3b1c1a725eb9408edad147" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a> <a class="el" href="group__DBusSysdeps.html#ga870807b07f3b1c1a725eb9408edad147">_dbus_getpid</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets our process ID. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>process ID </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02410">2410</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l02114">_dbus_append_user_from_current_process()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02369">_dbus_credentials_add_from_current_process()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00944">_dbus_pid_for_log()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00567">_dbus_system_logv()</a>.</p>

</div>
</div>
<a class="anchor" id="gafdae31b3b61299dbaaccfcb1205a6f30"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_listen_tcp_socket" ref="gafdae31b3b61299dbaaccfcb1205a6f30" args="(const char *host, const char *port, const char *family, DBusString *retport, int **fds_p, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#gafdae31b3b61299dbaaccfcb1205a6f30">_dbus_listen_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>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="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>retport</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</td>
          <td class="paramname"><em>fds_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>Creates a socket and binds it to the given path, then listens on the socket. </p>
<p>The socket is set to be nonblocking. In case of port=0 a random free port is used and returned in the port parameter. If inaddr_any is specified, the hostname is ignored.</p>
<p>This will set FD_CLOEXEC for the socket returned</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>the host name to listen on </td></tr>
    <tr><td class="paramname">port</td><td>the port to listen on, if zero a free port will be used </td></tr>
    <tr><td class="paramname">family</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td class="paramname">retport</td><td>string to return the actual port listened on </td></tr>
    <tr><td class="paramname">fds_p</td><td>location to store returned file descriptors </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of listening file descriptors or -1 on error</dd></dl>
<p>The socket is set to be nonblocking. In case of port=0 a random free port is used and returned in the port parameter. If inaddr_any is specified, the hostname is ignored.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">host</td><td>the host name to listen on </td></tr>
    <tr><td class="paramname">port</td><td>the port to listen on, if zero a free port will be used </td></tr>
    <tr><td class="paramname">family</td><td>the address family to listen on, NULL for all </td></tr>
    <tr><td class="paramname">retport</td><td>string to return the actual port listened on </td></tr>
    <tr><td class="paramname">fds_p</td><td>location to store returned file descriptors </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of listening file descriptors or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01378">1378</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02959">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02937">_dbus_fd_set_close_on_exec()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</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#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00362">DBUS_ERROR_BAD_ADDRESS</a>, <a class="el" href="dbus-protocol_8h_source.html#l00386">DBUS_ERROR_INVALID_ARGS</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_8c_source.html#l00601">dbus_realloc()</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-socket_8c_source.html#l00388">_dbus_server_new_for_tcp_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="gade479f90c1083346d74bc21af178d856"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_lookup_session_address" ref="gade479f90c1083346d74bc21af178d856" args="(dbus_bool_t *supported, DBusString *address, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gade479f90c1083346d74bc21af178d856">_dbus_lookup_session_address</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> *&#160;</td>
          <td class="paramname"><em>supported</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><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="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>Determines the address of the session bus by querying a platform-specific method. </p>
<p>The first parameter will be a boolean specifying whether or not a dynamic session lookup is supported on this platform.</p>
<p>If supported is TRUE and the return value is <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a>, the address will be appended to <code>address</code>. If a failure happens, returns <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> and sets an error in <code>error</code>.</p>
<p>If supported is FALSE, ignore the return value.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">supported</td><td>returns whether this method is supported </td></tr>
    <tr><td class="paramname">address</td><td>a <a class="el" href="structDBusString.html">DBusString</a> where the address can be stored </td></tr>
    <tr><td class="paramname">error</td><td>a <a class="el" href="structDBusError.html" title="Object representing an exception.">DBusError</a> to store the error in case of failure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if an error happened </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03762">3762</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga96da816095ec7fec07136a6019745bcb"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_parse_unix_group_from_config" ref="ga96da816095ec7fec07136a6019745bcb" args="(const DBusString *groupname, dbus_gid_t *gid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>groupname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *&#160;</td>
          <td class="paramname"><em>gid_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a UNIX group from the bus config file. </p>
<p>On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">groupname</td><td>the groupname text </td></tr>
    <tr><td class="paramname">gid_p</td><td>place to return the gid </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01074">1074</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00160">_dbus_get_group_id()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga437470fc327b0169fc14a0b66a6e5278"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_parse_unix_user_from_config" ref="ga437470fc327b0169fc14a0b66a6e5278" args="(const DBusString *username, dbus_uid_t *uid_p)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>username</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *&#160;</td>
          <td class="paramname"><em>uid_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Parse a UNIX user from the bus config file. </p>
<p>On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">username</td><td>the username text </td></tr>
    <tr><td class="paramname">uid_p</td><td>place to return the uid </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01058">1058</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00146">_dbus_get_user_id()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga6d80876bcae54f47cde79d0bce20321d"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_path_is_absolute" ref="ga6d80876bcae54f47cde79d0bce20321d" args="(const DBusString *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga6d80876bcae54f47cde79d0bce20321d">_dbus_path_is_absolute</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether the filename is an absolute path. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>the filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if an absolute path </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00712">712</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-win_8c_source.html#l01647">_dbus_get_standard_session_servicedirs()</a>.</p>

</div>
</div>
<a class="anchor" id="ga1b30aa55e8758ed6e1b62e0f86866543"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_pid_for_log" ref="ga1b30aa55e8758ed6e1b62e0f86866543" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long <a class="el" href="group__DBusSysdeps.html#ga1b30aa55e8758ed6e1b62e0f86866543">_dbus_pid_for_log</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The only reason this is separate from <a class="el" href="group__DBusSysdeps.html#ga870807b07f3b1c1a725eb9408edad147" title="Gets our process ID.">_dbus_getpid()</a> is to allow it on Windows for logging but not for other purposes. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>process ID to put in log messages </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02440">2440</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02410">_dbus_getpid()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>, <a class="el" href="dbus-internals_8c_source.html#l00912">_dbus_real_assert()</a>, <a class="el" href="dbus-internals_8c_source.html#l00937">_dbus_real_assert_not_reached()</a>, and <a class="el" href="dbus-internals_8c_source.html#l00258">_dbus_warn_check_failed()</a>.</p>

</div>
</div>
<a class="anchor" id="gac1cdb5995dcef6dd54399ab610ae689a"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_poll" ref="gac1cdb5995dcef6dd54399ab610ae689a" args="(DBusPollFD *fds, int n_fds, int timeout_milliseconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#gac1cdb5995dcef6dd54399ab610ae689a">_dbus_poll</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusPollFD.html">DBusPollFD</a> *&#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">int&#160;</td>
          <td class="paramname"><em>timeout_milliseconds</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Wrapper for poll(). </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fds</td><td>the file descriptors to poll </td></tr>
    <tr><td class="paramname">n_fds</td><td>number of descriptors in the array </td></tr>
    <tr><td class="paramname">timeout_milliseconds</td><td>timeout or -1 for infinite </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>numbers of fds with revents, or &lt;0 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02573">2573</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8h_source.html#l00299">_DBUS_POLLERR</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00301">_DBUS_POLLHUP</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00293">_DBUS_POLLIN</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00303">_DBUS_POLLNVAL</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00297">_DBUS_POLLOUT</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00295">_DBUS_POLLPRI</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-internals_8c_source.html#l00230">_dbus_warn()</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00312">DBusPollFD::events</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00311">DBusPollFD::fd</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-sysdeps_8h_source.html#l00313">DBusPollFD::revents</a>.</p>

</div>
</div>
<a class="anchor" id="ga8646ab2ef727fcc862c7904113c88a8d"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_print_backtrace" ref="ga8646ab2ef727fcc862c7904113c88a8d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga8646ab2ef727fcc862c7904113c88a8d">_dbus_print_backtrace</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>On GNU libc systems, print a crude backtrace to stderr. </p>
<p>On other systems, print "no backtrace support" and block for possible gdb attachment if an appropriate environment variable is set. </p>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03067">3067</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>.</p>

</div>
</div>
<a class="anchor" id="gaffaf8b5bb832c20a8ccb10f012920776"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_printf_string_upper_bound" ref="gaffaf8b5bb832c20a8ccb10f012920776" args="(const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#gaffaf8b5bb832c20a8ccb10f012920776">_dbus_printf_string_upper_bound</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Measure the length of the given format string and arguments, not including the terminating nul. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">format</td><td>a printf-style format string </td></tr>
    <tr><td class="paramname">args</td><td>arguments for the format string </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>length of the given format string and args, or -1 if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03184">3184</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-memory_8c_source.html#l00701">dbus_free()</a>, <a class="el" href="dbus-memory_8c_source.html#l00461">dbus_malloc()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

<p>Referenced by <a class="el" href="dbus-string_8c_source.html#l01055">_dbus_string_append_printf_valist()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9906c86bebb51358f0d8df6a42af30f6"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_read_credentials_socket" ref="ga9906c86bebb51358f0d8df6a42af30f6" args="(int client_fd, DBusCredentials *credentials, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga9906c86bebb51358f0d8df6a42af30f6">_dbus_read_credentials_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> *&#160;</td>
          <td class="paramname"><em>credentials</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>Reads a single byte which must be nul (an error occurs otherwise), and reads unix credentials if available. </p>
<p>Clears the credentials object, then adds pid/uid if available, so any previous credentials stored in the object are lost.</p>
<p>Return value indicates whether a byte was read, not whether we got valid credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.</p>
<p>Fails if no byte is available, so you must select() first.</p>
<p>The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">client_fd</td><td>the client file descriptor </td></tr>
    <tr><td class="paramname">credentials</td><td>object to add client credentials to </td></tr>
    <tr><td class="paramname">error</td><td>location to store error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success</dd></dl>
<p>Fills in pid/uid/gid with -1 if no credentials are available. Return value indicates whether a byte was read, not whether we got valid credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.</p>
<p>Fails if no byte is available, so you must select() first.</p>
<p>The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>the client file descriptor </td></tr>
    <tr><td class="paramname">credentials</td><td>struct to fill with credentials of client </td></tr>
    <tr><td class="paramname">error</td><td>location to store error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> on success </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01665">1665</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-credentials_8c_source.html#l00204">_dbus_credentials_add_adt_audit_data()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00149">_dbus_credentials_add_pid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00164">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00180">_dbus_credentials_add_windows_sid()</a>, <a class="el" href="dbus-credentials_8c_source.html#l00446">_dbus_credentials_clear()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00218">_dbus_read_socket()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00109">DBUS_PID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00102">DBUS_PID_UNSET</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00111">DBUS_UID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00104">DBUS_UID_UNSET</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="ga3f073afc8ef8397471531baf513e1bb5"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_read_local_machine_uuid" ref="ga3f073afc8ef8397471531baf513e1bb5" args="(DBusGUID *machine_id, dbus_bool_t create_if_not_found, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga3f073afc8ef8397471531baf513e1bb5">_dbus_read_local_machine_uuid</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga24015a2f75b94c1307360755ce97f869">DBusGUID</a> *&#160;</td>
          <td class="paramname"><em>machine_id</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>create_if_not_found</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>Reads the uuid of the machine we're running on from the dbus configuration. </p>
<p>Optionally try to create it (only root can do this usually).</p>
<p>On UNIX, reads a file that gets created by dbus-uuidgen in a post-install script. On Windows, if there's a standard machine uuid we could just use that, but I can't find one with the right properties (the hardware profile guid can change without rebooting I believe). If there's no standard one we might want to use the registry instead of a file for this, and I'm not sure how we'd ensure the uuid gets created.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">machine_id</td><td>guid to init with the machine's uuid </td></tr>
    <tr><td class="paramname">create_if_not_found</td><td>try to create the uuid if it doesn't exist </td></tr>
    <tr><td class="paramname">error</td><td>the error return </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if the error is set </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03604">3604</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-internals_8c_source.html#l00641">_dbus_generate_uuid()</a>, <a class="el" href="dbus-internals_8c_source.html#l00806">_dbus_read_uuid_file()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</a>, <a class="el" href="dbus-internals_8c_source.html#l00757">_dbus_write_uuid_file()</a>, <a class="el" href="dbus-errors_8c_source.html#l00211">dbus_error_free()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00352">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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>

<p>Referenced by <a class="el" href="dbus-internals_8c_source.html#l00854">_dbus_get_local_machine_uuid_encoded()</a>, and <a class="el" href="dbus-uuidgen_8c_source.html#l00083">dbus_internal_do_not_use_get_uuid()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6fe72fa1c0484ac5594b08145ea19530"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_read_socket" ref="ga6fe72fa1c0484ac5594b08145ea19530" args="(int fd, DBusString *buffer, int count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530">_dbus_read_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusSysdepsUnix.html#gaf52cb1d5b9fc5611808ce32eff898c28" title="Thin wrapper around the read() system call that appends the data it reads to the DBusString buffer...">_dbus_read()</a>, but only works on sockets so is available on Windows. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the socket </td></tr>
    <tr><td class="paramname">buffer</td><td>string to append data to </td></tr>
    <tr><td class="paramname">count</td><td>max amount of data to read </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes appended to the string</dd></dl>
<p>Like <a class="el" href="group__DBusSysdepsUnix.html#gaf52cb1d5b9fc5611808ce32eff898c28" title="Thin wrapper around the read() system call that appends the data it reads to the DBusString buffer...">_dbus_read()</a>, but only works on sockets so is available on Windows.</p>
<p>Thin wrapper around the read() system call that appends the data it reads to the <a class="el" href="structDBusString.html">DBusString</a> buffer. It appends up to the given count, and returns the same value and same errno as read(). The only exception is that <a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530" title="Like _dbus_read(), but only works on sockets so is available on Windows.">_dbus_read_socket()</a> handles EINTR for you. <a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530" title="Like _dbus_read(), but only works on sockets so is available on Windows.">_dbus_read_socket()</a> can return ENOMEM, even though regular UNIX read doesn't.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor to read from </td></tr>
    <tr><td class="paramname">buffer</td><td>the buffer to append data to </td></tr>
    <tr><td class="paramname">count</td><td>the amount of data to read </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes read or -1 </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00218">218</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00626">_dbus_read()</a>, <a class="el" href="dbus-string_8c_source.html#l00473">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, and <a class="el" href="dbus-marshal-basic_8c_source.html#l01360">_dbus_verbose_bytes_of_string()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l01947">_dbus_read_credentials_socket()</a>, and <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">_dbus_read_socket_with_unix_fds()</a>.</p>

</div>
</div>
<a class="anchor" id="ga14aa692ac7e9aab777b9f565c4b8933b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_read_socket_with_unix_fds" ref="ga14aa692ac7e9aab777b9f565c4b8933b" args="(int fd, DBusString *buffer, int count, int *fds, int *n_fds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#ga14aa692ac7e9aab777b9f565c4b8933b">_dbus_read_socket_with_unix_fds</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusSysdeps.html#ga6fe72fa1c0484ac5594b08145ea19530" title="Like _dbus_read(), but only works on sockets so is available on Windows.">_dbus_read_socket()</a> but also tries to read unix fds from the socket. </p>
<p>When there are more fds to read than space in the array passed this function will fail with ENOSPC.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the socket </td></tr>
    <tr><td class="paramname">buffer</td><td>string to append data to </td></tr>
    <tr><td class="paramname">count</td><td>max amount of data to read </td></tr>
    <tr><td class="paramname">fds</td><td>array to place read file descriptors in </td></tr>
    <tr><td class="paramname">n_fds</td><td>on input space in fds array, on output how many fds actually got read </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes appended to string </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00274">274</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02937">_dbus_fd_set_close_on_exec()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00218">_dbus_read_socket()</a>, <a class="el" href="dbus-string_8c_source.html#l00473">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00743">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c_source.html#l00785">_dbus_string_set_length()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01360">_dbus_verbose_bytes_of_string()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga6cc9916aa1dde4d44072ee85b5691b5b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_send_credentials_socket" ref="ga6cc9916aa1dde4d44072ee85b5691b5b" args="(int server_fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga6cc9916aa1dde4d44072ee85b5691b5b">_dbus_send_credentials_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>server_fd</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>Sends a single nul byte with our UNIX credentials as ancillary data. </p>
<p>Returns <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the data was successfully written. On systems that don't support sending credentials, just writes a byte, doesn't send any credentials. On some systems, such as Linux, reading/writing the byte isn't actually required, but we do it anyway just to avoid multiple codepaths.</p>
<p>Fails if no byte can be written, so you must select() first.</p>
<p>The point of the byte is that on some systems we have to use sendmsg()/recvmsg() to transmit credentials.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">server_fd</td><td>file descriptor for connection to server </td></tr>
    <tr><td class="paramname">error</td><td>return location for error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the byte was sent </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l01947">1947</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00210">_dbus_string_init_const_len()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00236">_dbus_write_socket()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00360">DBUS_ERROR_IO_ERROR</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga4aa7500366dad2dd6d3fa97b3aa7165b"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_set_signal_handler" ref="ga4aa7500366dad2dd6d3fa97b3aa7165b" args="(int sig, DBusSignalHandler handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga4aa7500366dad2dd6d3fa97b3aa7165b">_dbus_set_signal_handler</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga5c69cb20ec385aa86a213c898149f8ea">DBusSignalHandler</a>&#160;</td>
          <td class="paramname"><em>handler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Installs a UNIX signal handler. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sig</td><td>the signal to handle </td></tr>
    <tr><td class="paramname">handler</td><td>the handler</td></tr>
  </table>
  </dd>
</dl>
<p>Installs a UNIX signal handler.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sig</td><td>the signal to handle </td></tr>
    <tr><td class="paramname">handler</td><td>the handler </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00613">613</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga1153b4669819148af6b3f6f2b7c9183a"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_sleep_milliseconds" ref="ga1153b4669819148af6b3f6f2b7c9183a" args="(int milliseconds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga1153b4669819148af6b3f6f2b7c9183a">_dbus_sleep_milliseconds</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>milliseconds</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sleeps the given number of milliseconds. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">milliseconds</td><td>number of milliseconds </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02804">2804</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps_8c_source.html#l00077">_dbus_abort()</a>.</p>

</div>
</div>
<a class="anchor" id="ga06183453a52a6919619e85dc1812c9b7"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_socket_can_pass_unix_fd" ref="ga06183453a52a6919619e85dc1812c9b7" args="(int fd)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga06183453a52a6919619e85dc1812c9b7">_dbus_socket_can_pass_unix_fd</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks whether file descriptors may be passed via the socket. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the socket </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE when fd passing over this socket is supported </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l03934">3934</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

<p>Referenced by <a class="el" href="dbus-transport-socket_8c_source.html#l01256">_dbus_transport_new_for_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="ga9393ded03e3b9812e4ba99b437ea992d"></a><!-- doxytag: member="dbus&#45;sysdeps.c::_dbus_split_paths_and_append" ref="ga9393ded03e3b9812e4ba99b437ea992d" args="(DBusString *dirs, const char *suffix, DBusList **dir_list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga9393ded03e3b9812e4ba99b437ea992d">_dbus_split_paths_and_append</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dirs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>suffix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusList.html">DBusList</a> **&#160;</td>
          <td class="paramname"><em>dir_list</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split paths into a list of char strings. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">dirs</td><td>string with pathes </td></tr>
    <tr><td class="paramname">suffix</td><td>string concated to each path in dirs </td></tr>
    <tr><td class="paramname">dir_list</td><td>contains a list of splitted pathes return <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> is pathes could be splittes,<a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> in oom case </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00221">221</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-list_8c_source.html#l00270">_dbus_list_append()</a>, <a class="el" href="dbus-list_8c_source.html#l00542">_dbus_list_clear()</a>, <a class="el" href="dbus-list_8c_source.html#l00759">_dbus_list_foreach()</a>, <a class="el" href="dbus-string_8c_source.html#l01971">_dbus_string_chop_white()</a>, <a class="el" href="dbus-string_8c_source.html#l00655">_dbus_string_copy_data()</a>, <a class="el" href="dbus-string_8c_source.html#l01357">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c_source.html#l01586">_dbus_string_find()</a>, <a class="el" href="dbus-string_8c_source.html#l00242">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</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-memory_8c_source.html#l00701">dbus_free()</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>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01332">_dbus_get_standard_session_servicedirs()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01424">_dbus_get_standard_system_servicedirs()</a>.</p>

</div>
</div>
<a class="anchor" id="ga04e98ad0e3a181f0a5921a4cbc49cf08"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_stat" ref="ga04e98ad0e3a181f0a5921a4cbc49cf08" args="(const DBusString *filename, DBusStat *statbuf, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga04e98ad0e3a181f0a5921a4cbc49cf08">_dbus_stat</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusStat.html">DBusStat</a> *&#160;</td>
          <td class="paramname"><em>statbuf</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>stat() wrapper. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>the filename to stat </td></tr>
    <tr><td class="paramname">statbuf</td><td>the stat info to fill in </td></tr>
    <tr><td class="paramname">error</td><td>return location for error </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if error was set </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00729">729</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00609">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00451">_dbus_string_get_const_data()</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00408">DBusStat::atime</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00410">DBusStat::ctime</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00106">DBUS_GID_UNSET</a>, <a class="el" href="group__DBusTypes.html#ga8deac39e1bf9fcca44854afeaaaf6199">DBUS_INT64_CONSTANT</a>, <a class="el" href="dbus-arch-deps_8h_source.html#l00036">dbus_int64_t</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00104">DBUS_UID_UNSET</a>, <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00406">DBusStat::gid</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00403">DBusStat::mode</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00409">DBusStat::mtime</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00404">DBusStat::nlink</a>, <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-sysdeps_8h_source.html#l00407">DBusStat::size</a>, <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps_8h_source.html#l00405">DBusStat::uid</a>.</p>

<p>Referenced by <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>.</p>

</div>
</div>
<a class="anchor" id="ga56de84795d6df4162ad79b3be7af7588"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_strerror_from_errno" ref="ga56de84795d6df4162ad79b3be7af7588" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* <a class="el" href="group__DBusSysdeps.html#ga56de84795d6df4162ad79b3be7af7588">_dbus_strerror_from_errno</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get error message from errno. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>_dbus_strerror(errno) </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps_8c_source.html#l00778">778</a> of file <a class="el" href="dbus-sysdeps_8c_source.html">dbus-sysdeps.c</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l00493">_dbus_close_socket()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l02223">_dbus_create_directory()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l02338">_dbus_delete_file()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01052">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01635">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01169">_dbus_poll()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l01870">_dbus_send_credentials_socket()</a>, <a class="el" href="dbus-sysdeps-win_8c_source.html#l00449">_dbus_write_socket()</a>, and <a class="el" href="dbus-sysdeps-win_8c_source.html#l00583">_dbus_write_socket_two()</a>.</p>

</div>
</div>
<a class="anchor" id="gafa79c1113fa75419dcc5ee4290e06608"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_string_get_dirname" ref="gafa79c1113fa75419dcc5ee4290e06608" args="(const DBusString *filename, DBusString *dirname)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gafa79c1113fa75419dcc5ee4290e06608">_dbus_string_get_dirname</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>dirname</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the directory name from a complete filename. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>the filename </td></tr>
    <tr><td class="paramname">dirname</td><td>string to append directory name to </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01155">1155</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c_source.html#l01357">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string-util_8c_source.html#l00090">_dbus_string_find_byte_backward()</a>, <a class="el" href="dbus-string_8c_source.html#l00545">_dbus_string_get_byte()</a>, <a class="el" href="dbus-string_8c_source.html#l00722">_dbus_string_get_length()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.</p>

</div>
</div>
<a class="anchor" id="ga73a19aaac889c47ba5f6caa5107a47a5"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_system_log" ref="ga73a19aaac889c47ba5f6caa5107a47a5" args="(DBusSystemLogSeverity severity, const char *msg,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga73a19aaac889c47ba5f6caa5107a47a5">_dbus_system_log</a> </td>
          <td>(</td>
          <td class="paramtype">DBusSystemLogSeverity&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</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>Log a message to the system log file (e.g. </p>
<p>syslog on Unix).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">severity</td><td>a severity value </td></tr>
    <tr><td class="paramname">msg</td><td>a printf-style format string </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00545">545</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00567">_dbus_system_logv()</a>.</p>

</div>
</div>
<a class="anchor" id="ga82cb5dfe162480ad15faddcf74ea0617"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_system_logv" ref="ga82cb5dfe162480ad15faddcf74ea0617" args="(DBusSystemLogSeverity severity, const char *msg, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="group__DBusSysdeps.html#ga82cb5dfe162480ad15faddcf74ea0617">_dbus_system_logv</a> </td>
          <td>(</td>
          <td class="paramtype">DBusSystemLogSeverity&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&#160;</td>
          <td class="paramname"><em>args</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Log a message to the system log file (e.g. </p>
<p>syslog on Unix).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">severity</td><td>a severity value </td></tr>
    <tr><td class="paramname">msg</td><td>a printf-style format string </td></tr>
    <tr><td class="paramname">args</td><td>arguments for the format string</td></tr>
  </table>
  </dd>
</dl>
<p>If the FATAL severity is given, this function will terminate the program with an error code. </p>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00567">567</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02410">_dbus_getpid()</a>, and <a class="el" href="dbus-sysdeps_8h_source.html#l00109">DBUS_PID_FORMAT</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00545">_dbus_system_log()</a>.</p>

</div>
</div>
<a class="anchor" id="gae7be34dbffb6458578e86c59a26d4fad"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_threads_init_platform_specific" ref="gae7be34dbffb6458578e86c59a26d4fad" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gae7be34dbffb6458578e86c59a26d4fad">_dbus_threads_init_platform_specific</a> </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize threads as in <a class="el" href="group__DBusThreads.html#ga33b6cf3b8f1e41bad5508f84758818a7" title="Initializes threads.">dbus_threads_init_default()</a>, appropriately for the platform. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> if no memory </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-pthread_8c_source.html#l00278">278</a> of file <a class="el" href="dbus-sysdeps-pthread_8c_source.html">dbus-sysdeps-pthread.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

<p>Referenced by <a class="el" href="dbus-threads_8c_source.html#l00391">dbus_threads_init()</a>.</p>

</div>
</div>
<a class="anchor" id="ga79647ec21c7edccd1510808ea0ca3779"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_unix_groups_from_uid" ref="ga79647ec21c7edccd1510808ea0ca3779" args="(dbus_uid_t uid, dbus_gid_t **group_ids, int *n_group_ids)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **&#160;</td>
          <td class="paramname"><em>group_ids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>n_group_ids</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gets all groups corresponding to the given UNIX user ID. </p>
<p>On UNIX, just calls <a class="el" href="group__DBusInternalsUtils.html#gae9408936869314101f8ea13dfa5ba968" title="Gets all groups corresponding to the given UID.">_dbus_groups_from_uid()</a>. On Windows, should always fail since we don't know any UNIX groups.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>the UID </td></tr>
    <tr><td class="paramname">group_ids</td><td>return location for array of group IDs </td></tr>
    <tr><td class="paramname">n_group_ids</td><td>return location for length of returned array </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the UID existed and we got some credentials </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01091">1091</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00388">_dbus_groups_from_uid()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="gaed2e025454364fbe31cd9b6538c9a936"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_unix_user_is_at_console" ref="gaed2e025454364fbe31cd9b6538c9a936" args="(dbus_uid_t uid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#gaed2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</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>Checks to see if the UNIX user ID is at the console. </p>
<p>Should always fail on Windows (set the error to <a class="el" href="group__DBusProtocol.html#ga33122bcaf8f5896ec222c755b6effb40" title="Requested operation isn&#39;t supported (like ENOSYS on UNIX).">DBUS_ERROR_NOT_SUPPORTED</a>).</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>UID of person to check </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if the UID is the same as the console user and there are no errors </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01108">1108</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00364">DBUS_ERROR_NOT_SUPPORTED</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga849177164bc5e73435104f57c631ed7e"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_unix_user_is_process_owner" ref="ga849177164bc5e73435104f57c631ed7e" args="(dbus_uid_t uid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a>&#160;</td>
          <td class="paramname"><em>uid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks to see if the UNIX user ID matches the UID of the process. </p>
<p>Should always return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on Windows.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">uid</td><td>the UNIX user ID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if this uid owns the process. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01123">1123</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02428">_dbus_geteuid()</a>, and <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>.</p>

</div>
</div>
<a class="anchor" id="ga31ec42cef2d15ca358e737bb5f19c5cf"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_user_at_console" ref="ga31ec42cef2d15ca358e737bb5f19c5cf" args="(const char *username, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga31ec42cef2d15ca358e737bb5f19c5cf">_dbus_user_at_console</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>username</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>Checks if user is at the console. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">username</td><td>user to check </td></tr>
    <tr><td class="paramname">error</td><td>return location for errors </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> is the user is at the consolei and there are no errors </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00644">644</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps-unix_8c_source.html#l02759">_dbus_concat_dir_and_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00632">_dbus_file_exists()</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="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>

<p>Referenced by <a class="el" href="dbus-userdb-util_8c_source.html#l00049">_dbus_is_console_user()</a>.</p>

</div>
</div>
<a class="anchor" id="ga45f661c5a089ed45233a1acabaf31964"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_verify_daemon_user" ref="ga45f661c5a089ed45233a1acabaf31964" args="(const char *user)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga45f661c5a089ed45233a1acabaf31964">_dbus_verify_daemon_user</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>user</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Verify that after the fork we can successfully change to this user. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">user</td><td>the username given in the daemon configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if username is valid </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00314">314</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-userdb-util_8c_source.html#l00199">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-string_8c_source.html#l00190">_dbus_string_init_const()</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="ga912d34a7e40b3a57864972e6d6ab65ba"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_windows_user_is_process_owner" ref="ga912d34a7e40b3a57864972e6d6ab65ba" args="(const char *windows_sid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>windows_sid</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks to see if the Windows user SID matches the owner of the process. </p>
<p>Should always return <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1" title="Expands to &quot;0&quot;.">FALSE</a> on UNIX.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">windows_sid</td><td>the Windows user SID </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d" title="Expands to &quot;1&quot;.">TRUE</a> if this user owns the process. </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l01136">1136</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="group__DBusMacros.html#gaa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#gaa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.</p>

</div>
</div>
<a class="anchor" id="ga123620ec5ce2b881786588121d6a03fd"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_write_pid_to_file_and_pipe" ref="ga123620ec5ce2b881786588121d6a03fd" args="(const DBusString *pidfile, DBusPipe *print_pid_pipe, dbus_pid_t pid_to_write, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__DBusTypes.html#ga39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> <a class="el" href="group__DBusSysdeps.html#ga123620ec5ce2b881786588121d6a03fd">_dbus_write_pid_to_file_and_pipe</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> *&#160;</td>
          <td class="paramname"><em>pidfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structDBusPipe.html">DBusPipe</a> *&#160;</td>
          <td class="paramname"><em>print_pid_pipe</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__DBusSysdeps.html#ga1eff6303266888ec466cddba6c03aa40">dbus_pid_t</a>&#160;</td>
          <td class="paramname"><em>pid_to_write</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>Writes the given pid_to_write to a pidfile (if non-NULL) and/or to a pipe (if non-NULL). </p>
<p>Does nothing if pidfile and print_pid_pipe are both NULL.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">pidfile</td><td>the file to write to or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">print_pid_pipe</td><td>the pipe to write to or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">pid_to_write</td><td>the pid to write out </td></tr>
    <tr><td class="paramname">error</td><td>error on failure </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>FALSE if error is set </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00240">240</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c_source.html">dbus-sysdeps-util-unix.c</a>.</p>

<p>References <a class="el" href="dbus-string_8c_source.html#l00918">_dbus_string_append()</a>, <a class="el" href="dbus-sysdeps_8c_source.html#l00349">_dbus_string_append_int()</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#l00722">_dbus_string_get_length()</a>, <a class="el" href="dbus-string_8c_source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-protocol_8h_source.html#l00350">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c_source.html#l00329">dbus_error_is_set()</a>, <a class="el" href="dbus-errors_8c_source.html#l00354">dbus_set_error()</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>

<p>Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c_source.html#l00087">_dbus_become_daemon()</a>.</p>

</div>
</div>
<a class="anchor" id="ga346cadd9b0f7d0ae1cd19007b2e4c2de"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_write_socket" ref="ga346cadd9b0f7d0ae1cd19007b2e4c2de" args="(int fd, const DBusString *buffer, int start, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#ga346cadd9b0f7d0ae1cd19007b2e4c2de">_dbus_write_socket</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</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>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusSysdepsUnix.html#ga3a789bcdfd3d468c2bf917fa5081b27f" title="Thin wrapper around the write() system call that writes a part of a DBusString and handles EINTR for ...">_dbus_write()</a>, but only supports sockets and is thus available on Windows. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor to write </td></tr>
    <tr><td class="paramname">buffer</td><td>the buffer to write data from </td></tr>
    <tr><td class="paramname">start</td><td>the first byte in the buffer to write </td></tr>
    <tr><td class="paramname">len</td><td>the number of bytes to try to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes written or -1 on error</dd></dl>
<p>Like <a class="el" href="group__DBusSysdepsUnix.html#ga3a789bcdfd3d468c2bf917fa5081b27f" title="Thin wrapper around the write() system call that writes a part of a DBusString and handles EINTR for ...">_dbus_write()</a>, but only supports sockets and is thus available on Windows.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor to write </td></tr>
    <tr><td class="paramname">buffer</td><td>the buffer to write data from </td></tr>
    <tr><td class="paramname">start</td><td>the first byte in the buffer to write </td></tr>
    <tr><td class="paramname">len</td><td>the number of bytes to try to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the number of bytes written or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00236">236</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00497">_dbus_string_get_const_data_len()</a>, <a class="el" href="dbus-marshal-basic_8c_source.html#l01360">_dbus_verbose_bytes_of_string()</a>, and <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00686">_dbus_write()</a>.</p>

<p>Referenced by <a class="el" href="dbus-sysdeps-win_8c_source.html#l01870">_dbus_send_credentials_socket()</a>.</p>

</div>
</div>
<a class="anchor" id="ga02da720105c2a2397b7c687c5ca81174"></a><!-- doxytag: member="dbus&#45;sysdeps.h::_dbus_write_socket_two" ref="ga02da720105c2a2397b7c687c5ca81174" args="(int fd, const DBusString *buffer1, int start1, int len1, const DBusString *buffer2, int start2, int len2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="group__DBusSysdeps.html#ga02da720105c2a2397b7c687c5ca81174">_dbus_write_socket_two</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>fd</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>buffer1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len1</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>buffer2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Like <a class="el" href="group__DBusSysdepsUnix.html#ga506a183b1f6970d1bfca165ab3de4736" title="Like _dbus_write() but will use writev() if possible to write both buffers in sequence.">_dbus_write_two()</a> but only works on sockets and is thus available on Windows. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor </td></tr>
    <tr><td class="paramname">buffer1</td><td>first buffer </td></tr>
    <tr><td class="paramname">start1</td><td>first byte to write in first buffer </td></tr>
    <tr><td class="paramname">len1</td><td>number of bytes to write from first buffer </td></tr>
    <tr><td class="paramname">buffer2</td><td>second buffer, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">start2</td><td>first byte to write in second buffer </td></tr>
    <tr><td class="paramname">len2</td><td>number of bytes to write in second buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>total bytes written from both buffers, or -1 on error</dd></dl>
<p>Like <a class="el" href="group__DBusSysdepsUnix.html#ga506a183b1f6970d1bfca165ab3de4736" title="Like _dbus_write() but will use writev() if possible to write both buffers in sequence.">_dbus_write_two()</a> but only works on sockets and is thus available on Windows.</p>
<p>The return value is the number of bytes written in the first buffer, plus the number written in the second. If the first buffer is written successfully and an error occurs writing the second, the number of bytes in the first is returned (i.e. the error is ignored), on systems that don't have writev. Handles EINTR for you. The second buffer may be <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a>.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>the file descriptor </td></tr>
    <tr><td class="paramname">buffer1</td><td>first buffer </td></tr>
    <tr><td class="paramname">start1</td><td>first byte to write in first buffer </td></tr>
    <tr><td class="paramname">len1</td><td>number of bytes to write from first buffer </td></tr>
    <tr><td class="paramname">buffer2</td><td>second buffer, or <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4" title="A null pointer, defined appropriately for C or C++.">NULL</a> </td></tr>
    <tr><td class="paramname">start2</td><td>first byte to write in second buffer </td></tr>
    <tr><td class="paramname">len2</td><td>number of bytes to write in second buffer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>total bytes written from both buffers, or -1 on error </dd></dl>

<p>Definition at line <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00547">547</a> of file <a class="el" href="dbus-sysdeps-unix_8c_source.html">dbus-sysdeps-unix.c</a>.</p>

<p>References <a class="el" href="dbus-sysdeps_8c_source.html#l00778">_dbus_strerror_from_errno()</a>, <a class="el" href="dbus-string_8c_source.html#l00497">_dbus_string_get_const_data_len()</a>, <a class="el" href="dbus-sysdeps-unix_8c_source.html#l00732">_dbus_write_two()</a>, and <a class="el" href="group__DBusMacros.html#ga070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</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>