Annotation of embedaddon/miniupnpd/testupnpdescgen.c, revision 1.1.1.3

1.1.1.3 ! misho       1: /* $Id: testupnpdescgen.c,v 1.29 2012/04/30 21:08:00 nanard Exp $ */
1.1       misho       2: /* MiniUPnP project
                      3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
1.1.1.3 ! misho       4:  * (c) 2006-2012 Thomas Bernard
1.1       misho       5:  * This software is subject to the conditions detailed
                      6:  * in the LICENCE file provided within the distribution */
                      7: 
                      8: #include <stdlib.h>
                      9: #include <stdio.h>
                     10: #include <string.h>
1.1.1.2   misho      11: /* for mkdir */
                     12: #include <sys/stat.h>
                     13: #include <sys/types.h>
                     14: #include <errno.h>
1.1       misho      15: 
1.1.1.3 ! misho      16: #include "macros.h"
1.1       misho      17: #include "config.h"
                     18: #include "upnpdescgen.h"
                     19: 
                     20: char uuidvalue[] = "uuid:12345678-0000-0000-0000-00000000abcd";
                     21: char serialnumber[] = "12345678";
                     22: char modelnumber[] = "1";
                     23: char presentationurl[] = "http://192.168.0.1:8080/";
1.1.1.2   misho      24: /*char presentationurl[] = "";*/
1.1.1.3 ! misho      25: char friendly_name[] = OS_NAME " router";
1.1       misho      26: 
                     27: char * use_ext_ip_addr = NULL;
                     28: const char * ext_if_name = "eth0";
                     29: 
1.1.1.2   misho      30: #ifdef ENABLE_6FC_SERVICE
                     31: int ipv6fc_firewall_enabled = 1;
                     32: int ipv6fc_inbound_pinhole_allowed = 1;
                     33: #endif
                     34: 
1.1       misho      35: int getifaddr(const char * ifname, char * buf, int len)
                     36: {
1.1.1.3 ! misho      37:        UNUSED(ifname);
1.1       misho      38:        strncpy(buf, "1.2.3.4", len);
                     39:        return 0;
                     40: }
                     41: 
1.1.1.2   misho      42: int upnp_get_portmapping_number_of_entries(void)
1.1       misho      43: {
                     44:        return 42;
                     45: }
                     46: 
1.1.1.2   misho      47: int get_wan_connection_status(const char * ifname)
                     48: {
1.1.1.3 ! misho      49:        UNUSED(ifname);
1.1.1.2   misho      50:        return 2;
                     51: }
                     52: 
1.1       misho      53: /* To be improved */
                     54: int
                     55: xml_pretty_print(const char * s, int len, FILE * f)
                     56: {
                     57:        int n = 0, i;
                     58:        int elt_close = 0;
                     59:        int c, indent = 0;
1.1.1.3 ! misho      60: 
1.1.1.2   misho      61:        if(!s)
                     62:                return n;
1.1       misho      63:        while(len > 0)
                     64:        {
                     65:                c = *(s++);     len--;
                     66:                switch(c)
                     67:                {
                     68:                case '<':
                     69:                        if(len>0 && *s == '/')
                     70:                                elt_close++;
                     71:                        else if(len>0 && *s == '?')
                     72:                                elt_close = 1;
                     73:                        else
                     74:                                elt_close = 0;
                     75:                        if(elt_close!=1)
                     76:                        {
                     77:                                if(elt_close > 1)
                     78:                                        indent--;
                     79:                                fputc('\n', f); n++;
                     80:                                for(i=indent; i>0; i--)
                     81:                                        fputc(' ', f);
                     82:                                n += indent;
                     83:                        }
                     84:                        fputc(c, f); n++;
                     85:                        break;
                     86:                case '>':
                     87:                        fputc(c, f); n++;
                     88:                        if(elt_close==1)
                     89:                        {
                     90:                                /*fputc('\n', f); n++; */
1.1.1.3 ! misho      91:                                /* elt_close = 0; */
1.1       misho      92:                                if(indent > 0)
                     93:                                        indent--;
                     94:                        }
                     95:                        else if(elt_close == 0)
                     96:                                indent++;
                     97:                        break;
1.1.1.2   misho      98:                case '\n':
                     99:                        /* remove existing LF */
                    100:                        break;
1.1       misho     101:                default:
                    102:                        fputc(c, f); n++;
                    103:                }
                    104:        }
                    105:        return n;
                    106: }
                    107: 
                    108: /* stupid test */
                    109: const char * str1 = "Prefix123String";
                    110: const char * str2 = "123String";
                    111: 
