From 829456efb34ab796f7aa743fa7f37a5ecd8b3455 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Tue, 4 Jun 2013 10:23:49 +0200 Subject: xio: rename xio to ioops and reduce its includes Rename xio to ioops (io-ops) and boil its include files down to a minimum. Signed-off-by: Daniel Borkmann --- astraceroute.c | 2 +- astraceroute/Makefile | 2 +- ct_client.c | 2 +- ct_server.c | 2 +- ct_usermgmt.c | 2 +- curve.c | 2 +- curve.h | 2 +- curvetun.c | 2 +- curvetun/Makefile | 2 +- flowtop.c | 2 +- flowtop/Makefile | 2 +- geoip.c | 2 +- ifpps.c | 2 +- ifpps/Makefile | 2 +- ioops.c | 98 ++++++++++++++++++++++++++++++++++++++++++++ ioops.h | 12 ++++++ netsniff-ng.c | 2 +- netsniff-ng/Makefile | 2 +- pcap_io.h | 2 +- pcap_mm.c | 2 +- pcap_rw.c | 2 +- pcap_sg.c | 2 +- trafgen.c | 2 +- trafgen/Makefile | 2 +- xio.c | 111 -------------------------------------------------- xio.h | 12 ------ 26 files changed, 132 insertions(+), 145 deletions(-) create mode 100644 ioops.c create mode 100644 ioops.h delete mode 100644 xio.c delete mode 100644 xio.h diff --git a/astraceroute.c b/astraceroute.c index d526bfa..c0f317f 100644 --- a/astraceroute.c +++ b/astraceroute.c @@ -37,7 +37,7 @@ #include "pkt_buff.h" #include "proto.h" #include "xmalloc.h" -#include "xio.h" +#include "ioops.h" #include "csum.h" #include "geoip.h" #include "xutils.h" diff --git a/astraceroute/Makefile b/astraceroute/Makefile index 4cf9a3e..82e5b5b 100644 --- a/astraceroute/Makefile +++ b/astraceroute/Makefile @@ -3,7 +3,7 @@ astraceroute-libs = -lGeoIP \ -lz astraceroute-objs = xmalloc.o \ - xio.o \ + ioops.o \ xutils.o \ proto_none.o \ tprintf.o \ diff --git a/ct_client.c b/ct_client.c index 9ca72df..1b3057b 100644 --- a/ct_client.c +++ b/ct_client.c @@ -28,7 +28,7 @@ #include "built_in.h" #include "die.h" #include "str.h" -#include "xio.h" +#include "ioops.h" #include "xutils.h" #include "curve.h" #include "xmalloc.h" diff --git a/ct_server.c b/ct_server.c index 8aed17f..565eb1f 100644 --- a/ct_server.c +++ b/ct_server.c @@ -30,7 +30,7 @@ #include "die.h" #include "xutils.h" -#include "xio.h" +#include "ioops.h" #include "xmalloc.h" #include "curvetun.h" #include "curve.h" diff --git a/ct_usermgmt.c b/ct_usermgmt.c index e21675f..2642986 100644 --- a/ct_usermgmt.c +++ b/ct_usermgmt.c @@ -19,7 +19,7 @@ #include "locking.h" #include "xmalloc.h" #include "ioexact.h" -#include "xio.h" +#include "ioops.h" #include "str.h" #include "curvetun.h" #include "xutils.h" diff --git a/curve.c b/curve.c index 2b390b1..243e833 100644 --- a/curve.c +++ b/curve.c @@ -20,7 +20,7 @@ #include "xmalloc.h" #include "curve.h" #include "xutils.h" -#include "xio.h" +#include "ioops.h" #include "rnd.h" #include "die.h" #include "str.h" diff --git a/curve.h b/curve.h index 8750b70..b7aebcb 100644 --- a/curve.h +++ b/curve.h @@ -12,7 +12,7 @@ #include "locking.h" #include "built_in.h" -#include "xio.h" +#include "ioops.h" #include "rnd.h" #include "crypto_box_curve25519xsalsa20poly1305.h" diff --git a/curvetun.c b/curvetun.c index d5b95e4..0e7bb83 100644 --- a/curvetun.c +++ b/curvetun.c @@ -35,7 +35,7 @@ #include "curve.h" #include "ct_usermgmt.h" #include "ct_servmgmt.h" -#include "xio.h" +#include "ioops.h" #include "tprintf.h" #include "crypto_verify_32.h" #include "crypto_box_curve25519xsalsa20poly1305.h" diff --git a/curvetun/Makefile b/curvetun/Makefile index 3d60064..289aa72 100644 --- a/curvetun/Makefile +++ b/curvetun/Makefile @@ -2,7 +2,6 @@ curvetun-libs = -lnacl \ -lpthread curvetun-objs = xmalloc.o \ - xio.o \ xutils.o \ str.o \ stun.o \ @@ -14,6 +13,7 @@ curvetun-objs = xmalloc.o \ curve.o \ cookie.o \ ioexact.o \ + ioops.o \ cpusched.o \ ct_usermgmt.o \ ct_servmgmt.o \ diff --git a/flowtop.c b/flowtop.c index 4703dc8..2319a68 100644 --- a/flowtop.c +++ b/flowtop.c @@ -29,7 +29,7 @@ #include "die.h" #include "xmalloc.h" -#include "xio.h" +#include "ioops.h" #include "str.h" #include "geoip.h" #include "xutils.h" diff --git a/flowtop/Makefile b/flowtop/Makefile index 2446832..915301f 100644 --- a/flowtop/Makefile +++ b/flowtop/Makefile @@ -6,7 +6,7 @@ flowtop-libs = -lGeoIP \ -lz flowtop-objs = xmalloc.o \ - xio.o \ + ioops.o \ xutils.o \ oui.o \ str.o \ diff --git a/geoip.c b/geoip.c index 85c425c..bef35fb 100644 --- a/geoip.c +++ b/geoip.c @@ -19,7 +19,7 @@ #include "built_in.h" #include "die.h" #include "xutils.h" -#include "xio.h" +#include "ioops.h" #include "str.h" #include "xmalloc.h" #include "zlib.h" diff --git a/ifpps.c b/ifpps.c index d3e4fa2..e835660 100644 --- a/ifpps.c +++ b/ifpps.c @@ -20,7 +20,7 @@ #include "die.h" #include "xmalloc.h" #include "xutils.h" -#include "xio.h" +#include "ioops.h" #include "cpus.h" #include "built_in.h" diff --git a/ifpps/Makefile b/ifpps/Makefile index ef26a71..8b055b4 100644 --- a/ifpps/Makefile +++ b/ifpps/Makefile @@ -1,7 +1,7 @@ ifpps-libs = $(shell pkg-config --libs ncurses) ifpps-objs = xmalloc.o \ - xio.o \ + ioops.o \ xutils.o \ str.o \ ifpps.o diff --git a/ioops.c b/ioops.c new file mode 100644 index 0000000..1bcb2d7 --- /dev/null +++ b/ioops.c @@ -0,0 +1,98 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include + +#include "die.h" +#include "ioops.h" +#include "str.h" +#include "xutils.h" + +int open_or_die(const char *file, int flags) +{ + int ret = open(file, flags); + if (ret < 0) + panic("Cannot open file %s! %s.\n", file, strerror(errno)); + + return ret; +} + +int open_or_die_m(const char *file, int flags, mode_t mode) +{ + int ret = open(file, flags, mode); + if (ret < 0) + panic("Cannot open or create file %s! %s.", file, strerror(errno)); + return ret; +} + +void create_or_die(const char *file, mode_t mode) +{ + int fd = open_or_die_m(file, O_WRONLY | O_CREAT, mode); + close(fd); +} + +void pipe_or_die(int pipefd[2], int flags) +{ + int ret = pipe2(pipefd, flags); + if (ret < 0) + panic("Cannot create pipe2 event fd! %s.\n", strerror(errno)); +} + +int tun_open_or_die(char *name, int type) +{ + int fd, ret; + short flags; + struct ifreq ifr; + + if (!name) + panic("No name provided for tundev!\n"); + + fd = open_or_die("/dev/net/tun", O_RDWR); + + memset(&ifr, 0, sizeof(ifr)); + ifr.ifr_flags = type; + strlcpy(ifr.ifr_name, name, IFNAMSIZ); + + ret = ioctl(fd, TUNSETIFF, &ifr); + if (ret < 0) + panic("ioctl screwed up! %s.\n", strerror(errno)); + + ret = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); + if (ret < 0) + panic("fctnl screwed up! %s.\n", strerror(errno)); + + flags = device_get_flags(name); + flags |= IFF_UP | IFF_RUNNING; + device_set_flags(name, flags); + + return fd; +} + +ssize_t read_or_die(int fd, void *buf, size_t len) +{ + ssize_t ret = read(fd, buf, len); + if (ret < 0) { + if (errno == EPIPE) + die(); + panic("Cannot read from descriptor! %s.\n", strerror(errno)); + } + + return ret; +} + +ssize_t write_or_die(int fd, const void *buf, size_t len) +{ + ssize_t ret = write(fd, buf, len); + if (ret < 0) { + if (errno == EPIPE) + die(); + panic("Cannot write to descriptor! %s.", strerror(errno)); + } + + return ret; +} diff --git a/ioops.h b/ioops.h new file mode 100644 index 0000000..eed3e3d --- /dev/null +++ b/ioops.h @@ -0,0 +1,12 @@ +#ifndef IOOPS_H +#define IOOPS_H + +extern int open_or_die(const char *file, int flags); +extern int open_or_die_m(const char *file, int flags, mode_t mode); +extern void create_or_die(const char *file, mode_t mode); +extern int tun_open_or_die(char *name, int type); +extern void pipe_or_die(int pipefd[2], int flags); +extern ssize_t read_or_die(int fd, void *buf, size_t count); +extern ssize_t write_or_die(int fd, const void *buf, size_t count); + +#endif /* IOOPS_H */ diff --git a/netsniff-ng.c b/netsniff-ng.c index 40580b8..28ebda7 100644 --- a/netsniff-ng.c +++ b/netsniff-ng.c @@ -30,7 +30,7 @@ #include "built_in.h" #include "pcap_io.h" #include "bpf.h" -#include "xio.h" +#include "ioops.h" #include "die.h" #include "irq.h" #include "str.h" diff --git a/netsniff-ng/Makefile b/netsniff-ng/Makefile index f397b92..7f5a490 100644 --- a/netsniff-ng/Makefile +++ b/netsniff-ng/Makefile @@ -35,7 +35,7 @@ netsniff-ng-objs = dissector.o \ str.o \ irq.o \ iosched.o \ - xio.o \ + ioops.o \ xutils.o \ xmalloc.o \ hash.o \ diff --git a/pcap_io.h b/pcap_io.h index 98f16cf..7739868 100644 --- a/pcap_io.h +++ b/pcap_io.h @@ -17,7 +17,7 @@ #include "built_in.h" #include "die.h" -#include "xio.h" +#include "ioops.h" #define TCPDUMP_MAGIC 0xa1b2c3d4 #define ORIGINAL_TCPDUMP_MAGIC TCPDUMP_MAGIC diff --git a/pcap_mm.c b/pcap_mm.c index 122b7ef..848f7e0 100644 --- a/pcap_mm.c +++ b/pcap_mm.c @@ -14,7 +14,7 @@ #include #include "pcap_io.h" -#include "xio.h" +#include "ioops.h" #include "xutils.h" #include "built_in.h" #include "iosched.h" diff --git a/pcap_rw.c b/pcap_rw.c index 29d11c5..6c9601f 100644 --- a/pcap_rw.c +++ b/pcap_rw.c @@ -14,9 +14,9 @@ #include "pcap_io.h" #include "built_in.h" #include "xutils.h" -#include "xio.h" #include "die.h" #include "iosched.h" +#include "ioops.h" static ssize_t pcap_rw_write(int fd, pcap_pkthdr_t *phdr, enum pcap_type type, const uint8_t *packet, size_t len) diff --git a/pcap_sg.c b/pcap_sg.c index 012fb1b..ea4a709 100644 --- a/pcap_sg.c +++ b/pcap_sg.c @@ -13,10 +13,10 @@ #include "pcap_io.h" #include "xmalloc.h" -#include "xio.h" #include "xutils.h" #include "built_in.h" #include "iosched.h" +#include "ioops.h" static struct iovec iov[1024] __cacheline_aligned; static off_t iov_off_rd = 0, iov_slot = 0; diff --git a/trafgen.c b/trafgen.c index 0a03f86..c161a1e 100644 --- a/trafgen.c +++ b/trafgen.c @@ -39,7 +39,7 @@ #include "lockme.h" #include "mac80211.h" #include "xutils.h" -#include "xio.h" +#include "ioops.h" #include "irq.h" #include "built_in.h" #include "trafgen_conf.h" diff --git a/trafgen/Makefile b/trafgen/Makefile index 75a9c09..6942843 100644 --- a/trafgen/Makefile +++ b/trafgen/Makefile @@ -3,7 +3,7 @@ trafgen-libs = $(shell pkg-config --libs libnl-3.0) \ -lm trafgen-objs = xmalloc.o \ - xio.o \ + ioops.o \ xutils.o \ irq.o \ str.o \ diff --git a/xio.c b/xio.c deleted file mode 100644 index be9d4cc..0000000 --- a/xio.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - * netsniff-ng - the packet sniffing beast - * Copyright 2009, 2010 Daniel Borkmann. - * Subject to the GPL, version 2. - */ - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "die.h" -#include "xio.h" -#include "str.h" -#include "xutils.h" - -int open_or_die(const char *file, int flags) -{ - int ret = open(file, flags); - if (ret < 0) - panic("Cannot open file %s! %s.\n", file, strerror(errno)); - - return ret; -} - -int open_or_die_m(const char *file, int flags, mode_t mode) -{ - int ret = open(file, flags, mode); - if (ret < 0) - panic("Cannot open or create file %s! %s.", file, strerror(errno)); - return ret; -} - -void create_or_die(const char *file, mode_t mode) -{ - int fd = open_or_die_m(file, O_WRONLY | O_CREAT, mode); - close(fd); -} - -void pipe_or_die(int pipefd[2], int flags) -{ - int ret = pipe2(pipefd, flags); - if (ret < 0) - panic("Cannot create pipe2 event fd! %s.\n", strerror(errno)); -} - -int tun_open_or_die(char *name, int type) -{ - int fd, ret; - short flags; - struct ifreq ifr; - - if (!name) - panic("No name provided for tundev!\n"); - - fd = open_or_die("/dev/net/tun", O_RDWR); - - memset(&ifr, 0, sizeof(ifr)); - ifr.ifr_flags = type; - strlcpy(ifr.ifr_name, name, IFNAMSIZ); - - ret = ioctl(fd, TUNSETIFF, &ifr); - if (ret < 0) - panic("ioctl screwed up! %s.\n", strerror(errno)); - - ret = fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); - if (ret < 0) - panic("fctnl screwed up! %s.\n", strerror(errno)); - - flags = device_get_flags(name); - flags |= IFF_UP | IFF_RUNNING; - device_set_flags(name, flags); - - return fd; -} - -ssize_t read_or_die(int fd, void *buf, size_t len) -{ - ssize_t ret = read(fd, buf, len); - if (ret < 0) { - if (errno == EPIPE) - die(); - panic("Cannot read from descriptor! %s.\n", strerror(errno)); - } - - return ret; -} - -ssize_t write_or_die(int fd, const void *buf, size_t len) -{ - ssize_t ret = write(fd, buf, len); - if (ret < 0) { - if (errno == EPIPE) - die(); - panic("Cannot write to descriptor! %s.", strerror(errno)); - } - - return ret; -} diff --git a/xio.h b/xio.h deleted file mode 100644 index e443122..0000000 --- a/xio.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef XIO_H -#define XIO_H - -extern int open_or_die(const char *file, int flags); -extern int open_or_die_m(const char *file, int flags, mode_t mode); -extern void create_or_die(const char *file, mode_t mode); -extern int tun_open_or_die(char *name, int type); -extern void pipe_or_die(int pipefd[2], int flags); -extern ssize_t read_or_die(int fd, void *buf, size_t count); -extern ssize_t write_or_die(int fd, const void *buf, size_t count); - -#endif /* XIO_H */ -- cgit v1.2.3-54-g00ecf