aboutsummaryrefslogtreecommitdiffstats
path: root/src/common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common.h')
-rw-r--r--src/common.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/common.h b/src/common.h
index 0acee7f..086dd7f 100644
--- a/src/common.h
+++ b/src/common.h
@@ -23,6 +23,11 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
+#include <stddef.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <fcntl.h>
@@ -34,6 +39,9 @@
#endif
+/* ttyname is defined in <unistd.h> */
+#define ttyname tty
+
#define LIST_ARGUMENTS X(action) X(username) X(ttyname) X(pid) X(hostname)
#define streq(a, b) ((a == b) || (a && b && !strcmp(a, b)))
@@ -88,5 +96,19 @@ static inline const char* get_hostaddress(const char* hostname)
}
+static inline int write_all(int fd, char* data, size_t n)
+{
+ ssize_t wrote;
+
+ while (n > 0)
+ if (wrote = write(fd, data, n), wrote >= 0)
+ data += wrote, n -= (size_t)wrote;
+ else if (errno != EINTR)
+ return -1;
+
+ return 0;
+}
+
+
int do_log(void);