From f01534401412812bc1d904812dfb4b0a31ee8fff Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Fri, 26 Apr 2013 02:41:05 -0500 Subject: Add posix headers to toynet.h, move xioctl() to lib.c, introduce lib/net.c and move xsocket() to it. --- lib/lib.c | 22 ++++++++++++++++++++++ lib/lib.h | 5 +++++ lib/net.c | 10 ++++++++++ 3 files changed, 37 insertions(+) create mode 100644 lib/net.c (limited to 'lib') diff --git a/lib/lib.c b/lib/lib.c index 87ff12cb..4d8e23a4 100644 --- a/lib/lib.c +++ b/lib/lib.c @@ -739,6 +739,28 @@ char *xreadfile(char *name) */ + +// Sleep for this many thousandths of a second +void msleep(long miliseconds) +{ + struct timespec ts; + + ts.tv_sec = miliseconds/1000; + ts.tv_nsec = (miliseconds%1000)*1000000; + nanosleep(&ts, &ts); +} + +int xioctl(int fd, int request, void *data) +{ + int rc; + + errno = 0; + rc = ioctl(fd, request, data); + if (rc == -1 && errno) perror_exit("ioctl %d", request); + + return rc; +} + // Open a /var/run/NAME.pid file, dying if we can't write it or if it currently // exists and is this executable. void xpidfile(char *name) diff --git a/lib/lib.h b/lib/lib.h index 18c0155f..ab858f90 100644 --- a/lib/lib.h +++ b/lib/lib.h @@ -119,6 +119,8 @@ off_t xlseek(int fd, off_t offset, int whence); off_t lskip(int fd, off_t offset); char *readfile(char *name); char *xreadfile(char *name); +void msleep(long miliseconds); +int xioctl(int fd, int request, void *data); char *xgetcwd(void); void xstat(char *path, struct stat *st); char *xabspath(char *path, int exact); @@ -152,6 +154,9 @@ int yesno(char *prompt, int def); void for_each_pid_with_name_in(char **names, int (*callback)(pid_t pid, char *name)); unsigned long xstrtoul(const char *nptr, char **endptr, int base); +// net.c +int xsocket(int domain, int type, int protocol); + // getmountlist.c struct mtab_list { struct mtab_list *next; diff --git a/lib/net.c b/lib/net.c new file mode 100644 index 00000000..f4b26439 --- /dev/null +++ b/lib/net.c @@ -0,0 +1,10 @@ +#include "toys.h" +#include "toynet.h" + +int xsocket(int domain, int type, int protocol) +{ + int fd = socket(domain, type, protocol); + + if (fd < 0) perror_exit("socket %x %x", type, protocol); + return fd; +} -- cgit v1.2.3