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

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

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