|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21573/root/usr/share/devhelp/books/dbus/api/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>D-Bus: Utilities and portability</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li><a href="pages.html"><span>Related Pages</span></a></li>
</ul></div>
<h1>Utilities and portability<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1>Utility functions (<a class="el" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert()</a>, <a class="el" href="group__DBusInternalsUtils.html#gbea2c16d6d3fe7c4eb5b9496fc877f84">_dbus_warn()</a>, etc.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Babysitter implementation details. <a href="structDBusBabysitter.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structDBusDirIter.html">DBusDirIter</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internals of directory iterator. <a href="structDBusDirIter.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert</a>(condition)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Aborts with an error message if the condition is false. <a href="#g129c6c03f011cdc171934d5d386cc797"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g0c4961ec784874f1b1f3aeccea8d3da1">_dbus_assert_not_reached</a>(explanation)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Aborts with an error message if called. <a href="#g0c4961ec784874f1b1f3aeccea8d3da1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc153abad46f4eb80999a2b340d29d1f0">_DBUS_N_ELEMENTS</a>(array) ((int) (sizeof ((array)) / sizeof ((array)[0])))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the number of elements in a fixed-size array using sizeof(). <a href="#gc153abad46f4eb80999a2b340d29d1f0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gbbd3526a2ecd65da80b9f74ac286273d">_DBUS_POINTER_TO_INT</a>(pointer) ((long)(pointer))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Safely casts a void* to an integer; should only be used on void* that actually contain integers, for example one created with _DBUS_INT_TO_POINTER. <a href="#gbbd3526a2ecd65da80b9f74ac286273d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g05e902d8504a8a0e0b183fd2e20e329f">_DBUS_INT_TO_POINTER</a>(integer) ((void*)((long)(integer)))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Safely stuffs an integer into a pointer, to be extracted later with _DBUS_POINTER_TO_INT. <a href="#g05e902d8504a8a0e0b183fd2e20e329f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gec42589166158b1385d5f5439318cda2">_DBUS_ZERO</a>(object) (memset (&(object), '\0', sizeof ((object))))</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets all bits in an object to zero. <a href="#gec42589166158b1385d5f5439318cda2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g933ce3d9d9b9298b004f2dc5020e9448"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT16_MIN" ref="g933ce3d9d9b9298b004f2dc5020e9448" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g933ce3d9d9b9298b004f2dc5020e9448">_DBUS_INT16_MIN</a> ((<a class="el" href="group__DBusTypes.html#g51307e24d7621aae4a19be8f3d3c7c23">dbus_int16_t</a>) 0x8000)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Minimum value of type "int16". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g15a258ca83bb9819775b9f6f7a505bc4"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT16_MAX" ref="g15a258ca83bb9819775b9f6f7a505bc4" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g15a258ca83bb9819775b9f6f7a505bc4">_DBUS_INT16_MAX</a> ((<a class="el" href="group__DBusTypes.html#g51307e24d7621aae4a19be8f3d3c7c23">dbus_int16_t</a>) 0x7fff)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "int16". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb59f93488de3d91c4e1a2c5e5e116354"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_UINT16_MAX" ref="gb59f93488de3d91c4e1a2c5e5e116354" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gb59f93488de3d91c4e1a2c5e5e116354">_DBUS_UINT16_MAX</a> ((<a class="el" href="group__DBusTypes.html#g8132d71032da957f08ce4e0ec87f2063">dbus_uint16_t</a>)0xffff)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "uint16". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc1f9d5e99c5f797b38b41b66e9c6c4ed"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT32_MIN" ref="gc1f9d5e99c5f797b38b41b66e9c6c4ed" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc1f9d5e99c5f797b38b41b66e9c6c4ed">_DBUS_INT32_MIN</a> ((<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>) 0x80000000)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Minimum value of type "int32". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfe869e3145b7e32c4fb6a6741c9fc78e"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT32_MAX" ref="gfe869e3145b7e32c4fb6a6741c9fc78e" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gfe869e3145b7e32c4fb6a6741c9fc78e">_DBUS_INT32_MAX</a> ((<a class="el" href="group__DBusTypes.html#gb18afa60e9b17b6e322735bda3d863d8">dbus_int32_t</a>) 0x7fffffff)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "int32". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc85046b2af0a98c51bb93300f99448da"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_UINT32_MAX" ref="gc85046b2af0a98c51bb93300f99448da" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc85046b2af0a98c51bb93300f99448da">_DBUS_UINT32_MAX</a> ((<a class="el" href="group__DBusTypes.html#gf513803b030613a669cc7ef199f90a8b">dbus_uint32_t</a>)0xffffffff)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "uint32". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3bf800f1b6cc23f80006861d7417c8c8"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT_MIN" ref="g3bf800f1b6cc23f80006861d7417c8c8" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g3bf800f1b6cc23f80006861d7417c8c8">_DBUS_INT_MIN</a> _DBUS_INT32_MIN</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Minimum value of type "int". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5627db5e165848477e620846f6414db1"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_INT_MAX" ref="g5627db5e165848477e620846f6414db1" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g5627db5e165848477e620846f6414db1">_DBUS_INT_MAX</a> _DBUS_INT32_MAX</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "int". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6e9cfa6e6cb608d29fbdc4a50baea051"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_UINT_MAX" ref="g6e9cfa6e6cb608d29fbdc4a50baea051" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g6e9cfa6e6cb608d29fbdc4a50baea051">_DBUS_UINT_MAX</a> _DBUS_UINT32_MAX</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum value of type "uint". <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gde571435b55fae64217f5142aa78ee8d"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_LOCK_NAME" ref="gde571435b55fae64217f5142aa78ee8d" args="(name)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gde571435b55fae64217f5142aa78ee8d">_DBUS_LOCK_NAME</a>(name) _dbus_lock_##name</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Expands to name of a global lock variable. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc8d22e9846ecc2845959082076de899b">_DBUS_DEFINE_GLOBAL_LOCK</a>(name) <a class="el" href="group__DBusThreads.html#g4eb021cd6cd0830423eac2738e0ddc40">DBusMutex</a> *_dbus_lock_##name</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Defines a global lock variable with the given name. <a href="#gc8d22e9846ecc2845959082076de899b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ge625b69e69aedb3b30bff23d4edcf690">_DBUS_DECLARE_GLOBAL_LOCK</a>(name) extern <a class="el" href="group__DBusThreads.html#g4eb021cd6cd0830423eac2738e0ddc40">DBusMutex</a> *_dbus_lock_##name</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Expands to declaration of a global lock defined with _DBUS_DEFINE_GLOBAL_LOCK. <a href="#ge625b69e69aedb3b30bff23d4edcf690"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3b56fdb9df58277ee69d9f56a73bf383"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_LOCK" ref="g3b56fdb9df58277ee69d9f56a73bf383" args="(name)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g3b56fdb9df58277ee69d9f56a73bf383">_DBUS_LOCK</a>(name) _dbus_mutex_lock (_dbus_lock_##name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Locks a global lock. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1b7db80a2ea11235768ec8aa698df0a5"></a><!-- doxytag: member="DBusInternalsUtils::_DBUS_UNLOCK" ref="g1b7db80a2ea11235768ec8aa698df0a5" args="(name)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g1b7db80a2ea11235768ec8aa698df0a5">_DBUS_UNLOCK</a>(name) _dbus_mutex_unlock (_dbus_lock_##name)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unlocks a global lock. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf3ce8172242a1766bdd5cfe4b0a05d1f"></a><!-- doxytag: member="DBusInternalsUtils::LIVE_CHILDREN" ref="gf3ce8172242a1766bdd5cfe4b0a05d1f" args="(sitter)" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf3ce8172242a1766bdd5cfe4b0a05d1f">LIVE_CHILDREN</a>(sitter) ((sitter)->socket_to_babysitter >= 0 || (sitter)->error_pipe_from_child >= 0)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Macro returns <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the babysitter still has live sockets open to the babysitter child or the grandchild. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2469c53816dc077f9deefb187ffcabf3"></a><!-- doxytag: member="DBusInternalsUtils::READ_END" ref="g2469c53816dc077f9deefb187ffcabf3" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g2469c53816dc077f9deefb187ffcabf3">READ_END</a> 0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Helps remember which end of the pipe is which. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g2efd706d915e621e5e18b3f0803c4ed2"></a><!-- doxytag: member="DBusInternalsUtils::WRITE_END" ref="g2efd706d915e621e5e18b3f0803c4ed2" args="" -->
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g2efd706d915e621e5e18b3f0803c4ed2">WRITE_END</a> 1</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Helps remember which end of the pipe is which. <br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gadf9d45082dd1c9f59d8420d13492669"></a><!-- doxytag: member="DBusInternalsUtils::DBusForeachFunction" ref="gadf9d45082dd1c9f59d8420d13492669" args="(void *element, void *data)" -->
typedef void(*) </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gadf9d45082dd1c9f59d8420d13492669">DBusForeachFunction</a> (void *element, void *data)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Used to iterate over each item in a collection, such as a <a class="el" href="structDBusList.html">DBusList</a>. <br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ga1d634db87605c2a83f2750ce6052653">ReadStatus</a> { <a class="el" href="group__DBusInternalsUtils.html#gga1d634db87605c2a83f2750ce6052653105d3aa9ec19f4c060b39c7fafba39ff">READ_STATUS_OK</a>,
<a class="el" href="group__DBusInternalsUtils.html#gga1d634db87605c2a83f2750ce6052653d13164fb31fb0b5bc1ec802d09d10411">READ_STATUS_ERROR</a>,
<a class="el" href="group__DBusInternalsUtils.html#gga1d634db87605c2a83f2750ce60526537d65492f3f0d09176ac4504987457d23">READ_STATUS_EOF</a>
}</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Enumeration for status of a read(). <a href="group__DBusInternalsUtils.html#ga1d634db87605c2a83f2750ce6052653">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom">{ <b>CHILD_EXITED</b>,
<b>CHILD_FORK_FAILED</b>,
<b>CHILD_EXEC_FAILED</b>,
<b>CHILD_PID</b>
}</td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gbea2c16d6d3fe7c4eb5b9496fc877f84">_dbus_warn</a> (const char *format,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Prints a warning message to stderr. <a href="#gbea2c16d6d3fe7c4eb5b9496fc877f84"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g63f2f8a068454b781f214ba596e313b4">_dbus_warn_check_failed</a> (const char *format,...)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Prints a "critical" warning to stderr when an assertion fails; differs from _dbus_warn primarily in that it prefixes the pid and defaults to fatal. <a href="#g63f2f8a068454b781f214ba596e313b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g9d00d77f6595b9d7ac1baf59d44bf58c">_dbus_strdup</a> (const char *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Duplicates a string. <a href="#g9d00d77f6595b9d7ac1baf59d44bf58c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gad95864dca5140b730bc143cb2d1b024">_dbus_memdup</a> (const void *mem, size_t n_bytes)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Duplicates a block of memory. <a href="#gad95864dca5140b730bc143cb2d1b024"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char ** </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g53bbcbbd0b564c14c599813dde535443">_dbus_dup_string_array</a> (const char **array)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Duplicates a string array. <a href="#g53bbcbbd0b564c14c599813dde535443"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g751119e7273225a7e59787445b71fcd6">_dbus_string_array_contains</a> (const char **array, const char *str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether a string array contains the given string. <a href="#g751119e7273225a7e59787445b71fcd6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g08c2922335845e5c857e88399436b9ba">_dbus_generate_uuid</a> (<a class="el" href="unionDBusGUID.html">DBusGUID</a> *uuid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates a new UUID. <a href="#g08c2922335845e5c857e88399436b9ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf08364813376bd2d8f455d435d85323e">_dbus_uuid_encode</a> (const <a class="el" href="unionDBusGUID.html">DBusGUID</a> *uuid, <a class="el" href="structDBusString.html">DBusString</a> *encoded)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Hex-encode a UUID. <a href="#gf08364813376bd2d8f455d435d85323e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g709fd30e6b940a5952af38efaf24ad51">_dbus_read_uuid_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, <a class="el" href="unionDBusGUID.html">DBusGUID</a> *uuid, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> create_if_not_found, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads (and optionally writes) a uuid to a file. <a href="#g709fd30e6b940a5952af38efaf24ad51"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g49ba67405d677af6cde9329ed87ea91f">_dbus_get_local_machine_uuid_encoded</a> (<a class="el" href="structDBusString.html">DBusString</a> *uuid_str)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the hex-encoded UUID of the machine this function is executed on. <a href="#g49ba67405d677af6cde9329ed87ea91f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g525b5fdb780ddf6891918466965e6eb6">_dbus_babysitter_ref</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Increment the reference count on the babysitter object. <a href="#g525b5fdb780ddf6891918466965e6eb6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g3205e9f8672271794aeb9d451e2fcc4a">_dbus_babysitter_unref</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrement the reference count on the babysitter object. <a href="#g3205e9f8672271794aeb9d451e2fcc4a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gcdc9c49735d6ce8364647c1961aa8d2b">_dbus_babysitter_kill_child</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Blocks until the babysitter process gives us the PID of the spawned grandchild, then kills the spawned grandchild. <a href="#gcdc9c49735d6ce8364647c1961aa8d2b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g5c463ea356ea62055a35211e8d81f8b9">_dbus_babysitter_get_child_exited</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the child has exited, without blocking. <a href="#g5c463ea356ea62055a35211e8d81f8b9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g1b17eec3f7915c21251685e16123f299">_dbus_babysitter_get_child_exit_status</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter, int *status)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the exit status of the child. <a href="#g1b17eec3f7915c21251685e16123f299"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g9c6f92a67e41f08d8eb254e294fd0378">_dbus_babysitter_set_child_exit_error</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the <a class="el" href="structDBusError.html">DBusError</a> with an explanation of why the spawned child process exited (on a signal, or whatever). <a href="#g9c6f92a67e41f08d8eb254e294fd0378"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g5f467b14f0c2f667e46c4ba786808e5b">_dbus_babysitter_set_watch_functions</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> *sitter, <a class="el" href="group__DBusConnection.html#g985b712fc165afa66e5901859b68b9de">DBusAddWatchFunction</a> add_function, <a class="el" href="group__DBusConnection.html#g6a48c42c4bde24911cae7fda0d1f1589">DBusRemoveWatchFunction</a> remove_function, <a class="el" href="group__DBusConnection.html#gfa7e0f7856f8ebbe66475979ef54ed9e">DBusWatchToggledFunction</a> toggled_function, void *data, <a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> free_data_function)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets watch functions to notify us when the babysitter object needs to read/write file descriptors. <a href="#g5f467b14f0c2f667e46c4ba786808e5b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g84c21bbcb2a673244f36616c5e053277">_dbus_spawn_async_with_babysitter</a> (<a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> **sitter_p, char **argv, char **env, DBusSpawnChildSetupFunc child_setup, void *user_data, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Spawns a new process. <a href="#g84c21bbcb2a673244f36616c5e053277"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g4d4f9b1d4e78ba017ada75a6982ac173">_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)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Does the chdir, fork, setsid, etc. <a href="#g4d4f9b1d4e78ba017ada75a6982ac173"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g7461c6fa553c30f4eb8482675e86668c">_dbus_write_pid_file</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename, unsigned long pid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a file containing the process ID. <a href="#g7461c6fa553c30f4eb8482675e86668c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g45f661c5a089ed45233a1acabaf31964">_dbus_verify_daemon_user</a> (const char *user)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Verify that after the fork we can successfully change to this user. <a href="#g45f661c5a089ed45233a1acabaf31964"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g82c920a8c3b5958ba1ecf8e5f5d6373b">_dbus_change_to_daemon_user</a> (const char *user, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Changes the user and group the bus is running as. <a href="#g82c920a8c3b5958ba1ecf8e5f5d6373b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g4aa7500366dad2dd6d3fa97b3aa7165b">_dbus_set_signal_handler</a> (int sig, <a class="el" href="group__DBusSysdeps.html#gdd0067ae8ae20e747b818697395d420f">DBusSignalHandler</a> handler)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Installs a UNIX signal handler. <a href="#g4aa7500366dad2dd6d3fa97b3aa7165b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g3bc1512aef42cea17a2aaacc7d8e7211">_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"> </td><td class="mdescRight">Removes a directory; Directory must be empty. <a href="#g3bc1512aef42cea17a2aaacc7d8e7211"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g13a527e32c05b63e8b32a63d728e20e8">_dbus_file_exists</a> (const char *file)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">File/directory interface. <a href="#g13a527e32c05b63e8b32a63d728e20e8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g31ec42cef2d15ca358e737bb5f19c5cf">_dbus_user_at_console</a> (const char *username, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if user is at the console. <a href="#g31ec42cef2d15ca358e737bb5f19c5cf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g6d80876bcae54f47cde79d0bce20321d">_dbus_path_is_absolute</a> (const <a class="el" href="structDBusString.html">DBusString</a> *filename)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks whether the filename is an absolute path. <a href="#g6d80876bcae54f47cde79d0bce20321d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g04e98ad0e3a181f0a5921a4cbc49cf08">_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"> </td><td class="mdescRight">stat() wrapper. <a href="#g04e98ad0e3a181f0a5921a4cbc49cf08"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gaf6eb8179fb6ea2175ed9742a0c8be68">_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"> </td><td class="mdescRight">Open a directory to iterate over. <a href="#gaf6eb8179fb6ea2175ed9742a0c8be68"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gb9a2ddb130da035d6186f2d96bf37cb4">_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"> </td><td class="mdescRight">Get next file in the directory. <a href="#gb9a2ddb130da035d6186f2d96bf37cb4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1821b64302fe8e12278fa227eb11d393"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_directory_close" ref="g1821b64302fe8e12278fa227eb11d393" args="(DBusDirIter *iter)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g1821b64302fe8e12278fa227eb11d393">_dbus_directory_close</a> (<a class="el" href="structDBusDirIter.html">DBusDirIter</a> *iter)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a directory iteration. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g23814bdf1859c6aa52da1feab8f1aed4">_dbus_group_info_fill</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info, const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group name. <a href="#g23814bdf1859c6aa52da1feab8f1aed4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gd235e373b223982b7d3aba8a2b602b58">_dbus_group_info_fill_gid</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> gid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group ID. <a href="#gd235e373b223982b7d3aba8a2b602b58"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g437470fc327b0169fc14a0b66a6e5278">_dbus_parse_unix_user_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse a UNIX user from the bus config file. <a href="#g437470fc327b0169fc14a0b66a6e5278"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g96da816095ec7fec07136a6019745bcb">_dbus_parse_unix_group_from_config</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse a UNIX group from the bus config file. <a href="#g96da816095ec7fec07136a6019745bcb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g79647ec21c7edccd1510808ea0ca3779">_dbus_unix_groups_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **group_ids, int *n_group_ids)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets all groups corresponding to the given UNIX user ID. <a href="#g79647ec21c7edccd1510808ea0ca3779"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ged2e025454364fbe31cd9b6538c9a936">_dbus_unix_user_is_at_console</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks to see if the UNIX user ID is at the console. <a href="#ged2e025454364fbe31cd9b6538c9a936"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g849177164bc5e73435104f57c631ed7e">_dbus_unix_user_is_process_owner</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks to see if the UNIX user ID matches the UID of the process. <a href="#g849177164bc5e73435104f57c631ed7e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g912d34a7e40b3a57864972e6d6ab65ba">_dbus_windows_user_is_process_owner</a> (const char *windows_sid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks to see if the Windows user SID matches the owner of the process. <a href="#g912d34a7e40b3a57864972e6d6ab65ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gfb4454c18ee8e5bcc20dbccd93e1d9ba"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_generate_pseudorandom_bytes_buffer" ref="gfb4454c18ee8e5bcc20dbccd93e1d9ba" args="(char *buffer, int n_bytes)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gfb4454c18ee8e5bcc20dbccd93e1d9ba">_dbus_generate_pseudorandom_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Random numbers. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ga32f87746e9264b2425736043d02fad4">_dbus_generate_random_bytes_buffer</a> (char *buffer, int n_bytes)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Fills n_bytes of the given buffer with random bytes. <a href="#ga32f87746e9264b2425736043d02fad4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g709ce349c6ee05263850444fb4e0177d">_dbus_generate_random_ascii</a> (<a class="el" href="structDBusString.html">DBusString</a> *str, int n_bytes)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Generates the given number of random bytes, where the bytes are chosen from the alphanumeric ASCII subset. <a href="#g709ce349c6ee05263850444fb4e0177d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g2212aa0e5732257598a6597748c658e4">_dbus_error_from_errno</a> (int error_number)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts a UNIX or Windows errno into a <a class="el" href="structDBusError.html">DBusError</a> name. <a href="#g2212aa0e5732257598a6597748c658e4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf0f4cb7f145fe1f48f5302277560407a"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_set_errno_to_zero" ref="gf0f4cb7f145fe1f48f5302277560407a" args="(void)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf0f4cb7f145fe1f48f5302277560407a">_dbus_set_errno_to_zero</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Assign 0 to the global errno variable. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gb9ccdfee5c7986ff236a6cde66a9af2f">_dbus_get_is_errno_nonzero</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">See if errno is set. <a href="#gb9ccdfee5c7986ff236a6cde66a9af2f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gec2ce24907adaedd1bf88bb28d82c96d">_dbus_get_is_errno_enomem</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">See if errno is ENOMEM. <a href="#gec2ce24907adaedd1bf88bb28d82c96d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g08e67a10b197995c101c89f248c24105">_dbus_get_is_errno_eintr</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">See if errno is EINTR. <a href="#g08e67a10b197995c101c89f248c24105"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g56de84795d6df4162ad79b3be7af7588">_dbus_strerror_from_errno</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get error message from errno. <a href="#g56de84795d6df4162ad79b3be7af7588"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ga504db352a939909051a494d06c5b607">_dbus_is_console_user</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks to see if the UID sent in is the console user. <a href="#ga504db352a939909051a494d06c5b607"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf07ee24eddcb3b0f85fa54196bc44fe1">_dbus_get_user_id</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets user ID given username. <a href="#gf07ee24eddcb3b0f85fa54196bc44fe1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g90657adefa9bbac9b35eee63dd46a854">_dbus_get_group_id</a> (const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets group ID given groupname. <a href="#g90657adefa9bbac9b35eee63dd46a854"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc82f42ff83fabbde717cc08569265e6e">_dbus_get_user_id_and_primary_group</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid_p, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> *gid_p)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets user ID and primary group given username. <a href="#gc82f42ff83fabbde717cc08569265e6e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf6b7452691c0c7d11fec4b9214137052">_dbus_user_database_lookup_group</a> (DBusUserDatabase *db, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> gid, const <a class="el" href="structDBusString.html">DBusString</a> *groupname, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up a gid or group name in the user database. <a href="#gf6b7452691c0c7d11fec4b9214137052"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gd370299b907799440331c47e8d2357e0">_dbus_user_database_get_groupname</a> (DBusUserDatabase *db, const <a class="el" href="structDBusString.html">DBusString</a> *groupname, const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the user information for the given group name, returned group info should not be freed. <a href="#gd370299b907799440331c47e8d2357e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g70d3fd2edd61c69edc6f7fe1d5cfa6ea">_dbus_user_database_get_gid</a> (DBusUserDatabase *db, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> gid, const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the user information for the given GID, returned group info should not be freed. <a href="#g70d3fd2edd61c69edc6f7fe1d5cfa6ea"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ge9408936869314101f8ea13dfa5ba968">_dbus_groups_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> **group_ids, int *n_group_ids)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets all groups corresponding to the given UID. <a href="#ge9408936869314101f8ea13dfa5ba968"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gf725ba6f380a3b926650626eef714b67">_dbus_user_info_free_allocated</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the given <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a>'s members with <a class="el" href="group__DBusSysdepsUnix.html#ga40334f7b4f185a437a8bc6d6e0994a1">_dbus_user_info_free()</a> and also calls <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a> on the block itself. <a href="#gf725ba6f380a3b926650626eef714b67"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gb9420d7a4a31329a00fd5709f8cf08ba">_dbus_group_info_free_allocated</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a>'s members with <a class="el" href="group__DBusSysdepsUnix.html#gc2d226476e6fff50bdfaace18b897fe9">_dbus_group_info_free()</a> and also calls <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a> on the block itself. <a href="#gb9420d7a4a31329a00fd5709f8cf08ba"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#ga40334f7b4f185a437a8bc6d6e0994a1">_dbus_user_info_free</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the members of info (but not info itself). <a href="#ga40334f7b4f185a437a8bc6d6e0994a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gc2d226476e6fff50bdfaace18b897fe9">_dbus_group_info_free</a> (<a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> *info)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees the members of info (but not info itself). <a href="#gc2d226476e6fff50bdfaace18b897fe9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gd1c3538c544df91f438a13c9fb4d3a1b">_dbus_is_a_number</a> (const <a class="el" href="structDBusString.html">DBusString</a> *str, unsigned long *num)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if a given string is actually a number and converts it if it is. <a href="#gd1c3538c544df91f438a13c9fb4d3a1b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g959372f7d7cdea35ffbac3b78e29a1b0">_dbus_user_database_lookup</a> (DBusUserDatabase *db, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Looks up a uid or username in the user database. <a href="#g959372f7d7cdea35ffbac3b78e29a1b0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd670eb00ca49ee18fe1c526d440131b7"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_user_database_lock_system" ref="gd670eb00ca49ee18fe1c526d440131b7" args="(void)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gd670eb00ca49ee18fe1c526d440131b7">_dbus_user_database_lock_system</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Locks global system user database. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g468e1d62e1df24bb699c4a37fdfa274c"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_user_database_unlock_system" ref="g468e1d62e1df24bb699c4a37fdfa274c" args="(void)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g468e1d62e1df24bb699c4a37fdfa274c">_dbus_user_database_unlock_system</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unlocks global system user database. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DBusUserDatabase * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g79b6c3cf0d735622b6af2795840f9d21">_dbus_user_database_get_system</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the system global user database; must be called with lock held (<a class="el" href="group__DBusInternalsUtils.html#gd670eb00ca49ee18fe1c526d440131b7">_dbus_user_database_lock_system()</a>). <a href="#g79b6c3cf0d735622b6af2795840f9d21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g788ce7775d7f812d28d931e8b87ddfde"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_user_database_flush_system" ref="g788ce7775d7f812d28d931e8b87ddfde" args="(void)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g788ce7775d7f812d28d931e8b87ddfde">_dbus_user_database_flush_system</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flushes the system global user database;. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g9c4c1850787bfd457107b95fa1878869">_dbus_username_from_current_process</a> (const <a class="el" href="structDBusString.html">DBusString</a> **username)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets username of user owning current process. <a href="#g9c4c1850787bfd457107b95fa1878869"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g17ce3ab061a3ae2441cd33ece34f5e7a">_dbus_homedir_from_current_process</a> (const <a class="el" href="structDBusString.html">DBusString</a> **homedir)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets homedir of user owning current process. <a href="#g17ce3ab061a3ae2441cd33ece34f5e7a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g91c63dcb68d38347578edf39eda1712a">_dbus_homedir_from_username</a> (const <a class="el" href="structDBusString.html">DBusString</a> *username, <a class="el" href="structDBusString.html">DBusString</a> *homedir)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the home directory for the given user. <a href="#g91c63dcb68d38347578edf39eda1712a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gbdd1dc47f44e3d6702c86c68da9a0173">_dbus_homedir_from_uid</a> (<a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, <a class="el" href="structDBusString.html">DBusString</a> *homedir)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the home directory for the given user. <a href="#gbdd1dc47f44e3d6702c86c68da9a0173"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gcecdbb00a3c8b63e821edae537ae3c7b">_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"> </td><td class="mdescRight">Adds the credentials corresponding to the given username. <a href="#gcecdbb00a3c8b63e821edae537ae3c7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DBusUserDatabase * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g1dbf2c80952d17707c544f5d86dd8545">_dbus_user_database_new</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a new user database object used to look up and cache user information. <a href="#g1dbf2c80952d17707c544f5d86dd8545"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gb553751e96f8506d10349fb5fb1eaa82"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_user_database_flush" ref="gb553751e96f8506d10349fb5fb1eaa82" args="(DBusUserDatabase *db)" -->
void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gb553751e96f8506d10349fb5fb1eaa82">_dbus_user_database_flush</a> (DBusUserDatabase *db)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flush all information out of the user database. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g55dbb78c415da040037442eca4c4e80e">_dbus_user_database_unref</a> (DBusUserDatabase *db)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Decrements refcount of user database. <a href="#g55dbb78c415da040037442eca4c4e80e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g6a7e8b8cf3a6968972e9a49726022638">_dbus_user_database_get_uid</a> (DBusUserDatabase *db, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> uid, const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the user information for the given UID, returned user info should not be freed. <a href="#g6a7e8b8cf3a6968972e9a49726022638"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#gccf1d5b330707a1835dcf4ce49a29c8c">_dbus_user_database_get_username</a> (DBusUserDatabase *db, const <a class="el" href="structDBusString.html">DBusString</a> *username, const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> **info, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the user information for the given username. <a href="#gccf1d5b330707a1835dcf4ce49a29c8c"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g34ea28d688e524b6eefa9698b1940fc4"></a><!-- doxytag: member="DBusInternalsUtils::_dbus_no_memory_message" ref="g34ea28d688e524b6eefa9698b1940fc4" args="[]" -->
const char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g34ea28d688e524b6eefa9698b1940fc4">_dbus_no_memory_message</a> [] = "Not enough memory"</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Fixed "out of memory" error message, just to avoid making up a different string every time and wasting space. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusInternalsUtils.html#g7599f9e4a6b9551b28e68b51b66851d3">_dbus_return_if_fail_warning_format</a> []</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">String used in _dbus_return_if_fail macro. <a href="#g7599f9e4a6b9551b28e68b51b66851d3"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Utility functions (<a class="el" href="group__DBusInternalsUtils.html#g129c6c03f011cdc171934d5d386cc797">_dbus_assert()</a>, <a class="el" href="group__DBusInternalsUtils.html#gbea2c16d6d3fe7c4eb5b9496fc877f84">_dbus_warn()</a>, etc.
<p>
) <hr><h2>Define Documentation</h2>
<a class="anchor" name="g129c6c03f011cdc171934d5d386cc797"></a><!-- doxytag: member="dbus-internals.h::_dbus_assert" ref="g129c6c03f011cdc171934d5d386cc797" args="(condition)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _dbus_assert </td>
<td>(</td>
<td class="paramtype">condition </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Aborts with an error message if the condition is false.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>condition</em> </td><td>condition which must be true. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00109">109</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-auth_8c-source.html#l02580">_dbus_auth_decode_data()</a>, <a class="el" href="dbus-auth_8c-source.html#l02517">_dbus_auth_encode_data()</a>, <a class="el" href="dbus-auth_8c-source.html#l02417">_dbus_auth_get_buffer()</a>, <a class="el" href="dbus-auth_8c-source.html#l02372">_dbus_auth_get_bytes_to_send()</a>, <a class="el" href="dbus-auth_8c-source.html#l02654">_dbus_auth_get_guid_from_server()</a>, <a class="el" href="dbus-auth_8c-source.html#l02630">_dbus_auth_get_identity()</a>, <a class="el" href="dbus-auth_8c-source.html#l02228">_dbus_auth_ref()</a>, <a class="el" href="dbus-auth_8c-source.html#l02436">_dbus_auth_return_buffer()</a>, <a class="el" href="dbus-auth_8c-source.html#l02243">_dbus_auth_unref()</a>, <a class="el" href="dbus-spawn_8c-source.html#l00245">_dbus_babysitter_ref()</a>, <a class="el" href="dbus-spawn_8c-source.html#l00264">_dbus_babysitter_unref()</a>, <a class="el" href="dbus-connection_8c-source.html#l02218">_dbus_connection_block_pending_call()</a>, <a class="el" href="dbus-connection_8c-source.html#l02017">_dbus_connection_close_if_only_one_ref()</a>, <a class="el" href="dbus-connection_8c-source.html#l01801">_dbus_connection_close_possibly_shared()</a>, <a class="el" href="dbus-connection_8c-source.html#l00585">_dbus_connection_message_sent()</a>, <a class="el" href="dbus-connection_8c-source.html#l00447">_dbus_connection_queue_received_message_link()</a>, <a class="el" href="dbus-connection_8c-source.html#l01326">_dbus_connection_ref_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l01969">_dbus_connection_send_and_unlock()</a>, <a class="el" href="dbus-connection_8c-source.html#l00740">_dbus_connection_toggle_watch_unlocked()</a>, <a class="el" href="dbus-connection_8c-source.html#l01350">_dbus_connection_unref_unlocked()</a>, <a class="el" href="dbus-resources_8c-source.html#l00102">_dbus_counter_ref()</a>, <a class="el" href="dbus-resources_8c-source.html#l00118">_dbus_counter_unref()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01634">_dbus_credentials_add_from_current_process()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00112">_dbus_credentials_ref()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00124">_dbus_credentials_unref()</a>, <a class="el" href="dbus-dataslot_8c-source.html#l00067">_dbus_data_slot_allocator_alloc()</a>, <a class="el" href="dbus-dataslot_8c-source.html#l00163">_dbus_data_slot_allocator_free()</a>, <a class="el" href="dbus-dataslot_8c-source.html#l00296">_dbus_data_slot_list_get()</a>, <a class="el" href="dbus-dataslot_8c-source.html#l00235">_dbus_data_slot_list_set()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l01058">_dbus_decompose_path()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00860">_dbus_generate_random_ascii()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02710">_dbus_get_tmpdir()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00354">_dbus_groups_from_uid()</a>, <a class="el" href="dbus-hash_8c-source.html#l00672">_dbus_hash_iter_get_int_key()</a>, <a class="el" href="dbus-hash_8c-source.html#l00709">_dbus_hash_iter_get_string_key()</a>, <a class="el" href="dbus-hash_8c-source.html#l00691">_dbus_hash_iter_get_ulong_key()</a>, <a class="el" href="dbus-hash_8c-source.html#l00626">_dbus_hash_iter_get_value()</a>, <a class="el" href="dbus-hash_8c-source.html#l00530">_dbus_hash_iter_init()</a>, <a class="el" href="dbus-hash_8c-source.html#l00773">_dbus_hash_iter_lookup()</a>, <a class="el" href="dbus-hash_8c-source.html#l00556">_dbus_hash_iter_next()</a>, <a class="el" href="dbus-hash_8c-source.html#l00605">_dbus_hash_iter_remove_entry()</a>, <a class="el" href="dbus-hash_8c-source.html#l00649">_dbus_hash_iter_set_value()</a>, <a class="el" href="dbus-hash_8c-source.html#l01643">_dbus_hash_table_free_preallocated_entry()</a>, <a class="el" href="dbus-hash_8c-source.html#l01508">_dbus_hash_table_insert_int()</a>, <a class="el" href="dbus-hash_8c-source.html#l01431">_dbus_hash_table_insert_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01670">_dbus_hash_table_insert_string_preallocated()</a>, <a class="el" href="dbus-hash_8c-source.html#l01593">_dbus_hash_table_insert_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l01202">_dbus_hash_table_lookup_int()</a>, <a class="el" href="dbus-hash_8c-source.html#l01150">_dbus_hash_table_lookup_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01255">_dbus_hash_table_lookup_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l00292">_dbus_hash_table_new()</a>, <a class="el" href="dbus-hash_8c-source.html#l01337">_dbus_hash_table_remove_int()</a>, <a class="el" href="dbus-hash_8c-source.html#l01279">_dbus_hash_table_remove_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01396">_dbus_hash_table_remove_ulong()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00514">_dbus_header_create()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01382">_dbus_header_delete_field()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01317">_dbus_header_get_field_basic()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00368">_dbus_header_get_message_type()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00656">_dbus_header_have_message_untrusted()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00948">_dbus_header_load()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l00386">_dbus_header_set_serial()</a>, <a class="el" href="dbus-keyring_8c-source.html#l00713">_dbus_keyring_new_for_credentials()</a>, <a class="el" href="dbus-list_8c-source.html#l00727">_dbus_list_copy()</a>, <a class="el" href="dbus-marshal-byteswap_8c-source.html#l00220">_dbus_marshal_byteswap()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00465">_dbus_marshal_read_uint32()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00382">_dbus_marshal_set_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">_dbus_marshal_skip_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00793">_dbus_marshal_write_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01022">_dbus_marshal_write_fixed_multi()</a>, <a class="el" href="dbus-mempool_8c-source.html#l00208">_dbus_mem_pool_alloc()</a>, <a class="el" href="dbus-mempool_8c-source.html#l00336">_dbus_mem_pool_dealloc()</a>, <a class="el" href="dbus-mempool_8c-source.html#l00136">_dbus_mem_pool_new()</a>, <a class="el" href="dbus-message_8c-source.html#l00152">_dbus_message_get_network_data()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-message_8c-source.html#l03387">_dbus_message_loader_get_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l03714">_dbus_message_loader_get_is_corrupted()</a>, <a class="el" href="dbus-message_8c-source.html#l03592">_dbus_message_loader_queue_messages()</a>, <a class="el" href="dbus-message_8c-source.html#l03408">_dbus_message_loader_return_buffer()</a>, <a class="el" href="dbus-message_8c-source.html#l00285">_dbus_message_lock()</a>, <a class="el" href="dbus-message_8c-source.html#l00253">_dbus_message_remove_size_counter()</a>, <a class="el" href="dbus-message_8c-source.html#l00170">_dbus_message_set_serial()</a>, <a class="el" href="dbus-threads_8c-source.html#l00088">_dbus_mutex_new_at_location()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00899">_dbus_object_tree_get_user_data_unlocked()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00127">_dbus_object_tree_ref()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00385">_dbus_object_tree_register()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00141">_dbus_object_tree_unref()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00428">_dbus_object_tree_unregister_and_unlock()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00186">_dbus_pending_call_complete()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00305">_dbus_pending_call_get_connection_and_lock()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00320">_dbus_pending_call_get_connection_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00275">_dbus_pending_call_get_reply_serial_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00261">_dbus_pending_call_get_timeout_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00230">_dbus_pending_call_is_timeout_added_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00091">_dbus_pending_call_new_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00210">_dbus_pending_call_queue_timeout_error_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00289">_dbus_pending_call_set_reply_serial_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00154">_dbus_pending_call_set_reply_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00245">_dbus_pending_call_set_timeout_added_unlocked()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00433">_dbus_pending_call_unref_and_unlock()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">_dbus_read()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01112">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-server_8c-source.html#l00168">_dbus_server_finalize_base()</a>, <a class="el" href="dbus-server_8c-source.html#l00432">_dbus_server_ref_unlocked()</a>, <a class="el" href="dbus-server_8c-source.html#l00299">_dbus_server_toggle_watch()</a>, <a class="el" href="dbus-server_8c-source.html#l00454">_dbus_server_unref_unlocked()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00104">_dbus_setenv()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l01253">_dbus_string_append_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00697">_dbus_string_copy_data()</a>, <a class="el" href="dbus-string_8c-source.html#l01567">_dbus_string_copy_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00721">_dbus_string_copy_to_buffer()</a>, <a class="el" href="dbus-string_8c-source.html#l01382">_dbus_string_delete()</a>, <a class="el" href="dbus-string-util_8c-source.html#l00045">_dbus_string_ends_with_c_str()</a>, <a class="el" href="dbus-string_8c-source.html#l02333">_dbus_string_equal_c_str()</a>, <a class="el" href="dbus-string_8c-source.html#l02285">_dbus_string_equal_substring()</a>, <a class="el" href="dbus-string_8c-source.html#l01944">_dbus_string_find_blank()</a>, <a class="el" href="dbus-string-util_8c-source.html#l00089">_dbus_string_find_byte_backward()</a>, <a class="el" href="dbus-string_8c-source.html#l01806">_dbus_string_find_eol()</a>, <a class="el" href="dbus-string_8c-source.html#l01876">_dbus_string_find_to()</a>, <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00985">_dbus_string_get_dirname()</a>, <a class="el" href="dbus-string_8c-source.html#l02492">_dbus_string_hex_decode()</a>, <a class="el" href="dbus-string_8c-source.html#l02442">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-string_8c-source.html#l00229">_dbus_string_init_const_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00131">_dbus_string_init_preallocated()</a>, <a class="el" href="dbus-string_8c-source.html#l01140">_dbus_string_insert_8_aligned()</a>, <a class="el" href="dbus-string_8c-source.html#l01168">_dbus_string_insert_alignment()</a>, <a class="el" href="dbus-string_8c-source.html#l00581">_dbus_string_insert_byte()</a>, <a class="el" href="dbus-string_8c-source.html#l00551">_dbus_string_insert_bytes()</a>, <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c-source.html#l01448">_dbus_string_move()</a>, <a class="el" href="dbus-string_8c-source.html#l01500">_dbus_string_move_len()</a>, <a class="el" href="dbus-string_8c-source.html#l02088">_dbus_string_pop_line()</a>, <a class="el" href="dbus-string_8c-source.html#l01605">_dbus_string_replace_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-string_8c-source.html#l00832">_dbus_string_shorten()</a>, <a class="el" href="dbus-string_8c-source.html#l01982">_dbus_string_skip_blank()</a>, <a class="el" href="dbus-string_8c-source.html#l02016">_dbus_string_skip_white()</a>, <a class="el" href="dbus-string_8c-source.html#l02049">_dbus_string_skip_white_reverse()</a>, <a class="el" href="dbus-string_8c-source.html#l00608">_dbus_string_steal_data()</a>, <a class="el" href="dbus-string_8c-source.html#l02633">_dbus_string_validate_ascii()</a>, <a class="el" href="dbus-string_8c-source.html#l02774">_dbus_string_validate_nul()</a>, <a class="el" href="dbus-string_8c-source.html#l02676">_dbus_string_validate_utf8()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00886">_dbus_swap_array()</a>, <a class="el" href="dbus-timeout_8c-source.html#l00133">_dbus_timeout_set_interval()</a>, <a class="el" href="dbus-timeout_8c-source.html#l00106">_dbus_timeout_unref()</a>, <a class="el" href="dbus-transport_8c-source.html#l00471">_dbus_transport_disconnect()</a>, <a class="el" href="dbus-transport_8c-source.html#l00925">_dbus_transport_do_iteration()</a>, <a class="el" href="dbus-transport_8c-source.html#l00668">_dbus_transport_get_is_authenticated()</a>, <a class="el" href="dbus-transport_8c-source.html#l00830">_dbus_transport_handle_watch()</a>, <a class="el" href="dbus-transport_8c-source.html#l00093">_dbus_transport_init_base()</a>, <a class="el" href="dbus-transport-unix_8c-source.html#l00120">_dbus_transport_open_platform_specific()</a>, <a class="el" href="dbus-transport-socket_8c-source.html#l01293">_dbus_transport_open_socket()</a>, <a class="el" href="dbus-transport_8c-source.html#l01084">_dbus_transport_queue_messages()</a>, <a class="el" href="dbus-transport_8c-source.html#l00429">_dbus_transport_ref()</a>, <a class="el" href="dbus-transport_8c-source.html#l00868">_dbus_transport_set_connection()</a>, <a class="el" href="dbus-transport_8c-source.html#l00446">_dbus_transport_unref()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01402">_dbus_type_reader_delete()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00884">_dbus_type_reader_get_array_length()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00770">_dbus_type_reader_get_current_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00805">_dbus_type_reader_get_element_type()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01437">_dbus_type_reader_greater_than()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00854">_dbus_type_reader_read_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00908">_dbus_type_reader_read_fixed_multi()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00837">_dbus_type_reader_read_raw()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l01345">_dbus_type_reader_set_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00327">_dbus_type_signature_next()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02161">_dbus_type_writer_unrecurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02341">_dbus_type_writer_write_fixed_multi()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00603">_dbus_user_database_unref()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00630">_dbus_validate_body_with_reason()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00955">_dbus_validate_bus_name()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00777">_dbus_validate_interface()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00853">_dbus_validate_member()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00712">_dbus_validate_path()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l01054">_dbus_validate_signature()</a>, <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">_dbus_validate_signature_with_reason()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01316">_dbus_verbose_bytes()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">_dbus_verbose_bytes_of_string()</a>, <a class="el" href="dbus-watch_8c-source.html#l00067">_dbus_watch_new()</a>, <a class="el" href="dbus-watch_8c-source.html#l00117">_dbus_watch_unref()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00376">_dbus_write_two()</a>, <a class="el" href="dbus-address_8c-source.html#l00244">dbus_address_entry_get_value()</a>, <a class="el" href="dbus-address_8c-source.html#l00617">dbus_address_unescape_value()</a>, <a class="el" href="dbus-bus_8c-source.html#l00716">dbus_bus_set_unique_name()</a>, <a class="el" href="dbus-connection_8c-source.html#l03533">dbus_connection_borrow_message()</a>, <a class="el" href="dbus-connection_8c-source.html#l04907">dbus_connection_get_unix_process_id()</a>, <a class="el" href="dbus-connection_8c-source.html#l04871">dbus_connection_get_unix_user()</a>, <a class="el" href="dbus-connection_8c-source.html#l05006">dbus_connection_get_windows_user()</a>, <a class="el" href="dbus-connection_8c-source.html#l02464">dbus_connection_ref()</a>, <a class="el" href="dbus-connection_8c-source.html#l03582">dbus_connection_return_message()</a>, <a class="el" href="dbus-connection_8c-source.html#l03243">dbus_connection_send_with_reply_and_block()</a>, <a class="el" href="dbus-connection_8c-source.html#l03614">dbus_connection_steal_borrowed_message()</a>, <a class="el" href="dbus-connection_8c-source.html#l02610">dbus_connection_unref()</a>, <a class="el" href="dbus-errors_8c-source.html#l00274">dbus_error_has_name()</a>, <a class="el" href="dbus-errors_8c-source.html#l00160">dbus_error_init()</a>, <a class="el" href="dbus-errors_8c-source.html#l00301">dbus_error_is_set()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-message_8c-source.html#l01365">dbus_message_ref()</a>, <a class="el" href="dbus-message_8c-source.html#l01387">dbus_message_unref()</a>, <a class="el" href="dbus-address_8c-source.html#l00363">dbus_parse_address()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00532">dbus_pending_call_ref()</a>, <a class="el" href="dbus-pending-call_8c-source.html#l00559">dbus_pending_call_unref()</a>, <a class="el" href="dbus-server_8c-source.html#l00739">dbus_server_disconnect()</a>, <a class="el" href="dbus-server_8c-source.html#l00540">dbus_server_listen()</a>, <a class="el" href="dbus-server_8c-source.html#l00670">dbus_server_ref()</a>, <a class="el" href="dbus-server_8c-source.html#l00697">dbus_server_unref()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-errors_8c-source.html#l00215">dbus_set_error_const()</a>, <a class="el" href="dbus-threads_8c-source.html#l00545">dbus_threads_init()</a>, <a class="el" href="dbus-watch_8c-source.html#l00610">dbus_watch_get_enabled()</a>, and <a class="el" href="dbus-watch_8c-source.html#l00555">dbus_watch_get_flags()</a>.
</div>
</div><p>
<a class="anchor" name="g0c4961ec784874f1b1f3aeccea8d3da1"></a><!-- doxytag: member="dbus-internals.h::_dbus_assert_not_reached" ref="g0c4961ec784874f1b1f3aeccea8d3da1" args="(explanation)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _dbus_assert_not_reached </td>
<td>(</td>
<td class="paramtype">explanation </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Aborts with an error message if called.
<p>
The given explanation will be printed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>explanation</em> </td><td>explanation of what happened if the code was reached. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00121">121</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-spawn_8c-source.html#l00639">_dbus_babysitter_get_child_exit_status()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-credentials_8c-source.html#l00198">_dbus_credentials_include()</a>, <a class="el" href="dbus-dataslot_8c-source.html#l00067">_dbus_data_slot_allocator_alloc()</a>, <a class="el" href="dbus-hash_8c-source.html#l00292">_dbus_hash_table_new()</a>, <a class="el" href="dbus-marshal-header_8c-source.html#l01239">_dbus_header_set_field_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00382">_dbus_marshal_set_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">_dbus_marshal_skip_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00793">_dbus_marshal_write_basic()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01022">_dbus_marshal_write_fixed_multi()</a>, <a class="el" href="dbus-mempool_8c-source.html#l00336">_dbus_mem_pool_dealloc()</a>, <a class="el" href="dbus-spawn_8c-source.html#l01061">_dbus_spawn_async_with_babysitter()</a>, <a class="el" href="dbus-string_8c-source.html#l02088">_dbus_string_pop_line()</a>, <a class="el" href="dbus-timeout_8c-source.html#l00339">_dbus_timeout_list_remove_timeout()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01175">_dbus_type_get_alignment()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02293">_dbus_type_writer_write_basic()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l02341">_dbus_type_writer_write_fixed_multi()</a>, <a class="el" href="dbus-watch_8c-source.html#l00384">_dbus_watch_list_remove_watch()</a>, and <a class="el" href="dbus-threads_8c-source.html#l00545">dbus_threads_init()</a>.
</div>
</div><p>
<a class="anchor" name="ge625b69e69aedb3b30bff23d4edcf690"></a><!-- doxytag: member="dbus-internals.h::_DBUS_DECLARE_GLOBAL_LOCK" ref="ge625b69e69aedb3b30bff23d4edcf690" args="(name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_DECLARE_GLOBAL_LOCK </td>
<td>(</td>
<td class="paramtype">name </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> extern <a class="el" href="group__DBusThreads.html#g4eb021cd6cd0830423eac2738e0ddc40">DBusMutex</a> *_dbus_lock_##name</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Expands to declaration of a global lock defined with _DBUS_DEFINE_GLOBAL_LOCK.
<p>
The lock must be added to the list to initialize in <a class="el" href="group__DBusThreads.html#ga9a4ed445c77af3afa0dbdbb9d85afd4">dbus_threads_init()</a>.
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00285">285</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
</div>
</div><p>
<a class="anchor" name="gc8d22e9846ecc2845959082076de899b"></a><!-- doxytag: member="dbus-internals.h::_DBUS_DEFINE_GLOBAL_LOCK" ref="gc8d22e9846ecc2845959082076de899b" args="(name)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_DEFINE_GLOBAL_LOCK </td>
<td>(</td>
<td class="paramtype">name </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> <a class="el" href="group__DBusThreads.html#g4eb021cd6cd0830423eac2738e0ddc40">DBusMutex</a> *_dbus_lock_##name</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Defines a global lock variable with the given name.
<p>
The lock must be added to the list to initialize in <a class="el" href="group__DBusThreads.html#ga9a4ed445c77af3afa0dbdbb9d85afd4">dbus_threads_init()</a>.
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00286">286</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
</div>
</div><p>
<a class="anchor" name="g05e902d8504a8a0e0b183fd2e20e329f"></a><!-- doxytag: member="dbus-internals.h::_DBUS_INT_TO_POINTER" ref="g05e902d8504a8a0e0b183fd2e20e329f" args="(integer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_INT_TO_POINTER </td>
<td>(</td>
<td class="paramtype">integer </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> ((void*)((long)(integer)))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Safely stuffs an integer into a pointer, to be extracted later with _DBUS_POINTER_TO_INT.
<p>
Only guaranteed to preserve 32 bits.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>integer</em> </td><td>the integer to stuff into a pointer. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00157">157</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l01508">_dbus_hash_table_insert_int()</a>, <a class="el" href="dbus-hash_8c-source.html#l01202">_dbus_hash_table_lookup_int()</a>, <a class="el" href="dbus-hash_8c-source.html#l01337">_dbus_hash_table_remove_int()</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">_dbus_validate_signature_with_reason()</a>.
</div>
</div><p>
<a class="anchor" name="gc153abad46f4eb80999a2b340d29d1f0"></a><!-- doxytag: member="dbus-internals.h::_DBUS_N_ELEMENTS" ref="gc153abad46f4eb80999a2b340d29d1f0" args="(array)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_N_ELEMENTS </td>
<td>(</td>
<td class="paramtype">array </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> ((int) (sizeof ((array)) / sizeof ((array)[0])))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Computes the number of elements in a fixed-size array using sizeof().
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>array</em> </td><td>the array to count elements in. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00154">154</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-hash_8c-source.html#l00292">_dbus_hash_table_new()</a>, <a class="el" href="dbus-transport_8c-source.html#l00350">_dbus_transport_open()</a>, and <a class="el" href="dbus-server_8c-source.html#l00540">dbus_server_listen()</a>.
</div>
</div><p>
<a class="anchor" name="gbbd3526a2ecd65da80b9f74ac286273d"></a><!-- doxytag: member="dbus-internals.h::_DBUS_POINTER_TO_INT" ref="gbbd3526a2ecd65da80b9f74ac286273d" args="(pointer)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_POINTER_TO_INT </td>
<td>(</td>
<td class="paramtype">pointer </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> ((long)(pointer))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Safely casts a void* to an integer; should only be used on void* that actually contain integers, for example one created with _DBUS_INT_TO_POINTER.
<p>
Only guaranteed to preserve 32 bits. (i.e. it's used to store 32-bit ints in pointers, but can't be used to store 64-bit pointers in ints.)<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pointer</em> </td><td>pointer to extract an integer from. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00156">156</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-hash_8c-source.html#l00672">_dbus_hash_iter_get_int_key()</a>, and <a class="el" href="dbus-marshal-validate_8c-source.html#l00050">_dbus_validate_signature_with_reason()</a>.
</div>
</div><p>
<a class="anchor" name="gec42589166158b1385d5f5439318cda2"></a><!-- doxytag: member="dbus-internals.h::_DBUS_ZERO" ref="gec42589166158b1385d5f5439318cda2" args="(object)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _DBUS_ZERO </td>
<td>(</td>
<td class="paramtype">object </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"> (memset (&(object), '\0', sizeof ((object))))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets all bits in an object to zero.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>object</em> </td><td>the object to be zeroed. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8h-source.html#l00159">159</a> of file <a class="el" href="dbus-internals_8h-source.html">dbus-internals.h</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00746">_dbus_connect_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00473">_dbus_connect_unix_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00854">_dbus_listen_tcp_socket()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">_dbus_listen_unix_socket()</a>.
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="ga1d634db87605c2a83f2750ce6052653"></a><!-- doxytag: member="dbus-spawn.c::ReadStatus" ref="ga1d634db87605c2a83f2750ce6052653" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="group__DBusInternalsUtils.html#ga1d634db87605c2a83f2750ce6052653">ReadStatus</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Enumeration for status of a read().
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gga1d634db87605c2a83f2750ce6052653105d3aa9ec19f4c060b39c7fafba39ff"></a><!-- doxytag: member="READ_STATUS_OK" ref="gga1d634db87605c2a83f2750ce6052653105d3aa9ec19f4c060b39c7fafba39ff" args="" -->READ_STATUS_OK</em> </td><td>
Read succeeded. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga1d634db87605c2a83f2750ce6052653d13164fb31fb0b5bc1ec802d09d10411"></a><!-- doxytag: member="READ_STATUS_ERROR" ref="gga1d634db87605c2a83f2750ce6052653d13164fb31fb0b5bc1ec802d09d10411" args="" -->READ_STATUS_ERROR</em> </td><td>
Some kind of error. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga1d634db87605c2a83f2750ce60526537d65492f3f0d09176ac4504987457d23"></a><!-- doxytag: member="READ_STATUS_EOF" ref="gga1d634db87605c2a83f2750ce60526537d65492f3f0d09176ac4504987457d23" args="" -->READ_STATUS_EOF</em> </td><td>
EOF returned. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00052">52</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g1b17eec3f7915c21251685e16123f299"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_get_child_exit_status" ref="g1b17eec3f7915c21251685e16123f299" args="(DBusBabysitter *sitter, int *status)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_babysitter_get_child_exit_status </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>status</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the exit status of the child.
<p>
We do this so implementation specific detail is not cluttering up dbus, for example the system launcher code. This can only be called if the child has exited, i.e. call <a class="el" href="group__DBusInternalsUtils.html#g5c463ea356ea62055a35211e8d81f8b9">_dbus_babysitter_get_child_exited()</a>. It returns FALSE if the child did not return a status code, e.g. because the child was signaled or we failed to ever launch the child in the first place.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
<tr><td valign="top"></td><td valign="top"><em>status</em> </td><td>the returned status code </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00639">639</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-spawn_8c-source.html#l00614">_dbus_babysitter_get_child_exited()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g5c463ea356ea62055a35211e8d81f8b9"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_get_child_exited" ref="g5c463ea356ea62055a35211e8d81f8b9" args="(DBusBabysitter *sitter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_babysitter_get_child_exited </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the child has exited, without blocking.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00614">614</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00583">LIVE_CHILDREN</a>.
<p>
Referenced by <a class="el" href="dbus-spawn_8c-source.html#l00639">_dbus_babysitter_get_child_exit_status()</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00663">_dbus_babysitter_set_child_exit_error()</a>.
</div>
</div><p>
<a class="anchor" name="gcdc9c49735d6ce8364647c1961aa8d2b"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_kill_child" ref="gcdc9c49735d6ce8364647c1961aa8d2b" args="(DBusBabysitter *sitter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_babysitter_kill_child </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Blocks until the babysitter process gives us the PID of the spawned grandchild, then kills the spawned grandchild.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter object </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00592">592</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00583">LIVE_CHILDREN</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g525b5fdb780ddf6891918466965e6eb6"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_ref" ref="g525b5fdb780ddf6891918466965e6eb6" args="(DBusBabysitter *sitter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a>* _dbus_babysitter_ref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Increment the reference count on the babysitter object.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the babysitter </dd></dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00245">245</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00188">DBusBabysitter::refcount</a>.
</div>
</div><p>
<a class="anchor" name="g9c6f92a67e41f08d8eb254e294fd0378"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_set_child_exit_error" ref="g9c6f92a67e41f08d8eb254e294fd0378" args="(DBusBabysitter *sitter, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_babysitter_set_child_exit_error </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the <a class="el" href="structDBusError.html">DBusError</a> with an explanation of why the spawned child process exited (on a signal, or whatever).
<p>
If the child process has not exited, does nothing (error will remain unset).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>an error to fill in </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00663">663</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-spawn_8c-source.html#l00614">_dbus_babysitter_get_child_exited()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00387">DBUS_ERROR_SPAWN_CHILD_EXITED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00389">DBUS_ERROR_SPAWN_CHILD_SIGNALED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00383">DBUS_ERROR_SPAWN_EXEC_FAILED</a>, and <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>.
</div>
</div><p>
<a class="anchor" name="g5f467b14f0c2f667e46c4ba786808e5b"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_set_watch_functions" ref="g5f467b14f0c2f667e46c4ba786808e5b" args="(DBusBabysitter *sitter, DBusAddWatchFunction add_function, DBusRemoveWatchFunction remove_function, DBusWatchToggledFunction toggled_function, void *data, DBusFreeFunction free_data_function)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_babysitter_set_watch_functions </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusConnection.html#g985b712fc165afa66e5901859b68b9de">DBusAddWatchFunction</a> </td>
<td class="paramname"> <em>add_function</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusConnection.html#g6a48c42c4bde24911cae7fda0d1f1589">DBusRemoveWatchFunction</a> </td>
<td class="paramname"> <em>remove_function</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusConnection.html#gfa7e0f7856f8ebbe66475979ef54ed9e">DBusWatchToggledFunction</a> </td>
<td class="paramname"> <em>toggled_function</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusMemory.html#g8792ec2b2b8626ca28022faf51ec415a">DBusFreeFunction</a> </td>
<td class="paramname"> <em>free_data_function</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets watch functions to notify us when the babysitter object needs to read/write file descriptors.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
<tr><td valign="top"></td><td valign="top"><em>add_function</em> </td><td>function to begin monitoring a new descriptor. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>remove_function</em> </td><td>function to stop monitoring a descriptor. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>toggled_function</em> </td><td>function to notify when the watch is enabled/disabled </td></tr>
<tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>data to pass to add_function and remove_function. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>free_data_function</em> </td><td>function to be called to free the data. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure (no memory) </dd></dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00721">721</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-watch_8c-source.html#l00253">_dbus_watch_list_set_functions()</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00198">DBusBabysitter::watches</a>.
</div>
</div><p>
<a class="anchor" name="g3205e9f8672271794aeb9d451e2fcc4a"></a><!-- doxytag: member="dbus-spawn.c::_dbus_babysitter_unref" ref="g3205e9f8672271794aeb9d451e2fcc4a" args="(DBusBabysitter *sitter)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_babysitter_unref </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> * </td>
<td class="paramname"> <em>sitter</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrement the reference count on the babysitter object.
<p>
When the reference count of the babysitter object reaches zero, the babysitter is killed and the child that was being babysat gets emancipated.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter</em> </td><td>the babysitter </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l00264">264</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00133">_dbus_close_socket()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-watch_8c-source.html#l00145">_dbus_watch_invalidate()</a>, <a class="el" href="dbus-watch_8c-source.html#l00225">_dbus_watch_list_free()</a>, <a class="el" href="dbus-watch_8c-source.html#l00117">_dbus_watch_unref()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-spawn_8c-source.html#l00193">DBusBabysitter::error_pipe_from_child</a>, <a class="el" href="dbus-spawn_8c-source.html#l00200">DBusBabysitter::error_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00190">DBusBabysitter::executable</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-spawn_8c-source.html#l00188">DBusBabysitter::refcount</a>, <a class="el" href="dbus-spawn_8c-source.html#l00195">DBusBabysitter::sitter_pid</a>, <a class="el" href="dbus-spawn_8c-source.html#l00201">DBusBabysitter::sitter_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00192">DBusBabysitter::socket_to_babysitter</a>, <a class="el" href="dbus-spawn_8c-source.html#l00204">DBusBabysitter::status</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00198">DBusBabysitter::watches</a>.
<p>
Referenced by <a class="el" href="dbus-spawn_8c-source.html#l01061">_dbus_spawn_async_with_babysitter()</a>.
</div>
</div><p>
<a class="anchor" name="g4d4f9b1d4e78ba017ada75a6982ac173"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_become_daemon" ref="g4d4f9b1d4e78ba017ada75a6982ac173" args="(const DBusString *pidfile, DBusPipe *print_pid_pipe, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_become_daemon </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Does the chdir, fork, setsid, etc.
<p>
to become a daemon process.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>pidfile</em> </td><td><a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, or pidfile to create </td></tr>
<tr><td valign="top"></td><td valign="top"><em>print_pid_pipe</em> </td><td>pipe to print daemon's pid to, or -1 for none </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">74</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00175">_dbus_getenv()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00223">_dbus_pipe_is_valid()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00186">_dbus_pipe_write()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00387">_dbus_string_append_int()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">_dbus_write_pid_file()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00301">dbus_error_is_set()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g82c920a8c3b5958ba1ecf8e5f5d6373b"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_change_to_daemon_user" ref="g82c920a8c3b5958ba1ecf8e5f5d6373b" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_change_to_daemon_user </td>
<td>(</td>
<td class="paramtype">const char * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Changes the user and group the bus is running as.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>user</em> </td><td>the user to become </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">275</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gcecdbb00a3c8b63e821edae537ae3c7b"></a><!-- doxytag: member="dbus-userdb.c::_dbus_credentials_add_from_user" ref="gcecdbb00a3c8b63e821edae537ae3c7b" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_credentials_add_from_user </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusCredentials.html">DBusCredentials</a> * </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> * </td>
<td class="paramname"> <em>username</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Adds the credentials corresponding to the given username.
<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 compact><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">DBusError</a>.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>credentials</em> </td><td>credentials to fill in </td></tr>
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the username </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the username existed and we got some credentials </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00492">492</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-credentials_8c-source.html#l00159">_dbus_credentials_add_unix_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00656">_dbus_user_database_get_username()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="dbus-transport-protected_8h-source.html#l00092">DBusTransport::credentials</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00090">DBusUserInfo::uid</a>.
</div>
</div><p>
<a class="anchor" name="g3bc1512aef42cea17a2aaacc7d8e7211"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_delete_directory" ref="g3bc1512aef42cea17a2aaacc7d8e7211" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_delete_directory </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Removes a directory; Directory must be empty.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>directory filename </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>initialized error object </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00444">444</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gb9a2ddb130da035d6186f2d96bf37cb4"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_directory_get_next_file" ref="gb9a2ddb130da035d6186f2d96bf37cb4" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_directory_get_next_file </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusDirIter.html">DBusDirIter</a> * </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> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get next file in the directory.
<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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>iter</em> </td><td>the iterator </td></tr>
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>string to be set to the next file in the dir </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for error </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00678">678</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00578">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gaf6eb8179fb6ea2175ed9742a0c8be68"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_directory_open" ref="gaf6eb8179fb6ea2175ed9742a0c8be68" 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>* _dbus_directory_open </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Open a directory to iterate over.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the directory name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>exception return object or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>new iterator, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> on error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00590">590</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00578">DBusDirIter::d</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g53bbcbbd0b564c14c599813dde535443"></a><!-- doxytag: member="dbus-internals.c::_dbus_dup_string_array" ref="g53bbcbbd0b564c14c599813dde535443" args="(const char **array)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char** _dbus_dup_string_array </td>
<td>(</td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>array</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Duplicates a string array.
<p>
Result may be freed with <a class="el" href="group__DBusMemory.html#g6d4674de64d806d238ffd309a486754e">dbus_free_string_array()</a>. Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory allocation fails. If the array to be duplicated is <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>array</em> </td><td>array to duplicate. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>newly-allocated copy. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00447">447</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-internals_8c-source.html#l00396">_dbus_strdup()</a>, <a class="el" href="dbus-memory_8c-source.html#l00655">dbus_free_string_array()</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-auth_8c-source.html#l02293">_dbus_auth_set_mechanisms()</a>, and <a class="el" href="dbus-server_8c-source.html#l01003">dbus_server_set_auth_mechanisms()</a>.
</div>
</div><p>
<a class="anchor" name="g2212aa0e5732257598a6597748c658e4"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_error_from_errno" ref="g2212aa0e5732257598a6597748c658e4" args="(int error_number)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* _dbus_error_from_errno </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>error_number</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Converts a UNIX or Windows errno into a <a class="el" href="structDBusError.html">DBusError</a> name.
<p>
<dl compact><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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>error_number</em> </td><td>the errno. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>an error name </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00899">899</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-protocol_8h-source.html#l00348">DBUS_ERROR_ACCESS_DENIED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00362">DBUS_ERROR_ADDRESS_IN_USE</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00370">DBUS_ERROR_FILE_EXISTS</a>, <a class="el" href="dbus-protocol_8h-source.html#l00368">DBUS_ERROR_FILE_NOT_FOUND</a>, <a class="el" href="dbus-protocol_8h-source.html#l00346">DBUS_ERROR_LIMITS_EXCEEDED</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00360">DBUS_ERROR_NO_NETWORK</a>, <a class="el" href="dbus-protocol_8h-source.html#l00352">DBUS_ERROR_NO_SERVER</a>, <a class="el" href="dbus-protocol_8h-source.html#l00344">DBUS_ERROR_NOT_SUPPORTED</a>, and <a class="el" href="dbus-protocol_8h-source.html#l00358">DBUS_ERROR_TIMEOUT</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01365">_dbus_check_dir_is_private_to_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00746">_dbus_connect_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00473">_dbus_connect_unix_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00678">_dbus_directory_get_next_file()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00590">_dbus_directory_open()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01949">_dbus_file_get_contents()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02641">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00854">_dbus_listen_tcp_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">_dbus_listen_unix_socket()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01112">_dbus_read_credentials_socket()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00542">_dbus_stat()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">_dbus_write_pid_file()</a>.
</div>
</div><p>
<a class="anchor" name="g13a527e32c05b63e8b32a63d728e20e8"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_file_exists" ref="g13a527e32c05b63e8b32a63d728e20e8" args="(const char *file)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_file_exists </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>file</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
File/directory interface.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>file</em> </td><td>full path to the file </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if file exists </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00470">470</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</a>.
</div>
</div><p>
<a class="anchor" name="g709ce349c6ee05263850444fb4e0177d"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_generate_random_ascii" ref="g709ce349c6ee05263850444fb4e0177d" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_generate_random_ascii </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>n_bytes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></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 compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_bytes</em> </td><td>the number of random ASCII bytes to append to string </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory or other failure </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00860">860</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c-source.html#l02633">_dbus_string_validate_ascii()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-server-unix_8c-source.html#l00052">_dbus_server_listen_platform_specific()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>.
</div>
</div><p>
<a class="anchor" name="ga32f87746e9264b2425736043d02fad4"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_generate_random_bytes_buffer" ref="ga32f87746e9264b2425736043d02fad4" args="(char *buffer, int n_bytes)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_generate_random_bytes_buffer </td>
<td>(</td>
<td class="paramtype">char * </td>
<td class="paramname"> <em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>n_bytes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Fills n_bytes of the given buffer with random bytes.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>an allocated buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_bytes</em> </td><td>the number of bytes in buffer to write to </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l00828">828</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00793">_dbus_generate_pseudorandom_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-string_8c-source.html#l00721">_dbus_string_copy_to_buffer()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, and <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>.
<p>
Referenced by <a class="el" href="dbus-internals_8c-source.html#l00510">_dbus_generate_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="g08c2922335845e5c857e88399436b9ba"></a><!-- doxytag: member="dbus-internals.c::_dbus_generate_uuid" ref="g08c2922335845e5c857e88399436b9ba" args="(DBusGUID *uuid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_generate_uuid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="unionDBusGUID.html">DBusGUID</a> * </td>
<td class="paramname"> <em>uuid</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Generates a new UUID.
<p>
If you change how this is done, there's some text about it in the spec that should also change.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uuid</em> </td><td>the uuid to initialize </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00510">510</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00828">_dbus_generate_random_bytes_buffer()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01925">_dbus_get_current_time()</a>, <a class="el" href="dbus-internals_8h-source.html#l00331">DBusGUID::as_bytes</a>, <a class="el" href="dbus-internals_8h-source.html#l00330">DBusGUID::as_uint32s</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-internals_8c-source.html#l00715">_dbus_get_local_machine_uuid_encoded()</a>, <a class="el" href="dbus-server_8c-source.html#l00096">_dbus_server_init_base()</a>, and <a class="el" href="dbus-uuidgen_8c-source.html#l00115">dbus_internal_do_not_use_create_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="g90657adefa9bbac9b35eee63dd46a854"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_get_group_id" ref="g90657adefa9bbac9b35eee63dd46a854" args="(const DBusString *groupname, dbus_gid_t *gid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_group_id </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> * </td>
<td class="paramname"> <em>gid</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets group ID given groupname.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>the groupname </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid</em> </td><td>return location for GID </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if group name existed and we got the GID </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00128">128</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00313">_dbus_user_database_get_groupname()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00103">DBusGroupInfo::gid</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00904">_dbus_parse_unix_group_from_config()</a>.
</div>
</div><p>
<a class="anchor" name="g08e67a10b197995c101c89f248c24105"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_get_is_errno_eintr" ref="g08e67a10b197995c101c89f248c24105" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_eintr </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
See if errno is EINTR.
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno == EINTR </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01021">1021</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="gec2ce24907adaedd1bf88bb28d82c96d"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_get_is_errno_enomem" ref="gec2ce24907adaedd1bf88bb28d82c96d" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_enomem </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
See if errno is ENOMEM.
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno == ENOMEM </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01011">1011</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="gb9ccdfee5c7986ff236a6cde66a9af2f"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_get_is_errno_nonzero" ref="gb9ccdfee5c7986ff236a6cde66a9af2f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_is_errno_nonzero </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
See if errno is set.
<p>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if errno is not 0 </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01001">1001</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="g49ba67405d677af6cde9329ed87ea91f"></a><!-- doxytag: member="dbus-internals.c::_dbus_get_local_machine_uuid_encoded" ref="g49ba67405d677af6cde9329ed87ea91f" args="(DBusString *uuid_str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_local_machine_uuid_encoded </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>uuid_str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the hex-encoded UUID of the machine this function is executed on.
<p>
This UUID is guaranteed to be the same for a given machine at least until it next reboots, though it also makes some effort to be the same forever, it may change if the machine is reconfigured or its hardware is modified.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uuid_str</em> </td><td>string to append hex-encoded machine uuid to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00715">715</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00687">_dbus_current_generation</a>, <a class="el" href="dbus-internals_8c-source.html#l00510">_dbus_generate_uuid()</a>, <a class="el" href="dbus-internals_8h-source.html#l00287">_DBUS_LOCK</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02952">_dbus_read_local_machine_uuid()</a>, <a class="el" href="dbus-internals_8h-source.html#l00288">_DBUS_UNLOCK</a>, <a class="el" href="dbus-internals_8c-source.html#l00529">_dbus_uuid_encode()</a>, <a class="el" href="dbus-internals_8c-source.html#l00266">_dbus_warn_check_failed()</a>, <a class="el" href="dbus-errors_8c-source.html#l00183">dbus_error_free()</a>, <a class="el" href="dbus-errors_8c-source.html#l00160">dbus_error_init()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="dbus-errors_8h-source.html#l00050">DBusError::message</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, and <a class="el" href="dbus-misc_8c-source.html#l00073">dbus_get_local_machine_id()</a>.
</div>
</div><p>
<a class="anchor" name="gf07ee24eddcb3b0f85fa54196bc44fe1"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_get_user_id" ref="gf07ee24eddcb3b0f85fa54196bc44fe1" args="(const DBusString *username, dbus_uid_t *uid)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_user_id </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> * </td>
<td class="paramname"> <em>uid</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets user ID given username.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the username </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>return location for UID </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if username existed and we got the UID </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00114">114</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00888">_dbus_parse_unix_user_from_config()</a>.
</div>
</div><p>
<a class="anchor" name="gc82f42ff83fabbde717cc08569265e6e"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_get_user_id_and_primary_group" ref="gc82f42ff83fabbde717cc08569265e6e" args="(const DBusString *username, dbus_uid_t *uid_p, 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_get_user_id_and_primary_group </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> * </td>
<td class="paramname"> <em>uid_p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> * </td>
<td class="paramname"> <em>gid_p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets user ID and primary group given username.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the username </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid_p</em> </td><td>return location for UID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid_p</em> </td><td>return location for GID </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if username existed and we got the UID and GID </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00164">164</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00656">_dbus_user_database_get_username()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00091">DBusUserInfo::primary_gid</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00090">DBusUserInfo::uid</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00114">_dbus_get_user_id()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00258">_dbus_verify_daemon_user()</a>.
</div>
</div><p>
<a class="anchor" name="g23814bdf1859c6aa52da1feab8f1aed4"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_group_info_fill" ref="g23814bdf1859c6aa52da1feab8f1aed4" args="(DBusGroupInfo *info, const DBusString *groupname, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_group_info_fill </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> * </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>groupname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group name.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the group info struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>name of group </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the error return </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00853">853</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBUS_GID_UNSET</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="gd235e373b223982b7d3aba8a2b602b58"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_group_info_fill_gid" ref="gd235e373b223982b7d3aba8a2b602b58" args="(DBusGroupInfo *info, dbus_gid_t gid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_group_info_fill_gid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> * </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> </td>
<td class="paramname"> <em>gid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> struct with information about the given group ID.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the group info struct </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid</em> </td><td>group ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the error return </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00872">872</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="gc2d226476e6fff50bdfaace18b897fe9"></a><!-- doxytag: member="dbus-userdb.c::_dbus_group_info_free" ref="gc2d226476e6fff50bdfaace18b897fe9" args="(DBusGroupInfo *info)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_group_info_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> * </td>
<td class="paramname"> <em>info</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the members of info (but not info itself).
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the group info </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00088">88</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00104">DBusGroupInfo::groupname</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00060">_dbus_group_info_free_allocated()</a>.
</div>
</div><p>
<a class="anchor" name="gb9420d7a4a31329a00fd5709f8cf08ba"></a><!-- doxytag: member="dbus-userdb.c::_dbus_group_info_free_allocated" ref="gb9420d7a4a31329a00fd5709f8cf08ba" args="(DBusGroupInfo *info)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_group_info_free_allocated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> * </td>
<td class="paramname"> <em>info</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the given <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a>'s members with <a class="el" href="group__DBusSysdepsUnix.html#gc2d226476e6fff50bdfaace18b897fe9">_dbus_group_info_free()</a> and also calls <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a> on the block itself.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the info </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00060">60</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00088">_dbus_group_info_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00530">_dbus_user_database_new()</a>.
</div>
</div><p>
<a class="anchor" name="ge9408936869314101f8ea13dfa5ba968"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_groups_from_uid" ref="ge9408936869314101f8ea13dfa5ba968" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_groups_from_uid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </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#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> ** </td>
<td class="paramname"> <em>group_ids</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>n_group_ids</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets all groups corresponding to the given UID.
<p>
Returns <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory, or user isn't known, but always initializes group_ids to a NULL array.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the UID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>group_ids</em> </td><td>return location for array of group IDs </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_group_ids</em> </td><td>return location for length of returned array </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if the UID existed and we got some credentials </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00354">354</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00637">_dbus_user_database_get_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="dbus-memory_8h-source.html#l00046">dbus_new</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00092">DBusUserInfo::group_ids</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00093">DBusUserInfo::n_group_ids</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00090">DBusUserInfo::uid</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00921">_dbus_unix_groups_from_uid()</a>.
</div>
</div><p>
<a class="anchor" name="g17ce3ab061a3ae2441cd33ece34f5e7a"></a><!-- doxytag: member="dbus-userdb.c::_dbus_homedir_from_current_process" ref="g17ce3ab061a3ae2441cd33ece34f5e7a" args="(const DBusString **homedir)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_homedir_from_current_process </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>homedir</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets homedir of user owning current process.
<p>
The returned string is valid until <a class="el" href="group__DBusMemory.html#g8b177950791eebaefc7dc1e836c0964c">dbus_shutdown()</a> is called.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>homedir</em> </td><td>place to store pointer to homedir </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00385">385</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02983">_dbus_get_standard_session_servicedirs()</a>.
</div>
</div><p>
<a class="anchor" name="gbdd1dc47f44e3d6702c86c68da9a0173"></a><!-- doxytag: member="dbus-userdb.c::_dbus_homedir_from_uid" ref="gbdd1dc47f44e3d6702c86c68da9a0173" args="(dbus_uid_t uid, DBusString *homedir)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_homedir_from_uid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </td>
<td class="paramname"> <em>uid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>homedir</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the home directory for the given user.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the uid </td></tr>
<tr><td valign="top"></td><td valign="top"><em>homedir</em> </td><td>string to append home directory to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if user existed and we appended their homedir </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00446">446</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00637">_dbus_user_database_get_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00095">DBusUserInfo::homedir</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>.
</div>
</div><p>
<a class="anchor" name="g91c63dcb68d38347578edf39eda1712a"></a><!-- doxytag: member="dbus-userdb.c::_dbus_homedir_from_username" ref="g91c63dcb68d38347578edf39eda1712a" args="(const DBusString *username, DBusString *homedir)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_homedir_from_username </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>username</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>homedir</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the home directory for the given user.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the username </td></tr>
<tr><td valign="top"></td><td valign="top"><em>homedir</em> </td><td>string to append home directory to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if user existed and we appended their homedir </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00407">407</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00656">_dbus_user_database_get_username()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00095">DBusUserInfo::homedir</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gd1c3538c544df91f438a13c9fb4d3a1b"></a><!-- doxytag: member="dbus-userdb.c::_dbus_is_a_number" ref="gd1c3538c544df91f438a13c9fb4d3a1b" args="(const DBusString *str, unsigned long *num)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_is_a_number </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long * </td>
<td class="paramname"> <em>num</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if a given string is actually a number and converts it if it is.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>the string to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>num</em> </td><td>the memory location of the unsigned long to fill in </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if str is a number and num is filled in </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00102">102</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00546">_dbus_string_parse_uint()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>.
</div>
</div><p>
<a class="anchor" name="ga504db352a939909051a494d06c5b607"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_is_console_user" ref="ga504db352a939909051a494d06c5b607" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_is_console_user </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks to see if the UID sent in is the console user.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>UID of person to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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-userdb-util_8c-source.html#l00043">43</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00542">_dbus_stat()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00482">_dbus_user_at_console()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00333">_dbus_user_database_get_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00330">DBUS_ERROR_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00345">DBusStat::uid</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00094">DBusUserInfo::username</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00938">_dbus_unix_user_is_at_console()</a>.
</div>
</div><p>
<a class="anchor" name="gad95864dca5140b730bc143cb2d1b024"></a><!-- doxytag: member="dbus-internals.c::_dbus_memdup" ref="gad95864dca5140b730bc143cb2d1b024" args="(const void *mem, size_t n_bytes)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* _dbus_memdup </td>
<td>(</td>
<td class="paramtype">const void * </td>
<td class="paramname"> <em>mem</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"> <em>n_bytes</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Duplicates a block of memory.
<p>
Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> on failure.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>mem</em> </td><td>memory to copy </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_bytes</em> </td><td>number of bytes to copy </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the copy </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00424">424</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-object-tree_8c-source.html#l01058">_dbus_decompose_path()</a>.
</div>
</div><p>
<a class="anchor" name="g96da816095ec7fec07136a6019745bcb"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_parse_unix_group_from_config" ref="g96da816095ec7fec07136a6019745bcb" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_parse_unix_group_from_config </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> * </td>
<td class="paramname"> <em>gid_p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parse a UNIX group from the bus config file.
<p>
On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>the groupname text </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid_p</em> </td><td>place to return the gid </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00904">904</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00128">_dbus_get_group_id()</a>.
</div>
</div><p>
<a class="anchor" name="g437470fc327b0169fc14a0b66a6e5278"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_parse_unix_user_from_config" ref="g437470fc327b0169fc14a0b66a6e5278" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_parse_unix_user_from_config </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> * </td>
<td class="paramname"> <em>uid_p</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Parse a UNIX user from the bus config file.
<p>
On Windows, this should simply always fail (just return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the username text </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid_p</em> </td><td>place to return the uid </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00888">888</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00114">_dbus_get_user_id()</a>.
</div>
</div><p>
<a class="anchor" name="g6d80876bcae54f47cde79d0bce20321d"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_path_is_absolute" ref="g6d80876bcae54f47cde79d0bce20321d" args="(const DBusString *filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_path_is_absolute </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>filename</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether the filename is an absolute path.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the filename </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if an absolute path </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00525">525</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="g709fd30e6b940a5952af38efaf24ad51"></a><!-- doxytag: member="dbus-internals.c::_dbus_read_uuid_file" ref="g709fd30e6b940a5952af38efaf24ad51" args="(const DBusString *filename, DBusGUID *uuid, 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_read_uuid_file </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="unionDBusGUID.html">DBusGUID</a> * </td>
<td class="paramname"> <em>uuid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads (and optionally writes) a uuid to a file.
<p>
Initializes the uuid unless an error is returned.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the name of the file </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uuid</em> </td><td>uuid to be initialized with the loaded uuid </td></tr>
<tr><td valign="top"></td><td valign="top"><em>create_if_not_found</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> to create a new uuid and save it if the file doesn't exist </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>the error return </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if the error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00666">666</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-errors_8c-source.html#l00183">dbus_error_free()</a>, <a class="el" href="dbus-errors_8c-source.html#l00274">dbus_error_has_name()</a>, <a class="el" href="dbus-errors_8c-source.html#l00160">dbus_error_init()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00411">DBUS_ERROR_INVALID_FILE_CONTENT</a>, <a class="el" href="dbus-errors_8c-source.html#l00251">dbus_move_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02952">_dbus_read_local_machine_uuid()</a>, and <a class="el" href="dbus-uuidgen_8c-source.html#l00076">dbus_internal_do_not_use_get_uuid()</a>.
</div>
</div><p>
<a class="anchor" name="g4aa7500366dad2dd6d3fa97b3aa7165b"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_set_signal_handler" ref="g4aa7500366dad2dd6d3fa97b3aa7165b" args="(int sig, DBusSignalHandler handler)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_set_signal_handler </td>
<td>(</td>
<td class="paramtype">int </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#gdd0067ae8ae20e747b818697395d420f">DBusSignalHandler</a> </td>
<td class="paramname"> <em>handler</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Installs a UNIX signal handler.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sig</em> </td><td>the signal to handle </td></tr>
<tr><td valign="top"></td><td valign="top"><em>handler</em> </td><td>the handler </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00422">422</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g84c21bbcb2a673244f36616c5e053277"></a><!-- doxytag: member="dbus-spawn.c::_dbus_spawn_async_with_babysitter" ref="g84c21bbcb2a673244f36616c5e053277" args="(DBusBabysitter **sitter_p, char **argv, char **env, DBusSpawnChildSetupFunc child_setup, void *user_data, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_spawn_async_with_babysitter </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusBabysitter.html">DBusBabysitter</a> ** </td>
<td class="paramname"> <em>sitter_p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>argv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char ** </td>
<td class="paramname"> <em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">DBusSpawnChildSetupFunc </td>
<td class="paramname"> <em>child_setup</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void * </td>
<td class="paramname"> <em>user_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Spawns a new process.
<p>
The executable name and argv[0] are the same, both are provided in argv[0]. The child_setup function is passed the given user_data and is run in the child just before calling exec().<p>
Also creates a "babysitter" which tracks the status of the child process, advising the parent if the child exits. If the spawn fails, no babysitter is created. If sitter_p is <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, no babysitter is kept.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>sitter_p</em> </td><td>return location for babysitter or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>argv</em> </td><td>the executable and arguments </td></tr>
<tr><td valign="top"></td><td valign="top"><em>env</em> </td><td>the environment (not used on unix yet) </td></tr>
<tr><td valign="top"></td><td valign="top"><em>child_setup</em> </td><td>function to call in child pre-exec() </td></tr>
<tr><td valign="top"></td><td valign="top"><em>user_data</em> </td><td>user data for setup function </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error object to be filled in if function fails </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> on success, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is filled in </dd></dl>
<p>
Definition at line <a class="el" href="dbus-spawn_8c-source.html#l01061">1061</a> of file <a class="el" href="dbus-spawn_8c-source.html">dbus-spawn.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00121">_dbus_assert_not_reached</a>, <a class="el" href="dbus-spawn_8c-source.html#l00264">_dbus_babysitter_unref()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02509">_dbus_fd_set_close_on_exec()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02641">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-internals_8c-source.html#l00396">_dbus_strdup()</a>, <a class="el" href="dbus-watch_8c-source.html#l00351">_dbus_watch_list_add_watch()</a>, <a class="el" href="dbus-watch_8c-source.html#l00067">_dbus_watch_new()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-protocol_8h-source.html#l00385">DBUS_ERROR_SPAWN_FORK_FAILED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-spawn_8c-source.html#l00193">DBusBabysitter::error_pipe_from_child</a>, <a class="el" href="dbus-spawn_8c-source.html#l00200">DBusBabysitter::error_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00190">DBusBabysitter::executable</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-spawn_8c-source.html#l00768">READ_END</a>, <a class="el" href="dbus-spawn_8c-source.html#l00195">DBusBabysitter::sitter_pid</a>, <a class="el" href="dbus-spawn_8c-source.html#l00201">DBusBabysitter::sitter_watch</a>, <a class="el" href="dbus-spawn_8c-source.html#l00192">DBusBabysitter::socket_to_babysitter</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, <a class="el" href="dbus-spawn_8c-source.html#l00198">DBusBabysitter::watches</a>, and <a class="el" href="dbus-spawn_8c-source.html#l00770">WRITE_END</a>.
</div>
</div><p>
<a class="anchor" name="g04e98ad0e3a181f0a5921a4cbc49cf08"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_stat" ref="g04e98ad0e3a181f0a5921a4cbc49cf08" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_stat </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
stat() wrapper.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the filename to stat </td></tr>
<tr><td valign="top"></td><td valign="top"><em>statbuf</em> </td><td>the stat info to fill in </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for error </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error was set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00542">542</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00348">DBusStat::atime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00350">DBusStat::ctime</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00346">DBusStat::gid</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00343">DBusStat::mode</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00349">DBusStat::mtime</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00344">DBusStat::nlink</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00347">DBusStat::size</a>, <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>, and <a class="el" href="dbus-sysdeps_8h-source.html#l00345">DBusStat::uid</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g9d00d77f6595b9d7ac1baf59d44bf58c"></a><!-- doxytag: member="dbus-internals.c::_dbus_strdup" ref="g9d00d77f6595b9d7ac1baf59d44bf58c" args="(const char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* _dbus_strdup </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>str</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Duplicates a string.
<p>
Result must be freed with <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a>. Returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if memory allocation fails. If the string to be duplicated is <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, returns <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>string to duplicate. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>newly-allocated copy. </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00396">396</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00440">dbus_malloc()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-credentials_8c-source.html#l00175">_dbus_credentials_add_windows_sid()</a>, <a class="el" href="dbus-internals_8c-source.html#l00447">_dbus_dup_string_array()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>, <a class="el" href="dbus-spawn_8c-source.html#l01061">_dbus_spawn_async_with_babysitter()</a>, <a class="el" href="dbus-transport_8c-source.html#l00668">_dbus_transport_get_is_authenticated()</a>, <a class="el" href="dbus-transport_8c-source.html#l01284">_dbus_transport_get_windows_user()</a>, <a class="el" href="dbus-transport_8c-source.html#l00350">_dbus_transport_open()</a>, <a class="el" href="dbus-bus_8c-source.html#l00887">dbus_bus_get_id()</a>, <a class="el" href="dbus-bus_8c-source.html#l00600">dbus_bus_register()</a>, <a class="el" href="dbus-bus_8c-source.html#l00716">dbus_bus_set_unique_name()</a>, <a class="el" href="dbus-connection_8c-source.html#l02883">dbus_connection_get_server_id()</a>, <a class="el" href="dbus-server_8c-source.html#l00788">dbus_server_get_address()</a>, and <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>.
</div>
</div><p>
<a class="anchor" name="g56de84795d6df4162ad79b3be7af7588"></a><!-- doxytag: member="dbus-sysdeps.c::_dbus_strerror_from_errno" ref="g56de84795d6df4162ad79b3be7af7588" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* _dbus_strerror_from_errno </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Get error message from errno.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>_dbus_strerror(errno) </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps_8c-source.html#l01031">1031</a> of file <a class="el" href="dbus-sysdeps_8c-source.html">dbus-sysdeps.c</a>.
</div>
</div><p>
<a class="anchor" name="g751119e7273225a7e59787445b71fcd6"></a><!-- doxytag: member="dbus-internals.c::_dbus_string_array_contains" ref="g751119e7273225a7e59787445b71fcd6" args="(const char **array, const char *str)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_string_array_contains </td>
<td>(</td>
<td class="paramtype">const char ** </td>
<td class="paramname"> <em>array</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>str</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks whether a string array contains the given string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>array</em> </td><td>array to search. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>str</em> </td><td>string to look for </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if array contains string </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00487">487</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="g79647ec21c7edccd1510808ea0ca3779"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_unix_groups_from_uid" ref="g79647ec21c7edccd1510808ea0ca3779" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_groups_from_uid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </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#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> ** </td>
<td class="paramname"> <em>group_ids</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>n_group_ids</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets all groups corresponding to the given UNIX user ID.
<p>
On UNIX, just calls <a class="el" href="group__DBusInternalsUtils.html#ge9408936869314101f8ea13dfa5ba968">_dbus_groups_from_uid()</a>. On Windows, should always fail since we don't know any UNIX groups.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the UID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>group_ids</em> </td><td>return location for array of group IDs </td></tr>
<tr><td valign="top"></td><td valign="top"><em>n_group_ids</em> </td><td>return location for length of returned array </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00921">921</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00354">_dbus_groups_from_uid()</a>.
</div>
</div><p>
<a class="anchor" name="ged2e025454364fbe31cd9b6538c9a936"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_unix_user_is_at_console" ref="ged2e025454364fbe31cd9b6538c9a936" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_user_is_at_console </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks to see if the UNIX user ID is at the console.
<p>
Should always fail on Windows (set the error to <a class="el" href="group__DBusProtocol.html#g33122bcaf8f5896ec222c755b6effb40">DBUS_ERROR_NOT_SUPPORTED</a>).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>UID of person to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00938">938</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g849177164bc5e73435104f57c631ed7e"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_unix_user_is_process_owner" ref="g849177164bc5e73435104f57c631ed7e" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_unix_user_is_process_owner </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </td>
<td class="paramname"> <em>uid</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks to see if the UNIX user ID matches the UID of the process.
<p>
Should always return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on Windows.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the UNIX user ID </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00953">953</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">_dbus_getuid()</a>.
</div>
</div><p>
<a class="anchor" name="g31ec42cef2d15ca358e737bb5f19c5cf"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_user_at_console" ref="g31ec42cef2d15ca358e737bb5f19c5cf" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_at_console </td>
<td>(</td>
<td class="paramtype">const char * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks if user is at the console.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>user to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00482">482</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00470">_dbus_file_exists()</a>, <a class="el" href="dbus-string_8c-source.html#l00987">_dbus_string_append()</a>, <a class="el" href="dbus-string_8c-source.html#l00262">_dbus_string_free()</a>, <a class="el" href="dbus-string_8c-source.html#l00175">_dbus_string_init()</a>, and <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g70d3fd2edd61c69edc6f7fe1d5cfa6ea"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_user_database_get_gid" ref="g70d3fd2edd61c69edc6f7fe1d5cfa6ea" args="(DBusUserDatabase *db, dbus_gid_t gid, const DBusGroupInfo **info, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_database_get_gid </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> </td>
<td class="paramname"> <em>gid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> ** </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the user information for the given GID, returned group info should not be freed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>user database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid</em> </td><td>the group ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>return location for const ref to group info </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error location </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00333">333</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gd370299b907799440331c47e8d2357e0"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_user_database_get_groupname" ref="gd370299b907799440331c47e8d2357e0" args="(DBusUserDatabase *db, const DBusString *groupname, const DBusGroupInfo **info, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_database_get_groupname </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>groupname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> ** </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the user information for the given group name, returned group info should not be freed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>user database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>the group name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>return location for const ref to group info </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error location </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00313">313</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00208">_dbus_user_database_lookup_group()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBUS_GID_UNSET</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00128">_dbus_get_group_id()</a>.
</div>
</div><p>
<a class="anchor" name="g79b6c3cf0d735622b6af2795840f9d21"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_get_system" ref="g79b6c3cf0d735622b6af2795840f9d21" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DBusUserDatabase* _dbus_user_database_get_system </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the system global user database; must be called with lock held (<a class="el" href="group__DBusInternalsUtils.html#gd670eb00ca49ee18fe1c526d440131b7">_dbus_user_database_lock_system()</a>).
<p>
<dl compact><dt><b>Returns:</b></dt><dd>the database or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00333">333</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00492">_dbus_credentials_add_from_user()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00128">_dbus_get_group_id()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00354">_dbus_groups_from_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00446">_dbus_homedir_from_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00407">_dbus_homedir_from_username()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>.
</div>
</div><p>
<a class="anchor" name="g6a7e8b8cf3a6968972e9a49726022638"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_get_uid" ref="g6a7e8b8cf3a6968972e9a49726022638" args="(DBusUserDatabase *db, dbus_uid_t uid, const DBusUserInfo **info, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_database_get_uid </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </td>
<td class="paramname"> <em>uid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> ** </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the user information for the given UID, returned user info should not be freed.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>user database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the user ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>return location for const ref to user info </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error location </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00637">637</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00354">_dbus_groups_from_uid()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00446">_dbus_homedir_from_uid()</a>.
</div>
</div><p>
<a class="anchor" name="gccf1d5b330707a1835dcf4ce49a29c8c"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_get_username" ref="gccf1d5b330707a1835dcf4ce49a29c8c" args="(DBusUserDatabase *db, const DBusString *username, const DBusUserInfo **info, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_user_database_get_username </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>username</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> ** </td>
<td class="paramname"> <em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the user information for the given username.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>user database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>the user name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>return location for const ref to user info </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error location </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00656">656</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00492">_dbus_credentials_add_from_user()</a>, <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00407">_dbus_homedir_from_username()</a>.
</div>
</div><p>
<a class="anchor" name="g959372f7d7cdea35ffbac3b78e29a1b0"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_lookup" ref="g959372f7d7cdea35ffbac3b78e29a1b0" args="(DBusUserDatabase *db, dbus_uid_t uid, const DBusString *username, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a>* _dbus_user_database_lookup </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </td>
<td class="paramname"> <em>uid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up a uid or username in the user database.
<p>
Only one of name or UID can be provided. There are wrapper functions for this that are better to use, this one does no locking or anything on the database and otherwise sort of sucks.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>the database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>the user ID or <a class="el" href="group__DBusSysdeps.html#g3d2f3fb32bb759cabe362ca2de383f7d">DBUS_UID_UNSET</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>username or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error to fill in </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the entry in the database </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00127">127</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l01431">_dbus_hash_table_insert_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01593">_dbus_hash_table_insert_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l01150">_dbus_hash_table_lookup_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01255">_dbus_hash_table_lookup_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l01396">_dbus_hash_table_remove_ulong()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00102">_dbus_is_a_number()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01601">_dbus_user_info_fill()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01618">_dbus_user_info_fill_uid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00044">_dbus_user_info_free_allocated()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00113">DBUS_UID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00090">DBusUserInfo::uid</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00094">DBusUserInfo::username</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00043">_dbus_is_console_user()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00637">_dbus_user_database_get_uid()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00656">_dbus_user_database_get_username()</a>.
</div>
</div><p>
<a class="anchor" name="gf6b7452691c0c7d11fec4b9214137052"></a><!-- doxytag: member="dbus-userdb-util.c::_dbus_user_database_lookup_group" ref="gf6b7452691c0c7d11fec4b9214137052" args="(DBusUserDatabase *db, dbus_gid_t gid, const DBusString *groupname, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a>* _dbus_user_database_lookup_group </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> </td>
<td class="paramname"> <em>gid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>groupname</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Looks up a gid or group name in the user database.
<p>
Only one of name or GID can be provided. There are wrapper functions for this that are better to use, this one does no locking or anything on the database and otherwise sort of sucks.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>the database </td></tr>
<tr><td valign="top"></td><td valign="top"><em>gid</em> </td><td>the group ID or <a class="el" href="group__DBusSysdeps.html#g768a080926a119a6131083facc0bd42b">DBUS_GID_UNSET</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>groupname</em> </td><td>group name or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error to fill in </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the entry in the database </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb-util_8c-source.html#l00208">208</a> of file <a class="el" href="dbus-userdb-util_8c-source.html">dbus-userdb-util.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00853">_dbus_group_info_fill()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00872">_dbus_group_info_fill_gid()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00060">_dbus_group_info_free_allocated()</a>, <a class="el" href="dbus-hash_8c-source.html#l01431">_dbus_hash_table_insert_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01593">_dbus_hash_table_insert_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l01150">_dbus_hash_table_lookup_string()</a>, <a class="el" href="dbus-hash_8c-source.html#l01255">_dbus_hash_table_lookup_ulong()</a>, <a class="el" href="dbus-hash_8c-source.html#l01396">_dbus_hash_table_remove_ulong()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00102">_dbus_is_a_number()</a>, <a class="el" href="dbus-protocol_8h-source.html#l00332">DBUS_ERROR_NO_MEMORY</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00115">DBUS_GID_FORMAT</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00108">DBUS_GID_UNSET</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00103">DBusGroupInfo::gid</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00104">DBusGroupInfo::groupname</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb-util_8c-source.html#l00333">_dbus_user_database_get_gid()</a>, and <a class="el" href="dbus-userdb-util_8c-source.html#l00313">_dbus_user_database_get_groupname()</a>.
</div>
</div><p>
<a class="anchor" name="g1dbf2c80952d17707c544f5d86dd8545"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_new" ref="g1dbf2c80952d17707c544f5d86dd8545" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">DBusUserDatabase* _dbus_user_database_new </td>
<td>(</td>
<td class="paramtype">void </td>
<td class="paramname"> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a new user database object used to look up and cache user information.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>new database, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> on out of memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00530">530</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00060">_dbus_group_info_free_allocated()</a>, <a class="el" href="dbus-hash_8c-source.html#l00292">_dbus_hash_table_new()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00603">_dbus_user_database_unref()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00044">_dbus_user_info_free_allocated()</a>, <a class="el" href="group__DBusHashTable.html#ggb0ab9767ffa5b6720a13b3d741630852481fd0166d28da725b3e97f15192434e">DBUS_HASH_STRING</a>, <a class="el" href="dbus-hash_8h-source.html#l00064">DBUS_HASH_ULONG</a>, <a class="el" href="dbus-memory_8h-source.html#l00047">dbus_new0</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="g55dbb78c415da040037442eca4c4e80e"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_database_unref" ref="g55dbb78c415da040037442eca4c4e80e" args="(DBusUserDatabase *db)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_user_database_unref </td>
<td>(</td>
<td class="paramtype">DBusUserDatabase * </td>
<td class="paramname"> <em>db</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Decrements refcount of user database.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>db</em> </td><td>the database </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00603">603</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-hash_8c-source.html#l00374">_dbus_hash_table_unref()</a>, and <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00530">_dbus_user_database_new()</a>.
</div>
</div><p>
<a class="anchor" name="ga40334f7b4f185a437a8bc6d6e0994a1"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_info_free" ref="ga40334f7b4f185a437a8bc6d6e0994a1" args="(DBusUserInfo *info)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_user_info_free </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> * </td>
<td class="paramname"> <em>info</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the members of info (but not info itself).
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the user info struct </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00075">75</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00092">DBusUserInfo::group_ids</a>, <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00095">DBusUserInfo::homedir</a>, and <a class="el" href="dbus-sysdeps-unix_8h-source.html#l00094">DBusUserInfo::username</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00044">_dbus_user_info_free_allocated()</a>.
</div>
</div><p>
<a class="anchor" name="gf725ba6f380a3b926650626eef714b67"></a><!-- doxytag: member="dbus-userdb.c::_dbus_user_info_free_allocated" ref="gf725ba6f380a3b926650626eef714b67" args="(DBusUserInfo *info)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_user_info_free_allocated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> * </td>
<td class="paramname"> <em>info</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Frees the given <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a>'s members with <a class="el" href="group__DBusSysdepsUnix.html#ga40334f7b4f185a437a8bc6d6e0994a1">_dbus_user_info_free()</a> and also calls <a class="el" href="group__DBusMemory.html#g488c6b08cc8c1ddf0203243c4b27a13c">dbus_free()</a> on the block itself.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>info</em> </td><td>the info </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00044">44</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00075">_dbus_user_info_free()</a>, <a class="el" href="dbus-memory_8c-source.html#l00617">dbus_free()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>, and <a class="el" href="dbus-userdb_8c-source.html#l00530">_dbus_user_database_new()</a>.
</div>
</div><p>
<a class="anchor" name="g9c4c1850787bfd457107b95fa1878869"></a><!-- doxytag: member="dbus-userdb.c::_dbus_username_from_current_process" ref="g9c4c1850787bfd457107b95fa1878869" args="(const DBusString **username)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_username_from_current_process </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> ** </td>
<td class="paramname"> <em>username</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets username of user owning current process.
<p>
The returned string is valid until <a class="el" href="group__DBusMemory.html#g8b177950791eebaefc7dc1e836c0964c">dbus_shutdown()</a> is called.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>username</em> </td><td>place to store pointer to username </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-userdb_8c-source.html#l00363">363</a> of file <a class="el" href="dbus-userdb_8c-source.html">dbus-userdb.c</a>.
<p>
References <a class="el" href="dbus-userdb_8c-source.html#l00310">_dbus_user_database_lock_system()</a>, <a class="el" href="dbus-userdb_8c-source.html#l00320">_dbus_user_database_unlock_system()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
</div>
</div><p>
<a class="anchor" name="gf08364813376bd2d8f455d435d85323e"></a><!-- doxytag: member="dbus-internals.c::_dbus_uuid_encode" ref="gf08364813376bd2d8f455d435d85323e" args="(const DBusGUID *uuid, DBusString *encoded)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_uuid_encode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="unionDBusGUID.html">DBusGUID</a> * </td>
<td class="paramname"> <em>uuid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>encoded</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Hex-encode a UUID.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>uuid</em> </td><td>the uuid </td></tr>
<tr><td valign="top"></td><td valign="top"><em>encoded</em> </td><td>string to append hex uuid to </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if no memory </dd></dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00529">529</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-string_8c-source.html#l02442">_dbus_string_hex_encode()</a>, <a class="el" href="dbus-string_8c-source.html#l00229">_dbus_string_init_const_len()</a>, and <a class="el" href="dbus-internals_8h-source.html#l00331">DBusGUID::as_bytes</a>.
<p>
Referenced by <a class="el" href="dbus-internals_8c-source.html#l00715">_dbus_get_local_machine_uuid_encoded()</a>, and <a class="el" href="dbus-server_8c-source.html#l00096">_dbus_server_init_base()</a>.
</div>
</div><p>
<a class="anchor" name="g45f661c5a089ed45233a1acabaf31964"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_verify_daemon_user" ref="g45f661c5a089ed45233a1acabaf31964" args="(const char *user)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_verify_daemon_user </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>user</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Verify that after the fork we can successfully change to this user.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>user</em> </td><td>the username given in the daemon configuration </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if username is valid </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00258">258</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-userdb-util_8c-source.html#l00164">_dbus_get_user_id_and_primary_group()</a>, <a class="el" href="dbus-string_8c-source.html#l00209">_dbus_string_init_const()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
</div>
</div><p>
<a class="anchor" name="gbea2c16d6d3fe7c4eb5b9496fc877f84"></a><!-- doxytag: member="dbus-internals.c::_dbus_warn" ref="gbea2c16d6d3fe7c4eb5b9496fc877f84" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_warn </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Prints a warning message to stderr.
<p>
Can optionally be made to exit fatally by setting DBUS_FATAL_WARNINGS, but this is rarely used. This function should be considered pretty much equivalent to fprintf(stderr). <a class="el" href="group__DBusInternalsUtils.html#g63f2f8a068454b781f214ba596e313b4">_dbus_warn_check_failed()</a> on the other hand is suitable for use when a programming mistake has been made.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>printf-style format string. </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00238">238</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l03171">_dbus_append_keyring_directory_for_credentials()</a>, <a class="el" href="dbus-spawn_8c-source.html#l00264">_dbus_babysitter_unref()</a>, <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00275">_dbus_change_to_daemon_user()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02641">_dbus_full_duplex_pipe()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">_dbus_listen_unix_socket()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l01080">_dbus_marshal_skip_basic()</a>, <a class="el" href="dbus-message_8c-source.html#l00641">_dbus_message_iter_get_args_valist()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00385">_dbus_object_tree_register()</a>, <a class="el" href="dbus-object-tree_8c-source.html#l00428">_dbus_object_tree_unregister_and_unlock()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01827">_dbus_poll()</a>, and <a class="el" href="dbus-message_8c-source.html#l01514">dbus_message_append_args_valist()</a>.
</div>
</div><p>
<a class="anchor" name="g63f2f8a068454b781f214ba596e313b4"></a><!-- doxytag: member="dbus-internals.c::_dbus_warn_check_failed" ref="g63f2f8a068454b781f214ba596e313b4" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _dbus_warn_check_failed </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>format</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"> <em>...</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Prints a "critical" warning to stderr when an assertion fails; differs from _dbus_warn primarily in that it prefixes the pid and defaults to fatal.
<p>
This should be used only when a programming error has been detected. (NOT for unavoidable errors that an app might handle - those should be returned as <a class="el" href="structDBusError.html">DBusError</a>.) Calling this means "there is a bug"
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00266">266</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00072">_dbus_abort()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01696">_dbus_pid_for_log()</a>.
<p>
Referenced by <a class="el" href="dbus-dataslot_8c-source.html#l00067">_dbus_data_slot_allocator_alloc()</a>, <a class="el" href="dbus-internals_8c-source.html#l00715">_dbus_get_local_machine_uuid_encoded()</a>, <a class="el" href="dbus-marshal-basic_8c-source.html#l00503">_dbus_marshal_read_basic()</a>, <a class="el" href="dbus-transport_8c-source.html#l00830">_dbus_transport_handle_watch()</a>, <a class="el" href="dbus-marshal-recursive_8c-source.html#l00973">_dbus_type_reader_recurse()</a>, <a class="el" href="dbus-connection_8c-source.html#l02741">dbus_connection_close()</a>, <a class="el" href="dbus-connection_8c-source.html#l05212">dbus_connection_remove_filter()</a>, <a class="el" href="dbus-connection_8c-source.html#l04649">dbus_connection_set_timeout_functions()</a>, <a class="el" href="dbus-connection_8c-source.html#l04567">dbus_connection_set_watch_functions()</a>, <a class="el" href="dbus-connection_8c-source.html#l02610">dbus_connection_unref()</a>, <a class="el" href="dbus-server_8c-source.html#l00952">dbus_server_set_timeout_functions()</a>, <a class="el" href="dbus-server_8c-source.html#l00899">dbus_server_set_watch_functions()</a>, and <a class="el" href="dbus-watch_8c-source.html#l00640">dbus_watch_handle()</a>.
</div>
</div><p>
<a class="anchor" name="g912d34a7e40b3a57864972e6d6ab65ba"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_windows_user_is_process_owner" ref="g912d34a7e40b3a57864972e6d6ab65ba" 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#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_windows_user_is_process_owner </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>windows_sid</em> </td>
<td> ) </td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Checks to see if the Windows user SID matches the owner of the process.
<p>
Should always return <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on UNIX.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>windows_sid</em> </td><td>the Windows user SID </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">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#l00966">966</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>.
</div>
</div><p>
<a class="anchor" name="g7461c6fa553c30f4eb8482675e86668c"></a><!-- doxytag: member="dbus-sysdeps-util-unix.c::_dbus_write_pid_file" ref="g7461c6fa553c30f4eb8482675e86668c" args="(const DBusString *filename, unsigned long pid, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_write_pid_file </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned long </td>
<td class="paramname"> <em>pid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </td>
<td class="paramname"> <em>error</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Creates a file containing the process ID.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>filename</em> </td><td>the filename to write to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>pid</em> </td><td>our process ID </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for errors </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> on failure </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00202">202</a> of file <a class="el" href="dbus-sysdeps-util-unix_8c-source.html">dbus-sysdeps-util-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">_dbus_close()</a>, <a class="el" href="dbus-sysdeps_8c-source.html#l00899">_dbus_error_from_errno()</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</a>, <a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a>, <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, and <a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00074">_dbus_become_daemon()</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="g7599f9e4a6b9551b28e68b51b66851d3"></a><!-- doxytag: member="dbus-internals.c::_dbus_return_if_fail_warning_format" ref="g7599f9e4a6b9551b28e68b51b66851d3" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char <a class="el" href="group__DBusInternalsUtils.html#g7599f9e4a6b9551b28e68b51b66851d3">_dbus_return_if_fail_warning_format</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">
<span class="stringliteral">"arguments to %s() were incorrect, assertion \"%s\" failed in file %s line %d.\n"</span>
<span class="stringliteral">"This is normally a bug in some application using the D-Bus library.\n"</span>
</pre></div>String used in _dbus_return_if_fail macro.
<p>
<p>
Definition at line <a class="el" href="dbus-internals_8c-source.html#l00788">788</a> of file <a class="el" href="dbus-internals_8c-source.html">dbus-internals.c</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:13 2009 for D-Bus by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>