/*
* This file is part of DisOrder.
- * Copyright (C) 2004, 2005 Richard Kettlewell
+ * Copyright (C) 2004, 2005, 2007, 2008 Richard Kettlewell
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* USA
*/
-#include <config.h>
+#include "common.h"
#include <unistd.h>
#include <errno.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
#include "syscalls.h"
#include "log.h"
return pid;
}
-void xclose(int fd) {
- mustnotbeminus1("close", close(fd));
+void xclose_guts(const char *path, int line, int fd) {
+ if(close(fd) < 0)
+ fatal(errno, "%s:%d: close %d", path, line, fd);
}
void xdup2(int fd1, int fd2) {
fcntl(fd, F_GETFL)) | O_NONBLOCK));
}
+void blocking(int fd) {
+ mustnotbeminus1("fcntl F_SETFL",
+ fcntl(fd, F_SETFL,
+ mustnotbeminus1("fcntl F_GETFL",
+ fcntl(fd, F_GETFL)) & ~O_NONBLOCK));
+}
+
void cloexec(int fd) {
mustnotbeminus1("fcntl F_SETFD",
fcntl(fd, F_SETFD,
comment-column:40
End:
*/
-/* arch-tag:0be4384b4081d464d1a2fad746469d3d */