Annotation of embedaddon/miniupnpd/pf/testpfpinhole.c, revision 1.1.1.1

1.1       misho       1: /* $Id: testpfpinhole.c,v 1.10 2012/04/22 23:12:51 nanard Exp $ */
                      2: /* MiniUPnP project
                      3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
                      4:  * (c) 2012 Thomas Bernard
                      5:  * This software is subject to the conditions detailed
                      6:  * in the LICENCE file provided within the distribution */
                      7: 
                      8: #include <stdio.h>
                      9: #include <stdlib.h>
                     10: #include <sys/types.h>
                     11: #include <netinet/in.h>
                     12: #include <syslog.h>
                     13: 
                     14: #include "../config.h"
                     15: #include "obsdrdr.h"
                     16: #include "pfpinhole.h"
                     17: 
                     18: int runtime_flags = 0;
                     19: const char * tag = NULL;
                     20: 
                     21: const char * anchor_name = "miniupnpd";
                     22: const char * queue = NULL;
                     23: 
                     24: static int print_pinhole(int uid)
                     25: {
                     26:        int r;
                     27:        char rem_host[64];
                     28:        unsigned short rem_port;
                     29:        char int_client[64];
                     30:        unsigned short int_port;
                     31:        int proto;
                     32:        unsigned int timestamp;
                     33:        u_int64_t packets, bytes;
                     34: 
                     35:        r = get_pinhole((unsigned short)uid,
                     36:                        rem_host, sizeof(rem_host), &rem_port,
                     37:                        int_client, sizeof(int_client), &int_port,
                     38:                        &proto, &timestamp,
                     39:                        &packets, &bytes);
                     40:        if(r < 0) {
                     41:                fprintf(stderr, "get_pinhole(%d) returned %d\n", uid, r);
                     42:        } else {
                     43:                printf("pinhole %d : [%s]:%hu => [%s]:%hu proto=%d ts=%u\n",
                     44:                       uid, rem_host, rem_port, int_client, int_port,
                     45:                       proto, timestamp);
                     46:                printf("    packets=%llu bytes=%llu\n", packets, bytes);
                     47:        }
                     48:        return r;
                     49: }
                     50: 
                     51: int main(int argc, char * *argv)
                     52: {
                     53: #ifndef ENABLE_IPV6
                     54:        fprintf(stderr,"nothing to test, ENABLE_IPV6 is not defined in config.h\n");
                     55:        return 1;
                     56: #else
                     57:        int uid;
                     58:        int ret;
                     59: 
                     60:        openlog("testpfpinhole", LOG_PERROR, LOG_USER);
                     61:        if(init_redirect() < 0) {
                     62:                fprintf(stderr, "init_redirect() failed\n");
                     63:                return 1;
                     64:        }
                     65: 
                     66:        uid = add_pinhole("ep0", "2001::1:2:3", 12345, "123::ff", 54321, IPPROTO_UDP, 424242);
                     67:        if(uid < 0) {
                     68:                fprintf(stderr, "add_pinhole() failed\n");
                     69:        }
                     70:        printf("add_pinhole() returned %d\n", uid);
                     71:        uid = add_pinhole("ep0", NULL, 0, "dead:beef::42:42", 8080, IPPROTO_UDP, 4321000);
                     72:        if(uid < 0) {
                     73:                fprintf(stderr, "add_pinhole() failed\n");
                     74:        }
                     75:        printf("add_pinhole() returned %d\n", uid);
                     76: 
                     77:        print_pinhole(1);
                     78:        print_pinhole(2);
                     79:        clean_pinhole_list(NULL);
                     80: 
                     81:        ret = delete_pinhole(1);
                     82:        printf("delete_pinhole() returned %d\n", ret);
                     83:        ret = delete_pinhole(2);
                     84:        printf("delete_pinhole() returned %d\n", ret);
                     85: #endif
                     86:        return 0;
                     87: }
                     88: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>