From 13456f618ea68a573c0a5a604dc9e6b6d51361b4 Mon Sep 17 00:00:00 2001 From: laforge Date: Sat, 3 Feb 2001 18:41:18 +0000 Subject: removed libipulog from this directory --- ulogd/libipulog.old/Makefile.in | 21 ---- ulogd/libipulog.old/libipulog.c | 249 ---------------------------------------- ulogd/libipulog.old/ulog_test.c | 83 -------------- 3 files changed, 353 deletions(-) delete mode 100644 ulogd/libipulog.old/Makefile.in delete mode 100644 ulogd/libipulog.old/libipulog.c delete mode 100644 ulogd/libipulog.old/ulog_test.c (limited to 'ulogd/libipulog.old') diff --git a/ulogd/libipulog.old/Makefile.in b/ulogd/libipulog.old/Makefile.in deleted file mode 100644 index 4686b20..0000000 --- a/ulogd/libipulog.old/Makefile.in +++ /dev/null @@ -1,21 +0,0 @@ -# - -include @top_srcdir@/Rules.make -CFLAGS+=-Iinclude - -libipulog.a: libipulog.o - ld -i $< -o $@ - -ulog_test: ulog_test.c libipulog.a - $(CC) $(CFLAGS) ulog_test.c libipulog.a -o ulog_test - -libipulog.o: libipulog.c - $(CC) $(CFLAGS) -c $< -o $@ - -clean: - rm -f ulog_test libipulog.o libipulog.a - -distclean: clean - rm Makefile - -install: libipulog.a diff --git a/ulogd/libipulog.old/libipulog.c b/ulogd/libipulog.old/libipulog.c deleted file mode 100644 index 9d647ae..0000000 --- a/ulogd/libipulog.old/libipulog.c +++ /dev/null @@ -1,249 +0,0 @@ -/* - * libipulog.c, $Revision: 1.6 $ - * - * netfilter ULOG userspace library. - * - * (C) 2000 by Harald Welte - * released under the terms of GNU GPL - * - * This library is still under development, so be aware of sudden interface - * changes - * - * $Id: libipulog.c,v 1.6 2001/01/30 09:28:04 laforge Exp $ - */ - -#include -#include -#include -#include -#include -#include - -struct ipulog_handle -{ - int fd; - u_int8_t blocking; - struct sockaddr_nl local; - struct sockaddr_nl peer; - struct nlmsghdr* last_nlhdr; -}; - -/* internal */ - -enum -{ - IPULOG_ERR_NONE = 0, - IPULOG_ERR_IMPL, - IPULOG_ERR_HANDLE, - IPULOG_ERR_SOCKET, - IPULOG_ERR_BIND, - IPULOG_ERR_RECVBUF, - IPULOG_ERR_RECV, - IPULOG_ERR_NLEOF, - IPULOG_ERR_TRUNC, - IPULOG_ERR_INVGR, - IPULOG_ERR_INVNL, -}; - -#define IPULOG_MAXERR IPULOG_ERR_INVNL - -static int ipulog_errno = IPULOG_ERR_NONE; - -struct ipulog_errmap_t -{ - int errcode; - char *message; -} ipulog_errmap[] = -{ - { IPULOG_ERR_NONE, "No error" }, - { IPULOG_ERR_IMPL, "Not implemented yet" }, - { IPULOG_ERR_HANDLE, "Unable to create netlink handle" }, - { IPULOG_ERR_SOCKET, "Unable to create netlink socket" }, - { IPULOG_ERR_BIND, "Unable to bind netlink socket" }, - { IPULOG_ERR_RECVBUF, "Receive buffer size invalid" }, - { IPULOG_ERR_RECV, "Error during netlink receive" }, - { IPULOG_ERR_NLEOF, "Received EOF on netlink socket" }, - { IPULOG_ERR_TRUNC, "Receive message truncated" }, - { IPULOG_ERR_INVGR, "Invalid group specified" }, - { IPULOG_ERR_INVNL, "Invalid netlink message" }, -}; - -static ssize_t ipulog_netlink_recvfrom(const struct ipulog_handle *h, - unsigned char *buf, size_t len) -{ - int addrlen, status; - struct nlmsghdr *nlh; - - if (len < sizeof(struct nlmsgerr)) { - ipulog_errno = IPULOG_ERR_RECVBUF; - return -1; - } - addrlen = sizeof(h->peer); - status = recvfrom(h->fd, buf, len, 0, (struct sockaddr *)&h->peer, - &addrlen); - if (status < 0) - { - ipulog_errno = IPULOG_ERR_RECV; - return status; - } - if (addrlen != sizeof (h->peer)) - { - ipulog_errno = IPULOG_ERR_RECV; - return -1; - } - if (status == 0) - { - ipulog_errno = IPULOG_ERR_NLEOF; - return -1; - } - nlh = (struct nlmsghdr *)buf; - if (nlh->nlmsg_flags & MSG_TRUNC || status > len) - { - ipulog_errno = IPULOG_ERR_TRUNC; - return -1; - } - return status; -} - -static char *ipulog_strerror(int errcode) -{ - if (errcode < 0 || errcode > IPULOG_MAXERR) - errcode = IPULOG_ERR_IMPL; - return ipulog_errmap[errcode].message; -} - - -/* public */ - -/* convert a netlink group (1-32) to a group_mask suitable for create_handle */ -u_int32_t ipulog_group2gmask(u_int32_t group) -{ - if (group < 1 || group > 32) - { - ipulog_errno = IPULOG_ERR_INVGR; - return 0; - } - return (1 << (group - 1)); -} - -/* create a ipulog handle for the reception of packets sent to gmask */ -struct ipulog_handle *ipulog_create_handle(unsigned int gmask) -{ - struct ipulog_handle *h; - int status; - - h = (struct ipulog_handle *) malloc(sizeof(struct ipulog_handle)); - if (h == NULL) - { - ipulog_errno = IPULOG_ERR_HANDLE; - return NULL; - } - memset(h, 0, sizeof(struct ipulog_handle)); - h->fd = socket(PF_NETLINK, SOCK_RAW, NETLINK_NFLOG); - if (h->fd == -1) - { - ipulog_errno = IPULOG_ERR_SOCKET; - close(h->fd); - free(h); - return NULL; - } - memset(&h->local, 0, sizeof(struct sockaddr_nl)); - h->local.nl_family = AF_NETLINK; - h->local.nl_pid = getpid(); - h->local.nl_groups = gmask; - status = bind(h->fd, (struct sockaddr *)&h->local, sizeof(h->local)); - if (status == -1) - { - ipulog_errno = IPULOG_ERR_BIND; - close(h->fd); - free(h); - return NULL; - } - memset(&h->peer, 0, sizeof(struct sockaddr_nl)); - h->peer.nl_family = AF_NETLINK; - h->peer.nl_pid = 0; - h->peer.nl_groups = gmask; - - return h; -} - -/* destroy a ipulog handle */ -void ipulog_destroy_handle(struct ipulog_handle *h) -{ - close(h->fd); - free(h); -} - -#if 0 -int ipulog_set_mode() -{ -} -#endif - -/* do a BLOCKING read on an ipulog handle */ -ssize_t ipulog_read(struct ipulog_handle *h, unsigned char *buf, - size_t len, int timeout) -{ - return ipulog_netlink_recvfrom(h, buf, len); -} - -/* get a pointer to the actual start of the ipulog packet, - use this to strip netlink header */ -ulog_packet_msg_t *ipulog_get_packet(struct ipulog_handle *h, - const unsigned char *buf, - size_t len) -{ - struct nlmsghdr *nlh; - size_t remain_len; - - /* if last header in handle not inside this buffer, - * drop reference to last header */ - if ((unsigned char *)h->last_nlhdr > (buf + len) || - (unsigned char *)h->last_nlhdr < buf) { - h->last_nlhdr = NULL; - } - - if (!h->last_nlhdr) { - /* fist message in buffer */ - nlh = (struct nlmsghdr *) buf; - if (!NLMSG_OK(nlh, len)) { - /* ERROR */ - ipulog_errno = IPULOG_ERR_INVNL; - return NULL; - } - } else { - /* we are in n-th part of multilink message */ - if (h->last_nlhdr->nlmsg_type == NLMSG_DONE) { - /* if last part in multilink message, return */ - h->last_nlhdr = NULL; - return NULL; - } - - /* calculate remaining lenght from lasthdr to end of buffer */ - remain_len = (len - - ((unsigned char *)h->last_nlhdr - buf)); - nlh = NLMSG_NEXT(h->last_nlhdr, remain_len); - } - - /* update last_nlhdr field */ - if (nlh->nlmsg_flags & NLM_F_MULTI) { - h->last_nlhdr = nlh; - } - - return NLMSG_DATA(nlh); -} - -/* print a human readable description of the last error to stderr */ -void ipulog_perror(const char *s) -{ - if (s) - fputs(s, stderr); - else - fputs("ERROR", stderr); - if (ipulog_errno) - fprintf(stderr, ": %s", ipulog_strerror(ipulog_errno)); - if (errno) - fprintf(stderr, ": %s", strerror(errno)); - fputc('\n', stderr); -} - diff --git a/ulogd/libipulog.old/ulog_test.c b/ulogd/libipulog.old/ulog_test.c deleted file mode 100644 index 771dab6..0000000 --- a/ulogd/libipulog.old/ulog_test.c +++ /dev/null @@ -1,83 +0,0 @@ -/* ulog_test, $Revision: 1.3 $ - * - * small testing program for libipulog, part of the netfilter ULOG target - * for the linux 2.4 netfilter subsystem. - * - * (C) 2000 by Harald Welte - * - * this code is released under the terms of GNU GPL - * - * $Id: ulog_test.c,v 1.3 2000/09/22 06:57:16 laforge Exp $ - */ - -#include -#include -#include - -#define MYBUFSIZ 2048 - -/* prints some logging about a single packet */ -void handle_packet(ulog_packet_msg_t *pkt) -{ - unsigned char *p; - int i; - - printf("Hook=%u Mark=%lu len=%d ", - pkt->hook, pkt->mark, pkt->data_len); - if (strlen(pkt->prefix)) - printf("Prefix=%s ", pkt->prefix); - - if (pkt->mac_len) - { - printf("mac="); - p = pkt->mac; - for (i = 0; i < pkt->mac_len; i++, p++) - printf("%02x%c", *p, i==pkt->mac_len-1 ? ' ':':'); - } - printf("\n"); - -} - -int main(int argc, char *argv[]) -{ - struct ipulog_handle *h; - unsigned char* buf; - size_t len; - ulog_packet_msg_t *upkt; - int i; - - if (argc != 4) { - fprintf(stderr, "Usage: %s count group timeout\n", argv[0]); - exit(1); - } - - /* allocate a receive buffer */ - buf = (unsigned char *) malloc(MYBUFSIZ); - - /* create ipulog handle */ - h = ipulog_create_handle(ipulog_group2gmask(atoi(argv[2]))); - if (!h) - { - /* if some error occurrs, print it to stderr */ - ipulog_perror(NULL); - exit(1); - } - - alarm(atoi(argv[3])); - - /* loop receiving packets and handling them over to handle_packet */ - for (i = 0; i < atoi(argv[1]); i++) { - len = ipulog_read(h, buf, BUFSIZ, 1); - if (len < 0) { - ipulog_perror("ulog_test: short read"); - exit(1); - } - upkt = ipulog_get_packet(buf); - printf("%d: ", len); - handle_packet(upkt); - } - - /* just to give it a cleaner look */ - ipulog_destroy_handle(h); - return 0; -} -- cgit v1.2.3