1.1.1.2   misho     112: void stupid_test(void)
1.1       misho     113: {
                    114:        printf("str1:'%s' str2:'%s'\n", str1, str2);
                    115:        printf("str1:%p str2:%p str2-str1:%ld\n", str1, str2, (long)(str2-str1));
                    116: }
                    117: 
                    118: /* main */
                    119: 
                    120: int
                    121: main(int argc, char * * argv)
                    122: {
                    123:        char * rootDesc;
                    124:        int rootDescLen;
                    125:        char * s;
                    126:        int l;
1.1.1.2   misho     127:        FILE * f;
1.1.1.3 ! misho     128:        UNUSED(argc);
        !           129:        UNUSED(argv);
1.1.1.2   misho     130: 
                    131:        if(mkdir("testdescs", 0777) < 0) {
                    132:                if(errno != EEXIST) {
                    133:                        perror("mkdir");
                    134:                }
                    135:        }
                    136:        printf("Root Description :\n");
1.1       misho     137:        rootDesc = genRootDesc(&rootDescLen);
                    138:        xml_pretty_print(rootDesc, rootDescLen, stdout);
1.1.1.2   misho     139:        f = fopen("testdescs/rootdesc.xml", "w");
                    140:        if(f) {
                    141:                xml_pretty_print(rootDesc, rootDescLen, f);
                    142:                fclose(f);
                    143:        }
1.1       misho     144:        free(rootDesc);
                    145:        printf("\n-------------\n");
1.1.1.2   misho     146:        printf("WANIPConnection Description :\n");
1.1       misho     147:        s = genWANIPCn(&l);
                    148:        xml_pretty_print(s, l, stdout);
1.1.1.2   misho     149:        f = fopen("testdescs/wanipc_scpd.xml", "w");
                    150:        if(f) {
                    151:                xml_pretty_print(s, l, f);
                    152:                fclose(f);
                    153:        }
1.1       misho     154:        free(s);
                    155:        printf("\n-------------\n");
1.1.1.2   misho     156:        printf("WANConfig Description :\n");
1.1       misho     157:        s = genWANCfg(&l);
                    158:        xml_pretty_print(s, l, stdout);
1.1.1.2   misho     159:        f = fopen("testdescs/wanconfig_scpd.xml", "w");
                    160:        if(f) {
                    161:                xml_pretty_print(s, l, f);
                    162:                fclose(f);
                    163:        }
1.1       misho     164:        free(s);
                    165:        printf("\n-------------\n");
                    166: #ifdef ENABLE_L3F_SERVICE
1.1.1.2   misho     167:        printf("Layer3Forwarding service :\n");
1.1       misho     168:        s = genL3F(&l);
                    169:        xml_pretty_print(s, l, stdout);
1.1.1.2   misho     170:        f = fopen("testdescs/l3f_scpd.xml", "w");
                    171:        if(f) {
                    172:                xml_pretty_print(s, l, f);
                    173:                fclose(f);
                    174:        }
                    175:        free(s);
                    176:        printf("\n-------------\n");
                    177: #endif
                    178: #ifdef ENABLE_6FC_SERVICE
                    179:        printf("WANIPv6FirewallControl service :\n");
                    180:        s = gen6FC(&l);
                    181:        xml_pretty_print(s, l, stdout);
                    182:        f = fopen("testdescs/wanipv6fc_scpd.xml", "w");
                    183:        if(f) {
                    184:                xml_pretty_print(s, l, f);
                    185:                fclose(f);
                    186:        }
                    187:        free(s);
                    188:        printf("\n-------------\n");
                    189: #endif
                    190: #ifdef ENABLE_DP_SERVICE
                    191:        printf("DeviceProtection service :\n");
                    192:        s = genDP(&l);
                    193:        xml_pretty_print(s, l, stdout);
                    194:        f = fopen("testdescs/dp_scpd.xml", "w");
                    195:        if(f) {
                    196:                xml_pretty_print(s, l, f);
                    197:                fclose(f);
                    198:        }
1.1       misho     199:        free(s);
                    200:        printf("\n-------------\n");
                    201: #endif
                    202: #ifdef ENABLE_EVENTS
                    203:        s = getVarsWANIPCn(&l);
                    204:        xml_pretty_print(s, l, stdout);
                    205:        free(s);
                    206:        printf("\n-------------\n");
                    207:        s = getVarsWANCfg(&l);
                    208:        xml_pretty_print(s, l, stdout);
                    209:        free(s);
                    210:        printf("\n-------------\n");
                    211: #ifdef ENABLE_L3F_SERVICE
                    212:        s = getVarsL3F(&l);
                    213:        xml_pretty_print(s, l, stdout);
                    214:        free(s);
                    215:        printf("\n-------------\n");
1.1.1.2   misho     216: #ifdef ENABLE_6FC_SERVICE
                    217:        s = getVars6FC(&l);
                    218:        xml_pretty_print(s, l, stdout);
                    219:        free(s);
                    220:        printf("\n-------------\n");
                    221: #endif
                    222: #ifdef ENABLE_DP_SERVICE
                    223:        s = getVarsDP(&l);
                    224:        xml_pretty_print(s, l, stdout);
                    225:        free(s);
                    226:        printf("\n-------------\n");
                    227: #endif
1.1       misho     228: #endif
                    229: #endif
                    230: /*
                    231:        stupid_test();
                    232: */
                    233:        return 0;
                    234: }
                    235: 

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