|
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 : /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: UNIX-specific internal API</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>UNIX-specific internal API<br>
<small>
[<a class="el" href="group__DBusInternals.html">D-Bus secret internal implementation details</a>]</small>
</h1>Internal system-dependent API available on UNIX only.
<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="structDBusUserInfo.html">DBusUserInfo</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Information about a UNIX user. <a href="structDBusUserInfo.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="structDBusGroupInfo.html">DBusGroupInfo</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Information about a UNIX group. <a href="structDBusGroupInfo.html#_details">More...</a><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="gd5b51b2ac2fa9bd8b35442cc242c6605"></a><!-- doxytag: member="DBusSysdepsUnix::DBusUserInfo" ref="gd5b51b2ac2fa9bd8b35442cc242c6605" args="" -->
typedef <a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#gd5b51b2ac2fa9bd8b35442cc242c6605">DBusUserInfo</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Information about a UNIX user. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4530e3a5663c77a98ccc208a1fe0ad14"></a><!-- doxytag: member="DBusSysdepsUnix::DBusGroupInfo" ref="g4530e3a5663c77a98ccc208a1fe0ad14" args="" -->
typedef <a class="el" href="structDBusGroupInfo.html">DBusGroupInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#g4530e3a5663c77a98ccc208a1fe0ad14">DBusGroupInfo</a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Information about a UNIX group. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></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__DBusSysdepsUnix.html#gc448479a1674e3b86cee9a4bdc7eba03">_dbus_close</a> (int fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Closes a file descriptor. <a href="#gc448479a1674e3b86cee9a4bdc7eba03"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read</a> (int fd, <a class="el" href="structDBusString.html">DBusString</a> *buffer, int count)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Thin wrapper around the read() system call that appends the data it reads to the <a class="el" href="structDBusString.html">DBusString</a> buffer. <a href="#gf52cb1d5b9fc5611808ce32eff898c28"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#g3a789bcdfd3d468c2bf917fa5081b27f">_dbus_write</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer, int start, int len)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Thin wrapper around the write() system call that writes a part of a <a class="el" href="structDBusString.html">DBusString</a> and handles EINTR for you. <a href="#g3a789bcdfd3d468c2bf917fa5081b27f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#g506a183b1f6970d1bfca165ab3de4736">_dbus_write_two</a> (int fd, const <a class="el" href="structDBusString.html">DBusString</a> *buffer1, int start1, int len1, const <a class="el" href="structDBusString.html">DBusString</a> *buffer2, int start2, int len2)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Like <a class="el" href="group__DBusSysdepsUnix.html#g3a789bcdfd3d468c2bf917fa5081b27f">_dbus_write()</a> but will use writev() if possible to write both buffers in sequence. <a href="#g506a183b1f6970d1bfca165ab3de4736"></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__DBusSysdepsUnix.html#g281d8697f33900cc1da984ea5a24aca8">_dbus_open_unix_socket</a> (int *fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Opens a UNIX domain socket (as in the socket() call). <a href="#g281d8697f33900cc1da984ea5a24aca8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#g0228009923a105d50a0849b24acbc31e">_dbus_connect_unix_socket</a> (const char *path, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> abstract, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a socket and connects it to the UNIX domain socket at the given path. <a href="#g0228009923a105d50a0849b24acbc31e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#g2cd48fe3d7aa14d0d3c7813cdddb3f74">_dbus_listen_unix_socket</a> (const char *path, <a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> abstract, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates a socket and binds it to the given path, then listens on the socket. <a href="#g2cd48fe3d7aa14d0d3c7813cdddb3f74"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8ce0c309cd13c15fe215b7b72cbc3f48"></a><!-- doxytag: member="DBusSysdepsUnix::_dbus_read_credentials" ref="g8ce0c309cd13c15fe215b7b72cbc3f48" args="(int client_fd, DBusCredentials *credentials, DBusError *error)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_read_credentials</b> (int client_fd, <a class="el" href="structDBusCredentials.html">DBusCredentials</a> *credentials, <a class="el" href="structDBusError.html">DBusError</a> *error)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ged5d695b1c0b1f265ef3448c7de1b33a"></a><!-- doxytag: member="DBusSysdepsUnix::_dbus_send_credentials" ref="ged5d695b1c0b1f265ef3448c7de1b33a" args="(int server_fd, DBusError *error)" -->
<a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_send_credentials</b> (int server_fd, <a class="el" href="structDBusError.html">DBusError</a> *error)</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__DBusSysdepsUnix.html#g95e9deb9dd2d76aa3a64fdac555d956d">_dbus_user_info_fill</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info, 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">Gets user info for the given username. <a href="#g95e9deb9dd2d76aa3a64fdac555d956d"></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__DBusSysdepsUnix.html#gfcc2fbcde2c72f499f04fa43d97dfcec">_dbus_user_info_fill_uid</a> (<a class="el" href="structDBusUserInfo.html">DBusUserInfo</a> *info, <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">Gets user info for the given user ID. <a href="#gfcc2fbcde2c72f499f04fa43d97dfcec"></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__DBusSysdepsUnix.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"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.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__DBusSysdepsUnix.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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.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__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__DBusSysdepsUnix.html#ge7701063932951bdd8a7df0dcacb3bab">_dbus_getuid</a> (void)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets our UID. <a href="#ge7701063932951bdd8a7df0dcacb3bab"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5a48800e96a8eec61b8d4baaad7498b0"></a><!-- doxytag: member="DBusSysdepsUnix::_dbus_getgid" ref="g5a48800e96a8eec61b8d4baaad7498b0" args="(void)" -->
<a class="el" href="group__DBusSysdeps.html#g2f5c2e418b81ec2a86594f56ec6d7627">dbus_gid_t</a> </td><td class="memItemRight" valign="bottom"><b>_dbus_getgid</b> (void)</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__DBusSysdepsUnix.html#g5a1854d99394d4593522ff5f2ca380d9">_dbus_parse_uid</a> (const <a class="el" href="structDBusString.html">DBusString</a> *uid_str, <a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> *uid)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets a UID from a UID string. <a href="#g5a1854d99394d4593522ff5f2ca380d9"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Internal system-dependent API available on UNIX only.
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="gc448479a1674e3b86cee9a4bdc7eba03"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_close" ref="gc448479a1674e3b86cee9a4bdc7eba03" args="(int fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_close </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </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>
Closes a file descriptor.
<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>fd</em> </td><td>the file descriptor </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>error object </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga93f0eb578d23995850d61f7d61c55c1">FALSE</a> if error set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02531">2531</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-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-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>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00133">_dbus_close_socket()</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-unix_8c-source.html#l02222">_dbus_create_file_exclusively()</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#l02424">_dbus_generate_random_bytes()</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#l00212">_dbus_pipe_close()</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="g0228009923a105d50a0849b24acbc31e"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_connect_unix_socket" ref="g0228009923a105d50a0849b24acbc31e" args="(const char *path, dbus_bool_t abstract, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_connect_unix_socket </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>path</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>abstract</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 socket and connects it to the UNIX domain socket at the given path.
<p>
The connection fd is returned, and is set up as nonblocking.<p>
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.<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>path</em> </td><td>the path to UNIX domain socket </td></tr>
<tr><td valign="top"></td><td valign="top"><em>abstract</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> to use abstract namespace </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for error code </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>connection file descriptor or -1 on error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00473">473</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-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-sysdeps-unix_8c-source.html#l00118">_dbus_open_unix_socket()</a>, <a class="el" href="dbus-internals_8h-source.html#l00159">_DBUS_ZERO</a>, <a class="el" href="dbus-protocol_8h-source.html#l00342">DBUS_ERROR_BAD_ADDRESS</a>, <a class="el" href="dbus-protocol_8h-source.html#l00344">DBUS_ERROR_NOT_SUPPORTED</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>.
<p>
Referenced by <a class="el" href="dbus-transport-unix_8c-source.html#l00053">_dbus_transport_new_for_domain_socket()</a>.
</div>
</div><p>
<a class="anchor" name="ge7701063932951bdd8a7df0dcacb3bab"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_getuid" ref="ge7701063932951bdd8a7df0dcacb3bab" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusSysdeps.html#g186e987b700f9ddc6cea8aa0db82b151">dbus_uid_t</a> _dbus_getuid </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 our UID.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>process UID </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01684">1684</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01664">_dbus_append_user_from_current_process()</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#l01634">_dbus_credentials_add_from_current_process()</a>, and <a class="el" href="dbus-sysdeps-util-unix_8c-source.html#l00953">_dbus_unix_user_is_process_owner()</a>.
</div>
</div><p>
<a class="anchor" name="g23814bdf1859c6aa52da1feab8f1aed4"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_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-unix.h::_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-sysdeps-unix.h::_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="g2cd48fe3d7aa14d0d3c7813cdddb3f74"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_listen_unix_socket" ref="g2cd48fe3d7aa14d0d3c7813cdddb3f74" args="(const char *path, dbus_bool_t abstract, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_listen_unix_socket </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>path</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>abstract</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 socket and binds it to the given path, then listens on the socket.
<p>
The socket is set to be nonblocking.<p>
Uses abstract sockets instead of filesystem-linked sockets if requested (it's possible only on Linux; see "man 7 unix" on Linux). On non-Linux abstract socket usage always fails.<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>path</em> </td><td>the socket name </td></tr>
<tr><td valign="top"></td><td valign="top"><em>abstract</em> </td><td><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> to use abstract namespace </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>the listening file descriptor or -1 on error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">609</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-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-sysdeps-unix_8c-source.html#l00118">_dbus_open_unix_socket()</a>, <a class="el" href="dbus-internals_8c-source.html#l00238">_dbus_warn()</a>, <a class="el" href="dbus-internals_8h-source.html#l00159">_DBUS_ZERO</a>, <a class="el" href="dbus-protocol_8h-source.html#l00342">DBUS_ERROR_BAD_ADDRESS</a>, <a class="el" href="dbus-protocol_8h-source.html#l00344">DBUS_ERROR_NOT_SUPPORTED</a>, <a class="el" href="dbus-errors_8c-source.html#l00326">dbus_set_error()</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-server-unix_8c-source.html#l00167">_dbus_server_new_for_domain_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g281d8697f33900cc1da984ea5a24aca8"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_open_unix_socket" ref="g281d8697f33900cc1da984ea5a24aca8" args="(int *fd, DBusError *error)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__DBusTypes.html#g39c9cb0f3a2a8ad6f55cc4855d035349">dbus_bool_t</a> _dbus_open_unix_socket </td>
<td>(</td>
<td class="paramtype">int * </td>
<td class="paramname"> <em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusError.html">DBusError</a> * </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>
Opens a UNIX domain socket (as in the socket() call).
<p>
Does not bind the socket. <dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>fd</em> </td><td>return location for socket descriptor </td></tr>
<tr><td valign="top"></td><td valign="top"><em>error</em> </td><td>return location for an 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 is set </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00118">118</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00473">_dbus_connect_unix_socket()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00609">_dbus_listen_unix_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g5a1854d99394d4593522ff5f2ca380d9"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_parse_uid" ref="g5a1854d99394d4593522ff5f2ca380d9" args="(const DBusString *uid_str, 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_parse_uid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>uid_str</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 a UID from a UID 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>uid_str</em> </td><td>the UID in string form </td></tr>
<tr><td valign="top"></td><td valign="top"><em>uid</em> </td><td>UID to fill in </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><a class="el" href="group__DBusMacros.html#ga8cecfc5c5c054d2875c03e77b7be15d">TRUE</a> if successfully filled in UID </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l01709">1709</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8c-source.html#l00507">_dbus_string_parse_int()</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="gf52cb1d5b9fc5611808ce32eff898c28"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_read" ref="gf52cb1d5b9fc5611808ce32eff898c28" args="(int fd, DBusString *buffer, int count)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_read </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDBusString.html">DBusString</a> * </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>count</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>
Thin wrapper around the read() system call that appends the data it reads to the <a class="el" href="structDBusString.html">DBusString</a> buffer.
<p>
It appends up to the given count, and returns the same value and same errno as read(). The only exception is that <a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read()</a> handles EINTR for you. Also, <a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read()</a> can return ENOMEM, even though regular UNIX read doesn't.<p>
Unlike <a class="el" href="group__DBusSysdeps.html#g6fe72fa1c0484ac5594b08145ea19530">_dbus_read_socket()</a>, <a class="el" href="group__DBusSysdepsUnix.html#gf52cb1d5b9fc5611808ce32eff898c28">_dbus_read()</a> is not available 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>fd</em> </td><td>the file descriptor to read from </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the buffer to append data to </td></tr>
<tr><td valign="top"></td><td valign="top"><em>count</em> </td><td>the amount of data to read </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes read or -1 </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00270">270</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-internals_8h-source.html#l00109">_dbus_assert</a>, <a class="el" href="dbus-string_8c-source.html#l00457">_dbus_string_get_data_len()</a>, <a class="el" href="dbus-string_8c-source.html#l00812">_dbus_string_lengthen()</a>, <a class="el" href="dbus-string_8c-source.html#l00854">_dbus_string_set_length()</a>, and <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">_dbus_verbose_bytes_of_string()</a>.
<p>
Referenced by <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#l02424">_dbus_generate_random_bytes()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02754">_dbus_get_autolaunch_address()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00149">_dbus_read_socket()</a>.
</div>
</div><p>
<a class="anchor" name="g95e9deb9dd2d76aa3a64fdac555d956d"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_user_info_fill" ref="g95e9deb9dd2d76aa3a64fdac555d956d" args="(DBusUserInfo *info, const DBusString *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_info_fill </td>
<td>(</td>
<td class="paramtype"><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">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>
Gets user info 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>info</em> </td><td>user info object to initialize </td></tr>
<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>error</em> </td><td>error return </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-unix_8c-source.html#l01601">1601</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-sysdeps_8h-source.html#l00106">DBUS_UID_UNSET</a>.
<p>
Referenced by <a class="el" href="dbus-userdb_8c-source.html#l00127">_dbus_user_database_lookup()</a>.
</div>
</div><p>
<a class="anchor" name="gfcc2fbcde2c72f499f04fa43d97dfcec"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_user_info_fill_uid" ref="gfcc2fbcde2c72f499f04fa43d97dfcec" args="(DBusUserInfo *info, 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_user_info_fill_uid </td>
<td>(</td>
<td class="paramtype"><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="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>
Gets user info for the given user 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>user info object to initialize </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>error</em> </td><td>error return </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-unix_8c-source.html#l01618">1618</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <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>.
</div>
</div><p>
<a class="anchor" name="ga40334f7b4f185a437a8bc6d6e0994a1"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_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="g3a789bcdfd3d468c2bf917fa5081b27f"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_write" ref="g3a789bcdfd3d468c2bf917fa5081b27f" args="(int fd, const DBusString *buffer, int start, int len)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_write </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </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>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len</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>
Thin wrapper around the write() system call that writes a part of a <a class="el" href="structDBusString.html">DBusString</a> and handles EINTR for you.
<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>fd</em> </td><td>the file descriptor to write </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer</em> </td><td>the buffer to write data from </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start</em> </td><td>the first byte in the buffer to write </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len</em> </td><td>the number of bytes to try to write </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>the number of bytes written or -1 on error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00330">330</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.c</a>.
<p>
References <a class="el" href="dbus-marshal-basic_8c-source.html#l01402">_dbus_verbose_bytes_of_string()</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00186">_dbus_pipe_write()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l02057">_dbus_string_save_to_file()</a>, <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00167">_dbus_write_socket()</a>, and <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00376">_dbus_write_two()</a>.
</div>
</div><p>
<a class="anchor" name="g506a183b1f6970d1bfca165ab3de4736"></a><!-- doxytag: member="dbus-sysdeps-unix.h::_dbus_write_two" ref="g506a183b1f6970d1bfca165ab3de4736" args="(int fd, const DBusString *buffer1, int start1, int len1, const DBusString *buffer2, int start2, int len2)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int _dbus_write_two </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"> <em>fd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>buffer1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structDBusString.html">DBusString</a> * </td>
<td class="paramname"> <em>buffer2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>start2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"> <em>len2</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>
Like <a class="el" href="group__DBusSysdepsUnix.html#g3a789bcdfd3d468c2bf917fa5081b27f">_dbus_write()</a> but will use writev() if possible to write both buffers in sequence.
<p>
The return value is the number of bytes written in the first buffer, plus the number written in the second. If the first buffer is written successfully and an error occurs writing the second, the number of bytes in the first is returned (i.e. the error is ignored), on systems that don't have writev. Handles EINTR for you. The second buffer may be <a class="el" href="group__DBusMacros.html#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>fd</em> </td><td>the file descriptor </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer1</em> </td><td>first buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start1</em> </td><td>first byte to write in first buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len1</em> </td><td>number of bytes to write from first buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>buffer2</em> </td><td>second buffer, or <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> </td></tr>
<tr><td valign="top"></td><td valign="top"><em>start2</em> </td><td>first byte to write in second buffer </td></tr>
<tr><td valign="top"></td><td valign="top"><em>len2</em> </td><td>number of bytes to write in second buffer </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>total bytes written from both buffers, or -1 on error </dd></dl>
<p>
Definition at line <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00376">376</a> of file <a class="el" href="dbus-sysdeps-unix_8c-source.html">dbus-sysdeps-unix.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#l00330">_dbus_write()</a>, and <a class="el" href="group__DBusMacros.html#g070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>.
<p>
Referenced by <a class="el" href="dbus-sysdeps-unix_8c-source.html#l00240">_dbus_write_socket_two()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Mon Dec 14 22:26:14 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>