Annotation of embedaddon/miniupnpd/ipfw/testipfwrdr.c, revision 1.1.1.2
1.1.1.2 ! misho 1: /* $Id: testipfwrdr.c,v 1.7 2011/06/22 21:57:17 nanard Exp $ */
1.1 misho 2: /*
3: * MiniUPnP project
4: * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
1.1.1.2 ! misho 5: * (c) 2009-2011 Jardel Weyrich, Thomas Bernard
1.1 misho 6: * This software is subject to the conditions detailed
7: * in the LICENCE file provided within the distribution
8: */
9:
10: #include <stdio.h>
11: #include <syslog.h>
1.1.1.2 ! misho 12: #include <time.h>
1.1 misho 13: #include <netinet/in.h>
14: #include "ipfwrdr.h"
15:
16: // test program for ipfwrdr.c
1.1.1.2 ! misho 17: static const char * ifname = "lo0";
! 18:
! 19: static void
! 20: list_port_mappings(void)
! 21: {
! 22: int i;
! 23: unsigned short eport;
! 24: char iaddr[16];
! 25: unsigned short iport;
! 26: int proto;
! 27: char desc[64];
! 28: char rhost[32];
! 29: unsigned int timestamp;
! 30: u_int64_t packets, bytes;
! 31:
! 32: printf("== Port Mapping List ==\n");
! 33: for(i = 0;; i++) {
! 34: iaddr[0] = '\0';
! 35: desc[0] = '\0';
! 36: eport = iport = 0;
! 37: timestamp = 0;
! 38: packets = bytes = 0;
! 39: proto = -1;
! 40: if(get_redirect_rule_by_index(i, 0/*ifname*/, &eport, iaddr, sizeof(iaddr),
! 41: &iport, &proto, desc, sizeof(desc),
! 42: rhost, sizeof(rhost),
! 43: ×tamp, &packets, &bytes) < 0)
! 44: break;
! 45: printf("%2d - %5hu=>%15s:%5hu %d '%s' '%s' %u %" PRIu64 " %" PRIu64 "\n",
! 46: i, eport, iaddr, iport, proto, desc, rhost, timestamp,
! 47: packets, bytes);
! 48: }
! 49: printf("== %d Port Mapping%s ==\n", i, (i > 1)?"s":"");
! 50: }
1.1 misho 51:
52: int main(int argc, char * * argv) {
1.1.1.2 ! misho 53: unsigned int timestamp;
! 54: char desc[64];
! 55: char addr[16];
! 56: char rhost[40];
! 57: unsigned short iport = 0;
! 58: const char * in_rhost = "8.8.8.8";
! 59:
! 60: desc[0] = '\0';
! 61: addr[0] = '\0';
1.1 misho 62: openlog("testipfwrdrd", LOG_CONS | LOG_PERROR, LOG_USER);
1.1.1.2 ! misho 63: if(init_redirect() < 0) {
! 64: fprintf(stderr, "init_redirect() failed.\n");
! 65: return 1;
! 66: }
! 67: list_port_mappings();
! 68: delete_redirect_rule(ifname, 2222, IPPROTO_TCP);
! 69: delete_redirect_rule(ifname, 2223, IPPROTO_TCP);
! 70: add_redirect_rule2(ifname, "", 2223,
! 71: "10.1.1.17", 4445, IPPROTO_TCP,
! 72: "test miniupnpd", time(NULL) + 60);
! 73: add_redirect_rule2(ifname, in_rhost, 2222,
! 74: "10.1.1.16", 4444, IPPROTO_TCP,
! 75: "test miniupnpd", time(NULL) + 60);
! 76: get_redirect_rule(ifname, 2222, IPPROTO_TCP, addr, sizeof(addr), &iport,
! 77: desc, sizeof(desc), rhost, sizeof(rhost),
! 78: ×tamp, NULL, NULL);
! 79: printf("'%s' %s:%hu '%s' %u\n", rhost, addr, iport, desc, timestamp);
! 80: list_port_mappings();
! 81: delete_redirect_rule(ifname, 2222, IPPROTO_TCP);
! 82: delete_redirect_rule(ifname, 2223, IPPROTO_TCP);
! 83: list_port_mappings();
1.1 misho 84: shutdown_redirect();
85: return 0;
86: }
87:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>