00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <config.h>
00026 #include "dbus-protocol.h"
00027 #include "dbus-string.h"
00028 #include "dbus-internals.h"
00029 #include "dbus-pipe.h"
00030 #include "dbus-sysdeps-unix.h"
00031
00032 #include <errno.h>
00033
00044 int
00045 _dbus_pipe_write (DBusPipe *pipe,
00046 const DBusString *buffer,
00047 int start,
00048 int len,
00049 DBusError *error)
00050 {
00051 int written;
00052
00053 written = _dbus_write (pipe->fd_or_handle, buffer, start, len);
00054 if (written < 0)
00055 {
00056 dbus_set_error (error, DBUS_ERROR_FAILED,
00057 "Writing to pipe: %s\n",
00058 _dbus_strerror (errno));
00059 }
00060 return written;
00061 }
00062
00070 int
00071 _dbus_pipe_close (DBusPipe *pipe,
00072 DBusError *error)
00073 {
00074 if (!_dbus_close (pipe->fd_or_handle, error))
00075 {
00076 return -1;
00077 }
00078 else
00079 {
00080 _dbus_pipe_invalidate (pipe);
00081 return 0;
00082 }
00083 }