#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
+#include "lib/util/sys_rw.h"
#include "ctdb_private.h"
#include "ctdb_client.h"
-#include "common/system.h"
#include "common/logging.h"
#include "common/common.h"
int mkdir_p(const char *dir, int mode);
void mkdir_p_or_die(const char *dir, int mode);
-ssize_t sys_read(int fd, void *buf, size_t count);
-ssize_t sys_write(int fd, const void *buf, size_t count);
-
void ctdb_wait_for_process_to_exit(pid_t pid);
int ctdb_parse_connections(FILE *fp, TALLOC_CTX *mem_ctx,
}
}
-/* A read wrapper that will deal with EINTR. For now, copied from
- * source3/lib/system.c
- */
-ssize_t sys_read(int fd, void *buf, size_t count)
-{
- ssize_t ret;
-
- do {
- ret = read(fd, buf, count);
-#if defined(EWOULDBLOCK)
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK));
-#else
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-#endif
- return ret;
-}
-
-/* A write wrapper that will deal with EINTR. For now, copied from
- * source3/lib/system.c
- */
-ssize_t sys_write(int fd, const void *buf, size_t count)
-{
- ssize_t ret;
-
- do {
- ret = write(fd, buf, count);
-#if defined(EWOULDBLOCK)
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK));
-#else
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-#endif
- return ret;
-}
-
void ctdb_wait_for_process_to_exit(pid_t pid)
{
while (kill(pid, 0) == 0 || errno != ESRCH) {
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include "lib/util/time.h"
#include "lib/util/strv.h"
#include "lib/util/strv_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/blocking.h"
#include "ctdb_private.h"
#include "common/common.h"
#include "common/logging.h"
-#include "common/system.h"
#include "ctdb_cluster_mutex.h"
#include <talloc.h>
#include "lib/util/blocking.h"
+#include "lib/util/sys_rw.h"
#include "ctdb_private.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "ctdb_private.h"
-#include "common/system.h"
#include "common/common.h"
#include "common/logging.h"
#include <talloc.h>
#include <tdb.h>
+#include "lib/util/sys_rw.h"
+
#include "protocol/protocol.h"
#include "common/system.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/blocking.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/time.h"
#include "ctdb_private.h"
#include "ctdb_client.h"
-#include "common/system.h"
#include "common/common.h"
#include "common/logging.h"
#include <talloc.h>
#include "lib/util/debug.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/time_basic.h"
#include "ctdb_private.h"
#include "ctdb_client.h"
-#include "common/system.h"
-
#define CTDB_LOG_FILE_PREFIX "file"
struct file_state {
#include "system/filesys.h"
#include "system/network.h"
+#include "lib/util/sys_rw.h"
+
/* protocol.h is just needed for ctdb_sock_addr, which is used in system.h */
#include "protocol/protocol.h"
#include "common/system.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include <libgen.h>
#include "lib/tdb_wrap/tdb_wrap.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/time.h"
#include "lib/util/tevent_unix.h"
* Utility functions
*/
-static ssize_t sys_write(int fd, const void *buf, size_t count)
-{
- ssize_t ret;
-
- do {
- ret = write(fd, buf, count);
-#if defined(EWOULDBLOCK)
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK));
-#else
- } while (ret == -1 && (errno == EINTR || errno == EAGAIN));
-#endif
- return ret;
-}
-
static bool generic_recv(struct tevent_req *req, int *perr)
{
int err;
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include "lib/tdb_wrap/tdb_wrap.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "lib/util/util_process.h"
#include "ctdb_private.h"
#include "ctdb_client.h"
#include "common/rb_tree.h"
-#include "common/system.h"
#include "common/common.h"
#include "common/logging.h"
#include "lib/util/dlinklist.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "ctdb_private.h"
#include "common/rb_tree.h"
-#include "common/system.h"
#include "common/common.h"
#include "common/logging.h"
#include "ctdb_version.h"
#include "lib/util/debug.h"
#include "lib/util/samba_util.h"
+#include "lib/util/sys_rw.h"
#include "common/db_hash.h"
#include "common/logging.h"
ctdb_update_record.c
ctdb_lock.c ctdb_fork.c'''),
includes='include',
- deps='ctdb-ipalloc replace popt talloc tevent tdb talloc_report')
+ deps='''ctdb-ipalloc replace sys_rw
+ popt talloc tevent tdb talloc_report''')
bld.SAMBA_BINARY('ctdbd',
source='',
bld.SAMBA_BINARY('ctdb',
source='tools/ctdb.c',
deps='''ctdb-client2 ctdb-protocol ctdb-util ctdb-system
- samba-util popt''',
+ samba-util sys_rw popt''',
install_path='${BINDIR}',
manpages='ctdb.1')
bld.SAMBA_BINARY('ctdb_lock_helper',
source='server/ctdb_lock_helper.c',
- deps='samba-util ctdb-system talloc tdb',
+ deps='samba-util sys_rw ctdb-system talloc tdb',
includes='include',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_event_helper',
source='server/ctdb_event_helper.c',
includes='include',
- deps='samba-util ctdb-system replace tdb',
+ deps='samba-util sys_rw ctdb-system replace tdb',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_recovery_helper',
source='server/ctdb_recovery_helper.c',
deps='''ctdb-client2 ctdb-protocol ctdb-util
- samba-util replace tdb''',
+ samba-util sys_rw replace tdb''',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ctdb_mutex_fcntl_helper',
source='server/ctdb_mutex_fcntl_helper.c',
- deps='ctdb-system',
+ deps='sys_rw ctdb-system',
includes='include',
install_path='${CTDB_HELPER_BINDIR}')
bld.SAMBA_BINARY('ibwrapper_test',
source='ib/ibwrapper_test.c',
includes='include',
- deps='replace talloc ctdb-client ctdb-common' +
+ deps='replace talloc ctdb-client ctdb-common sys_rw' +
ib_deps,
install_path='${CTDB_TEST_LIBEXECDIR}')