Annotation of libelwix/example/test_n2.c, revision 1.5

1.1       misho       1: #include <stdio.h>
                      2: #include <string.h>
                      3: #include <elwix.h>
1.3       misho       4: #include <netinet/in.h>
1.1       misho       5: 
                      6: 
                      7: int
                      8: main(int argc, char **argv)
                      9: {
                     10:        sockaddr_t addr = { 0 };
                     11:        ait_val_t v, *val = NULL;
1.2       misho      12:        struct in_addr a;
1.3       misho      13:        netaddr_t n, *n0;
1.2       misho      14:        inaddr_t t;
1.4       misho      15:        ether_addr_t *ea, na;
                     16:        char str[BUFSIZ];
                     17:        int res;
1.2       misho      18: 
                     19:        a.s_addr = E_CIDRMASK(8);
                     20:        printf("/8 = %08X %08x\n", a.s_addr, htonl(a.s_addr));
                     21:        a.s_addr = E_CIDRMASK(24);
                     22:        printf("/24 = %08X %08x\n", a.s_addr, htonl(a.s_addr));
                     23:        a.s_addr = E_CIDRMASK(26);
                     24:        printf("/26 = %08X %08x\n", a.s_addr, htonl(a.s_addr));
                     25:        a.s_addr = E_CIDRMASK(30);
                     26:        printf("/30 = %08X %08x\n", a.s_addr, htonl(a.s_addr));
                     27: 
                     28:        memset(&n, 0, sizeof n);
                     29:        n.addr.sin.sin_family = AF_INET;
                     30:        n.addr.sin.sin_addr.s_addr = inet_addr("10.10.10.1");
1.5     ! misho      31:        n.mask.in.s_addr = E_CIDRMASK(26);
1.2       misho      32: 
                     33:        t.in.s_addr = inet_addr("10.10.10.42");
1.5     ! misho      34:        printf("10.10.10.42 is in network 10.10.10.0/26? %d\n", e_innet(&n, &t));
        !            35:        t.in.s_addr = inet_addr("10.10.10.242");
        !            36:        printf("10.10.10.242 is in network 10.10.10.0/26? %d\n", e_innet(&n, &t));
1.2       misho      37:        t.in.s_addr = inet_addr("10.10.0.42");
1.5     ! misho      38:        printf("10.10.0.42 is in network 10.10.10.0/26? %d\n", e_innet(&n, &t));
1.2       misho      39:        t.in.s_addr = inet_addr("172.16.0.42");
1.5     ! misho      40:        printf("172.16.0.42 is in network 10.10.10.0/26? %d\n", e_innet(&n, &t));
1.2       misho      41: 
1.3       misho      42:        n0 = e_getnet("1.1.1.1/12");
                     43:        if (n0) {
                     44:                printf("addr=%s/%x\n", inet_ntoa(n0->addr.sin.sin_addr), ntohl(n0->mask.in.s_addr));
                     45:                e_free(n0);
                     46:        }
                     47:        n0 = e_getnet("2.2.2.2");
                     48:        if (n0) {
                     49:                printf("addr=%s/%x\n", inet_ntoa(n0->addr.sin.sin_addr), ntohl(n0->mask.in.s_addr));
                     50:                e_free(n0);
                     51:        }
                     52:        n0 = e_getnet("elwix.org/29");
                     53:        if (n0) {
                     54:                printf("addr=%s/%x\n", inet_ntoa(n0->addr.sin.sin_addr), ntohl(n0->mask.in.s_addr));
                     55:                e_free(n0);
                     56:        }
                     57: 
1.2       misho      58:        if (argc < 2)
                     59:                return 0;
1.1       misho      60: 
                     61:        AIT_SET_DATA(val, "shits hit the fan! --- shits with Merudia ...\n", 47);
                     62:        printf("GET DATA = %p %s t=%d l=%d\n", val, AIT_GET_DATA(val), AIT_TYPE(val), AIT_LEN(val));
                     63:        AIT_SET_DATA(val, argv[1], strlen(argv[1]) + 1);
1.4       misho      64:        printf("+GET DATA = %p %s t=%d l=%d\n", val, AIT_GET_DATA(val), AIT_TYPE(val), AIT_LEN(val));
                     65:        ait_freeVar(&val);
1.1       misho      66: 
                     67:        AIT_SET_DATA(val, argv[1], strlen(argv[1]) + 1);
                     68:        printf("GET DATA = %p %s t=%d l=%d\n", val, AIT_GET_DATA(val), AIT_TYPE(val), AIT_LEN(val));
                     69:        ait_freeVar(&val);
                     70: 
                     71:        if (!e_gethostbyname(argv[1], 1234, &addr)) {
                     72:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
                     73:                return 1;
                     74:        }
                     75: 
                     76:        if (!e_n2addr(&addr, &v)) {
                     77:                printf("Error:: #%d - %s\n", elwix_GetErrno(), elwix_GetError());
                     78:                return 2;
                     79:        }
                     80: 
                     81:        printf("Address is %s port is %u\n", AIT_GET_STR(&v), e_n2port(&addr));
1.4       misho      82:        AIT_FREE_VAL(&v);
                     83: 
                     84:        if (argc < 3)
                     85:                return 0;
                     86: 
                     87:        val = ait_allocVar();
                     88:        AIT_SET_STR(val, argv[2]);
                     89:        printf("addr=%s\n", (argc > 3) ? argv[3] : NULL);
                     90:        e_ether_aton((argc > 3) ? argv[3] : NULL, &na);
                     91:        if ((ea = e_ether_addr(AIT_GET_STR(val), (argc > 3) ? &na : NULL))) {
                     92:                printf("MAC address of iface=%s is %s\n", AIT_GET_STR(val), e_ether_ntoa(ea, str, sizeof str));
                     93:                e_free(ea);
                     94:        }
                     95:        ait_freeVar(&val);
1.1       misho      96: 
                     97:        return 0;
                     98: }

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