changeset 883:aca8323e2690

Add posix headers to toynet.h, move xioctl() to lib.c, introduce lib/net.c and move xsocket() to it.
author Rob Landley <rob@landley.net>
date Fri, 26 Apr 2013 02:41:05 -0500
parents ae7a0fd5363f
children ac9991f66d0d
files lib/lib.c lib/lib.h lib/net.c toynet.h toys/pending/ifconfig.c
diffstat 5 files changed, 44 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/lib/lib.c	Fri Apr 26 01:59:13 2013 -0500
+++ b/lib/lib.c	Fri Apr 26 02:41:05 2013 -0500
@@ -739,6 +739,28 @@
 
 */
 
+
+// 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)
--- a/lib/lib.h	Fri Apr 26 01:59:13 2013 -0500
+++ b/lib/lib.h	Fri Apr 26 02:41:05 2013 -0500
@@ -119,6 +119,8 @@
 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 @@
 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;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/net.c	Fri Apr 26 02:41:05 2013 -0500
@@ -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;
+}
--- a/toynet.h	Fri Apr 26 01:59:13 2013 -0500
+++ b/toynet.h	Fri Apr 26 02:41:05 2013 -0500
@@ -2,9 +2,12 @@
 // don't include network support, so we shouldn't include it unless we're
 // going to build it.
 
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <net/if.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <poll.h>
 #include <sys/socket.h>
 #include <sys/un.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include <poll.h>
+
--- a/toys/pending/ifconfig.c	Fri Apr 26 01:59:13 2013 -0500
+++ b/toys/pending/ifconfig.c	Fri Apr 26 02:41:05 2013 -0500
@@ -32,7 +32,6 @@
 #include "toys.h"
 #include "toynet.h"
 
-#include <net/if.h>
 #include <net/if_arp.h>
 #include <net/ethernet.h>
 
@@ -61,9 +60,6 @@
   unsigned long long val[16];
 };
 
-#define HW_NAME_LEN 20
-#define HW_TITLE_LEN 30
-
 #define IO_MAP_INDEX 0x100
 
 //from kernel header ipv6.h
@@ -96,19 +92,6 @@
 # define INFINIBAND_ALEN 20
 #endif
 
-void xioctl(int fd, int request, void *data)
-{
-  if (ioctl(fd, request, data) < 0) perror_exit("ioctl %d", request);
-}
-
-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;
-}
-
 /*
  * verify the host is local unix path.
  * if so, set the swl input param accordingly.