Changeset 7221


Ignore:
Timestamp:
07/29/12 15:16:45 (9 years ago)
Author:
Admin
Message:

WebIf: Add information about conditionals (ifdefs) to header so that external templates function correctly when used on binaries with disabled features. Note that if you have existing external templates, you must either add this information manually or export the internal templates and copy the needed information into yours. This should fix ticket #2655.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/module-webif-lib.c

    r7175 r7221  
    44
    55#include "module-webif.h"
    6 
    7 extern char *tplmap[];
    8 extern char *tpl[];
     6#include "oscam-config-funcs.h"
     7
     8extern const char *tpl[][3];
    99extern char *JSCRIPT;
    1010extern char *CSS;
     
    193193}
    194194
     195#define check_conf(CONFIG_VAR, text) \
     196    if(config_##CONFIG_VAR() && strncmp(#CONFIG_VAR, text, len) == 0) {ok = 1; break;}
     197
    195198/* Returns an unparsed template either from disk or from internal templates.
    196199   Note: You must free() the result after using it and you may get NULL if an error occured!*/
     
    198201  int32_t i;
    199202  int32_t tplcnt = tpl_count();
    200   int32_t tplmapcnt = tplmap_count();
    201203  char *result;
    202204
    203205  for(i = 0; i < tplcnt; ++i){
    204     if(strcmp(name, tpl[i]) == 0) break;
     206    if(strcmp(name, tpl[i][0]) == 0) break;
    205207  }
    206208
     
    212214            FILE *fp;
    213215            char buffer[1024];
     216            memset(buffer, 0, sizeof(buffer));
    214217            int32_t read, allocated = 1025, offset, size = 0;
    215218            if(!cs_malloc(&result, allocated * sizeof(char), -1)) return NULL;
     
    218221                offset = 0;
    219222                if(size == 0 && removeHeader){
    220                     char *pch = strstr(buffer,"<!--OSCam");
    221                     if(pch != NULL){
    222                         pch = strstr(buffer,"-->");
    223                         if(pch != NULL){
    224                             offset = pch - buffer + 4;
     223                    /* Remove version string from output and check if it is valid for output */
     224                    char *pch1 = strstr(buffer,"<!--OSCam");
     225                    if(pch1 != NULL){
     226                        char *pch2 = strstr(pch1,"-->");
     227                        if(pch2 != NULL){
     228                            offset = pch2 - buffer + 4;
    225229                            read -= offset;
     230                            pch2[0] = '\0';
     231                            char *ptr1, *ptr2, *saveptr1 = NULL, *saveptr2 = NULL;
     232                            for (i = 0, ptr1 = strtok_r(pch1 + 10, ";", &saveptr1); (ptr1) && i < 4 ; ptr1 = strtok_r(NULL, ";", &saveptr1), i++){
     233                                if(i == 3 && strlen(ptr1) > 2){
     234                                    int8_t ok = 0;
     235                                    for (ptr2 = strtok_r(ptr1, ",", &saveptr2); (ptr2) && ok == 0 ; ptr2 = strtok_r(NULL, ",", &saveptr2)){
     236                                        size_t len = strlen(ptr2);
     237                                        check_conf(ARM, ptr2);
     238                                        check_conf(CS_ANTICASC, ptr2);
     239                                        check_conf(CS_CACHEEX, ptr2);
     240                                        check_conf(HAVE_DVBAPI, ptr2);
     241                                        check_conf(IPV6SUPPORT, ptr2);
     242                                        check_conf(IRDETO_GUESSING, ptr2);
     243                                        check_conf(LCDSUPPORT, ptr2);
     244                                        check_conf(MODULE_CAMD33, ptr2);
     245                                        check_conf(MODULE_CAMD35, ptr2);
     246                                        check_conf(MODULE_CAMD35_TCP, ptr2);
     247                                        check_conf(MODULE_CCCAM, ptr2);
     248                                        check_conf(MODULE_CCCSHARE, ptr2);
     249                                        check_conf(MODULE_CONSTCW, ptr2);
     250                                        check_conf(MODULE_GBOX, ptr2);
     251                                        check_conf(MODULE_MONITOR, ptr2);
     252                                        check_conf(MODULE_NEWCAMD, ptr2);
     253                                        check_conf(MODULE_PANDORA, ptr2);
     254                                        check_conf(MODULE_RADEGAST, ptr2);
     255                                        check_conf(MODULE_SERIAL, ptr2);
     256                                        check_conf(QBOXHD, ptr2);
     257                                        check_conf(READER_BULCRYPT, ptr2);
     258                                        check_conf(READER_CONAX, ptr2);
     259                                        check_conf(READER_CRYPTOWORKS, ptr2);
     260                                        check_conf(READER_DRE, ptr2);
     261                                        check_conf(READER_IRDETO, ptr2);
     262                                        check_conf(READER_NAGRA, ptr2);
     263                                        check_conf(READER_SECA, ptr2);
     264                                        check_conf(READER_TONGFANG, ptr2);
     265                                        check_conf(READER_VIACCESS, ptr2);
     266                                        check_conf(READER_VIDEOGUARD, ptr2);
     267                                        check_conf(WITH_CARDREADER, ptr2);
     268                                        check_conf(WITH_DEBUG, ptr2);
     269                                        check_conf(WITH_LB, ptr2);
     270                                        check_conf(WITH_LIBCRYPTO, ptr2);
     271                                        check_conf(WITH_LIBUSB, ptr2);
     272                                        check_conf(WITH_PCSC, ptr2);
     273                                        check_conf(WITH_SSL, ptr2);
     274                                        check_conf(WITH_STAPI, ptr2);
     275                                    }
     276                                    if(ok == 0) return result;
     277                                    break;
     278                                }
     279                            }
    226280                        }
    227281                    }
     
    240294      }
    241295  }
    242     if(i >= 0 && i < tplmapcnt){
    243         int32_t len = (strlen(tplmap[i])) + 1;
     296    if(i >= 0 && i < tplcnt){
     297        int32_t len = (strlen(tpl[i][1])) + 1;
    244298        if(!cs_malloc(&result, len * sizeof(char), -1)) return NULL;
    245         memcpy(result, tplmap[i], len);
     299        memcpy(result, tpl[i][1], len);
    246300    } else {
    247301        if(!cs_malloc(&result, 1 * sizeof(char), -1)) return NULL;
     
    308362int32_t tpl_saveIncludedTpls(const char *path){
    309363  int32_t tplcnt = tpl_count();
    310   int32_t tplmapcnt = tplmap_count();
    311364  int32_t i, cnt = 0;
    312365  char tmp[256];
    313366  FILE *fp;
    314   for(i = 0; i < tplcnt && i < tplmapcnt; ++i){
    315     if(strlen(tpl_getTplPath(tpl[i], path, tmp, 256)) > 0 && (fp = fopen(tmp,"w")) != NULL){
    316         int32_t len = strlen(tplmap[i]);
    317         if(!(tpl[i][0] == 'I' && tpl[i][1] == 'C')){
    318             fprintf(fp, "<!--OSCam;%lu;%s;%s-->\n", crc32(0L, (unsigned char*)tplmap[i], len), CS_VERSION, CS_SVN_VERSION);
     367  for(i = 0; i < tplcnt; ++i){
     368    if(strlen(tpl_getTplPath(tpl[i][0], path, tmp, 256)) > 0 && (fp = fopen(tmp,"w")) != NULL){
     369        int32_t len = strlen(tpl[i][1]);
     370        if(strncmp(tpl[i][0], "IC", 2) != 0){
     371            fprintf(fp, "<!--OSCam;%lu;%s;%s;%s-->\n", crc32(0L, (unsigned char*)tpl[i][1], len), CS_VERSION, CS_SVN_VERSION, tpl[i][2]);
    319372        }
    320             fwrite(tplmap[i], sizeof(char), len, fp);
     373            fwrite(tpl[i][1], sizeof(char), len, fp);
    321374            fclose (fp);
    322375            ++cnt;
     
    334387        char path[255];
    335388        for(i = 0; i < tplcnt; ++i){
    336             if(tpl[i][0] != 'I' && tpl[i][1] != 'C' && strlen(tpl_getTplPath(tpl[i], dirpath, path, 255)) > 0 && file_exists(path)){
     389            if(strncmp(tpl[i][0], "IC", 2) != 0 && strlen(tpl_getTplPath(tpl[i][0], dirpath, path, 255)) > 0 && file_exists(path)){
    337390                int8_t error = 1;
    338                 char *tplorg = tpl_getUnparsedTpl(tpl[i], 0, subdir);
    339                 unsigned long curchecksum = crc32(0L, (unsigned char*)tplmap[i], strlen(tplmap[i]));
    340                 char *pch = strstr(tplorg, "<!--OSCam;");
    341                 if(pch != NULL){
    342                     pch = pch + 10;
    343                     unsigned long checksum = strtoul(pch, NULL, 10);
    344                     if(checksum != curchecksum){
    345                         pch = strchr(pch, ';');
    346                         char *version = "", *revision = "";
    347                         if(pch != NULL){
    348                             version = pch + 1;
    349                             pch = strchr(version, ';');
    350                             if(pch != NULL){
    351                                 pch[0] = '\0';
    352                                 revision = pch + 1;
    353                                 pch = strstr(revision, "-->");
    354                                 if(pch != NULL) pch[0] = '\0';
    355                             }
     391                char *tplorg = tpl_getUnparsedTpl(tpl[i][0], 0, subdir);
     392                unsigned long checksum = 0, curchecksum = crc32(0L, (unsigned char*)tpl[i][1], strlen(tpl[i][1]));
     393                char *ifdefs = "", *pch1 = strstr(tplorg,"<!--OSCam");
     394                if(pch1 != NULL){
     395                    char *version = "?", *revision = "?";
     396                    char *pch2 = strstr(pch1,"-->");
     397                    if(pch2 != NULL){
     398                        pch2[0] = '\0';
     399                        char *ptr1, *saveptr1 = NULL;
     400                        for (i = 0, ptr1 = strtok_r(pch1 + 10, ";", &saveptr1); (ptr1) && i < 4 ; ptr1 = strtok_r(NULL, ";", &saveptr1), i++){
     401                            if(i == 0) checksum = strtoul(ptr1, NULL, 10);
     402                            else if(i == 1) version = ptr1;
     403                            else if(i == 2) revision = ptr1;
     404                            else if(i == 3) ifdefs = ptr1;
    356405                        }
     406                    }
     407                    if(checksum != curchecksum){           
    357408                        cs_log("WARNING: Your http disk template %s was created for an older revision of OSCam and was changed in original OSCam (%s,r%s). Please consider upgrading it!", path, version, revision);
    358409                    } else error = 0;
    359410                } else cs_log("WARNING: Your http disk template %s is in the old template format without revision info. Please consider upgrading it!", path);
    360                 if(error) cs_log("If you are sure that it is current, add the following line at the beginning of the template to suppress this warning: <!--OSCam;%lu;%s;%s-->", curchecksum, CS_VERSION, CS_SVN_VERSION);
     411                if(error) cs_log("If you are sure that it is current, add the following line at the beginning of the template to suppress this warning: <!--OSCam;%lu;%s;%s;%s-->", curchecksum, CS_VERSION, CS_SVN_VERSION, ifdefs);
    361412                free(tplorg);
    362413            }
  • trunk/module-webif-pages.c

    r7210 r7221  
    17201720
    17211721#if defined(QBOXHD) || defined(__arm__)
    1722 #define TPLENABLELEDBIT "\
    1723             <TR><TD>##TPLHELPPREFIX##conf#enableled##TPLHELPSUFFIX##Enable LED:</A></TD><TD><SELECT NAME=\"enableled\"><OPTION VALUE=\"0\">NO</OPTION><OPTION VALUE=\"1\" ##ENABLELEDSELECTED1##>For Router</OPTION><OPTION VALUE=\"2\" ##ENABLELEDSELECTED2##>For QboxHD</OPTION></SELECT></TD></TR>\n"
    1724 #endif
    1725 
    1726 #if defined(QBOXHD_LED) || defined(CS_LED)
    17271722#define TPLENABLELEDBIT "\
    17281723            <TR><TD>##TPLHELPPREFIX##conf#enableled##TPLHELPSUFFIX##Enable LED:</A></TD><TD><SELECT NAME=\"enableled\"><OPTION VALUE=\"0\">NO</OPTION><OPTION VALUE=\"1\" ##ENABLELEDSELECTED1##>For Router</OPTION><OPTION VALUE=\"2\" ##ENABLELEDSELECTED2##>For QboxHD</OPTION></SELECT></TD></TR>\n"
     
    22982293#endif
    22992294
    2300 char *tpl[] = {
    2301     "HEADER",
    2302     "APIHEADER",
    2303     "JSONHEADER",
    2304     "APIERROR",
    2305     "APICONFIRMATION",
    2306     "FOOTER",
    2307     "APIFOOTER",
    2308     "JSONFOOTER",
    2309     "MENU",
    2310     "REFRESH",
    2311     "HELPPREFIX",
    2312     "HELPSUFFIX",
    2313     "STATUS",
    2314     "APISTATUS",
    2315     "JSONSTATUS",
    2316     "CLIENTSTATUSBIT",
    2317     "APISTATUSBIT",
    2318     "JSONSTATUSBIT",
    2319     "USERCONFIGLIST",
    2320     "ADDNEWUSER",
    2321     "USERCONFIGLISTBIT",
    2322     "APIUSERCONFIGLIST",
    2323     "APIUSERCONFIGLISTBIT",
    2324     "SIDTAB",
    2325     "SIDTABBIT",
    2326     "READERS",
    2327     "APIREADERS",
    2328     "APIREADERSBIT",
    2329     "READERSBIT",
    2330     "READERENTITLEBIT",
    2331     "READERREFRESHBIT",
    2332     "READERSTATS",
    2333     "READERSTATSBIT",
    2334     "SCANUSB",
    2335     "SCANUSBBIT",
    2336     "ENTITLEMENTS",
    2337     "ENTITLEMENTGENERICBIT",
    2338     "ENTITLEMENTBIT",
    2339     "ENTITLEMENTITEMBIT",
    2340     "ENTITLEMENTCCCAMBIT",
    2341     "ENTITLEMENTCCCAMENTRYBIT",
    2342     "APICCCAMCARDLIST",
    2343     "APICCCAMCARDBIT",
    2344     "APICCCAMCARDNODEBIT",
    2345     "APICCCAMCARDPROVIDERBIT",
    2346     "APIREADERSTATS",
    2347     "APIREADERSTATSEMMBIT",
    2348     "APIREADERSTATSECMBIT",
    2349     "READERCONFIG",
    2350     "READERCONFIGSIDOKBIT",
    2351     "READERCONFIGSIDNOBIT",
    2352     "READERCONFIGSTDHWREADERBIT",
    2353     "READERCONFIGHOPBIT",
    2354     "READERCONFIGCAMD35BIT",
    2355     "READERCONFIGCS378XBIT",
    2356     "READERCONFIGRADEGASTBIT",
    2357     "READERCONFIGNCD525BIT",
    2358     "READERCONFIGNCD524BIT",
    2359     "READERCONFIGCCCAMBIT",
    2360     "APIUSEREDIT",
    2361     "USEREDIT",
    2362     "USEREDITRDRSELECTED",
    2363     "USEREDITSIDOKBIT",
    2364     "USEREDITSIDNOBIT",
    2365     "SAVETEMPLATES",
    2366     "CONFIGMENU",
    2367     "FILEMENU",
    2368     "FILE",
    2369     "APIFILE",
    2370     "FAILBAN",
    2371     "APIFAILBAN",
    2372     "FAILBANBIT",
    2373     "APIFAILBANBIT",
    2374     "CONFIGGBOX",
    2375     "CONFIGMONITOR",
    2376     "CONFIGGLOBAL",
    2377     "CONFIGSERIALDEVICEBIT",
    2378     "SERVICECONFIGLIST",
    2379     "SERVICECONFIGLISTBIT",
    2380     "SERVICECONFIGSIDBIT",
    2381     "SERVICEEDIT",
    2382     "PRESHUTDOWN",
    2383     "SHUTDOWN",
    2384     "SCRIPT",
    2385     "GRAPH"
     2295const char *tpl[][3] = {
     2296    {"HEADER", TPLHEADER, ""}
     2297    ,{"APIHEADER", TPLAPIHEADER, ""}
     2298    ,{"JSONHEADER", TPLJSONHEADER, ""}
     2299    ,{"APIERROR", TPLAPIERROR, ""}
     2300    ,{"APICONFIRMATION", TPLAPICONFIRMATION, ""}
     2301    ,{"FOOTER", TPLFOOTER, ""}
     2302    ,{"APIFOOTER", TPLAPIFOOTER, ""}
     2303    ,{"JSONFOOTER", TPLJSONFOOTER, ""}
     2304    ,{"MENU", TPLMENU, ""}
     2305    ,{"REFRESH", TPLREFRESH, ""}
     2306    ,{"HELPPREFIX", TPLHELPPREFIX, ""}
     2307    ,{"HELPSUFFIX", TPLHELPSUFFIX, ""}
     2308    ,{"STATUS", TPLSTATUS, ""}
     2309    ,{"APISTATUS", TPLAPISTATUS, ""}
     2310    ,{"JSONSTATUS", TPLJSONSTATUS, ""}
     2311    ,{"CLIENTSTATUSBIT", TPLCLIENTSTATUSBIT, ""}
     2312    ,{"APISTATUSBIT", TPLAPISTATUSBIT, ""}
     2313    ,{"JSONSTATUSBIT", TPLJSONSTATUSBIT, ""}
     2314    ,{"USERCONFIGLIST", TPLUSERCONFIGLIST, ""}
     2315    ,{"ADDNEWUSER", TPLADDNEWUSER, ""}
     2316    ,{"USERCONFIGLISTBIT", TPLUSERCONFIGLISTBIT, ""}
     2317    ,{"APIUSERCONFIGLIST", TPLAPIUSERCONFIGLIST, ""}
     2318    ,{"APIUSERCONFIGLISTBIT", TPLAPIUSERCONFIGLISTBIT, ""}
     2319    ,{"SIDTAB", TPLSIDTAB, ""}
     2320    ,{"SIDTABBIT", TPLSIDTABBIT, ""}
     2321    ,{"READERS", TPLREADERS, ""}
     2322    ,{"APIREADERS", TPLAPIREADERS, ""}
     2323    ,{"APIREADERSBIT", TPLAPIREADERSBIT, ""}
     2324    ,{"READERSBIT", TPLREADERSBIT, ""}
     2325    ,{"READERENTITLEBIT", TPLREADERENTITLEBIT, ""}
     2326    ,{"READERREFRESHBIT", TPLREADERREFRESHBIT, ""}
     2327    ,{"READERSTATS", TPLREADERSTATS, ""}
     2328    ,{"READERSTATSBIT", TPLREADERSTATSBIT, ""}
     2329    ,{"SCANUSB", TPLSCANUSB, ""}
     2330    ,{"SCANUSBBIT", TPLSCANUSBBIT, ""}
     2331    ,{"ENTITLEMENTS", TPLENTITLEMENTS, ""}
     2332    ,{"ENTITLEMENTGENERICBIT", TPLENTITLEMENTGENERICBIT, ""}
     2333    ,{"ENTITLEMENTBIT", TPLENTITLEMENTBIT, ""}
     2334    ,{"ENTITLEMENTITEMBIT", TPLENTITLEMENTITEMBIT, ""}
     2335    ,{"ENTITLEMENTCCCAMBIT", TPLENTITLEMENTCCCAMBIT, ""}
     2336    ,{"ENTITLEMENTCCCAMENTRYBIT", TPLENTITLEMENTCCCAMENTRYBIT, ""}
     2337    ,{"APICCCAMCARDLIST", TPLAPICCCAMCARDLIST, ""}
     2338    ,{"APICCCAMCARDBIT", TPLAPICCCAMCARDBIT, ""}
     2339    ,{"APICCCAMCARDNODEBIT", TPLAPICCCAMCARDNODEBIT, ""}
     2340    ,{"APICCCAMCARDPROVIDERBIT", TPLAPICCCAMCARDPROVIDERBIT, ""}
     2341    ,{"APIREADERSTATS", TPLAPIREADERSTATS, ""}
     2342    ,{"APIREADERSTATSEMMBIT", TPLAPIREADERSTATSEMMBIT, ""}
     2343    ,{"APIREADERSTATSECMBIT", TPLAPIREADERSTATSECMBIT, ""}
     2344    ,{"READERCONFIG", TPLREADERCONFIG, ""}
     2345    ,{"READERCONFIGSIDOKBIT", TPLREADERCONFIGSIDOKBIT, ""}
     2346    ,{"READERCONFIGSIDNOBIT", TPLREADERCONFIGSIDNOBIT, ""}
     2347    ,{"READERCONFIGSTDHWREADERBIT", TPLREADERCONFIGSTDHWREADERBIT, ""}
     2348    ,{"READERCONFIGHOPBIT", TPLREADERCONFIGHOPBIT, ""}
     2349    ,{"READERCONFIGCAMD35BIT", TPLREADERCONFIGCAMD35BIT, ""}
     2350    ,{"READERCONFIGCS378XBIT", TPLREADERCONFIGCS378XBIT, ""}
     2351    ,{"READERCONFIGRADEGASTBIT", TPLREADERCONFIGRADEGASTBIT, ""}
     2352    ,{"READERCONFIGNCD525BIT", TPLREADERCONFIGNCD525BIT, ""}
     2353    ,{"READERCONFIGNCD524BIT", TPLREADERCONFIGNCD524BIT, ""}
     2354    ,{"READERCONFIGCCCAMBIT", TPLREADERCONFIGCCCAMBIT, ""}
     2355    ,{"APIUSEREDIT", TPLAPIUSEREDIT, ""}
     2356    ,{"USEREDIT", TPLUSEREDIT, ""}
     2357    ,{"USEREDITRDRSELECTED", TPLUSEREDITRDRSELECTED, ""}
     2358    ,{"USEREDITSIDOKBIT", TPLUSEREDITSIDOKBIT, ""}
     2359    ,{"USEREDITSIDNOBIT", TPLUSEREDITSIDNOBIT, ""}
     2360    ,{"SAVETEMPLATES", TPLSAVETEMPLATES, ""}
     2361    ,{"CONFIGMENU", TPLCONFIGMENU, ""}
     2362    ,{"FILEMENU", TPLFILEMENU, ""}
     2363    ,{"FILE", TPLFILE, ""}
     2364    ,{"APIFILE", TPLAPIFILE, ""}
     2365    ,{"FAILBAN", TPLFAILBAN, ""}
     2366    ,{"APIFAILBAN", TPLAPIFAILBAN, ""}
     2367    ,{"FAILBANBIT", TPLFAILBANBIT, ""}
     2368    ,{"APIFAILBANBIT", TPLAPIFAILBANBIT, ""}
     2369    ,{"CONFIGGBOX", TPLCONFIGGBOX, ""}
     2370    ,{"CONFIGMONITOR", TPLCONFIGMONITOR, ""}
     2371    ,{"CONFIGGLOBAL", TPLCONFIGGLOBAL, ""}
     2372    ,{"CONFIGSERIALDEVICEBIT", TPLCONFIGSERIALDEVICEBIT, ""}
     2373    ,{"SERVICECONFIGLIST", TPLSERVICECONFIGLIST, ""}
     2374    ,{"SERVICECONFIGLISTBIT", TPLSERVICECONFIGLISTBIT, ""}
     2375    ,{"SERVICECONFIGSIDBIT", TPLSERVICECONFIGSIDBIT, ""}
     2376    ,{"SERVICEEDIT", TPLSERVICEEDIT, ""}
     2377    ,{"PRESHUTDOWN", TPLPRESHUTDOWN, ""}
     2378    ,{"SHUTDOWN", TPLSHUTDOWN, ""}
     2379    ,{"SCRIPT", TPLSCRIPT, ""}
     2380    ,{"GRAPH", TPLGRAPH, ""}
    23862381#ifdef HAVE_DVBAPI
    2387     ,"CONFIGDVBAPI"
    2388     ,"CONFIGMENUDVBAPI"
    2389     ,"FILEMENUDVBAPI"
     2382    ,{"CONFIGDVBAPI", TPLCONFIGDVBAPI, "HAVE_DVBAPI"}
     2383    ,{"CONFIGMENUDVBAPI", TPLCONFIGMENUDVBAPI, "HAVE_DVBAPI"}
     2384    ,{"FILEMENUDVBAPI", TPLFILEMENUDVBAPI, "HAVE_DVBAPI"}
    23902385#endif
    23912386#ifdef CS_ANTICASC
    2392     ,"USEREDITANTICASC"
    2393     ,"CONFIGANTICASC"
    2394     ,"CONFIGMENUANTICASC"
    2395     ,"FILEMENUANTICASC"
     2387    ,{"USEREDITANTICASC", TPLUSEREDITANTICASC, "CS_ANTICASC"}
     2388    ,{"CONFIGANTICASC", TPLCONFIGANTICASC, "CS_ANTICASC"}
     2389    ,{"CONFIGMENUANTICASC", TPLCONFIGMENUANTICASC, "CS_ANTICASC"}
     2390    ,{"FILEMENUANTICASC", TPLFILEMENUANTICASC, "CS_ANTICASC"}
    23962391#endif
    23972392#if defined(QBOXHD) || defined(__arm__)
    2398     ,"ENABLELEDBIT"
    2399 #endif
    2400 #if defined(QBOXHD_LED) || defined(CS_LED)
    2401     ,"ENABLELEDBIT"
     2393    ,{"ENABLELEDBIT", TPLENABLELEDBIT, "QBOXHD,ARM"}
    24022394#endif
    24032395#ifdef WITH_LIBUSB
    2404     ,"READERCONFIGDEVICEEPBIT"
     2396    ,{"READERCONFIGDEVICEEPBIT", TPLREADERCONFIGDEVICEEPBIT, "WITH_LIBUSB"}
    24052397#endif
    24062398#ifdef WITH_COOLAPI
    2407     ,"READERCOOLSTREAMBIT"
     2399    ,{"READERCOOLSTREAMBIT", TPLREADERCOOLSTREAMBIT, "WITH_COOLAPI"}
    24082400#endif
    24092401#ifdef WITH_DEBUG
    2410     ,"DEBUGSELECT"
     2402    ,{"DEBUGSELECT", TPLDEBUGSELECT, "WITH_DEBUG"}
    24112403#endif
    24122404#ifdef WITH_LB
    2413     ,"CONFIGMENULB"
    2414     ,"CONFIGLOADBALANCER"
     2405    ,{"CONFIGMENULB", TPLCONFIGMENULB, "WITH_LB"}
     2406    ,{"CONFIGLOADBALANCER", TPLCONFIGLOADBALANCER, "WITH_LB"}
    24152407#endif
    24162408#ifdef MODULE_CAMD33
    2417     ,"CONFIGCAMD33"
    2418     ,"CONFIGMENUCAMD33"
     2409    ,{"CONFIGCAMD33", TPLCONFIGCAMD33, "MODULE_CAMD33"}
     2410    ,{"CONFIGMENUCAMD33", TPLCONFIGMENUCAMD33, "MODULE_CAMD33"}
    24192411#endif
    24202412#ifdef MODULE_CAMD35
    2421     ,"CONFIGCAMD35"
    2422     ,"CONFIGMENUCAMD35"
     2413    ,{"CONFIGCAMD35", TPLCONFIGCAMD35, "MODULE_CAMD35"}
     2414    ,{"CONFIGMENUCAMD35", TPLCONFIGMENUCAMD35, "MODULE_CAMD35"}
    24232415#endif
    24242416#ifdef MODULE_CCCAM
    2425     ,"USEREDITCCCAM"
    2426     ,"CONFIGCCCAM"
    2427     ,"CONFIGMENUCCCAM"
     2417    ,{"USEREDITCCCAM", TPLUSEREDITCCCAM, "MODULE_CCCAM"}
     2418    ,{"CONFIGCCCAM", TPLCONFIGCCCAM, "MODULE_CCCAM"}
     2419    ,{"CONFIGMENUCCCAM", TPLCONFIGMENUCCCAM, "MODULE_CCCAM"}
    24282420#endif
    24292421#ifdef MODULE_NEWCAMD
    2430     ,"CONFIGNEWCAMD"
    2431     ,"CONFIGMENUNEWCAMD"
     2422    ,{"CONFIGNEWCAMD", TPLCONFIGNEWCAMD, "MODULE_NEWCAMD"}
     2423    ,{"CONFIGMENUNEWCAMD", TPLCONFIGMENUNEWCAMD, "MODULE_NEWCAMD"}
    24322424#endif
    24332425#ifdef MODULE_RADEGAST
    2434     ,"CONFIGRADEGAST"
    2435     ,"CONFIGMENURADEGAST"
     2426    ,{"CONFIGRADEGAST", TPLCONFIGRADEGAST, "MODULE_RADEGAST"}
     2427    ,{"CONFIGMENURADEGAST", TPLCONFIGMENURADEGAST, "MODULE_RADEGAST"}
    24362428#endif
    24372429#ifdef MODULE_CAMD35_TCP
    2438     ,"CONFIGCAMD35TCP"
    2439     ,"CONFIGMENUCAMD35TCP"
     2430    ,{"CONFIGCAMD35TCP", TPLCONFIGCAMD35TCP, "MODULE_CAMD35_TCP"}
     2431    ,{"CONFIGMENUCAMD35TCP", TPLCONFIGMENUCAMD35TCP, "MODULE_CAMD35_TCP"}
    24402432#endif
    24412433#ifdef MODULE_SERIAL
    2442     ,"CONFIGSERIAL"
    2443     ,"CONFIGMENUSERIAL"
     2434    ,{"CONFIGSERIAL", TPLCONFIGSERIAL, "MODULE_SERIAL"}
     2435    ,{"CONFIGMENUSERIAL", TPLCONFIGMENUSERIAL, "MODULE_SERIAL"}
    24442436#endif
    24452437#ifdef LCDSUPPORT
    2446     ,"LCDOPTIONS"
     2438    ,{"LCDOPTIONS", TPLLCDOPTIONS, "LCDSUPPORT"}
    24472439#endif
    24482440#ifdef WITH_SSL
    2449     ,"HTTPFORCESSLV3"
     2441    ,{"HTTPFORCESSLV3", TPLHTTPFORCESSLV3, "WITH_SSL"}
    24502442#endif
    24512443#ifdef CS_CACHEEX
    2452     ,"USEREDITCACHEEXBIT"
    2453     ,"READEREDITCACHEEXBIT"
    2454     ,"CACHEEXWAITTIME"
    2455     ,"CACHEEXPAGE"
    2456     ,"CACHEEXTABLEROW"
    2457     ,"CACHEEXMENUITEM"
    2458     ,"CONFIGMENUCSP"
    2459     ,"CONFIGCSP"
    2460     ,"ICARRR"
    2461     ,"ICARRL"
    2462 #endif
    2463     ,"ICMAI"
    2464     ,"ICSTA"
    2465     ,"ICDEL"
    2466     ,"ICEDI"
    2467     ,"ICENT"
    2468     ,"ICREF"
    2469     ,"ICKIL"
    2470     ,"ICDIS"
    2471     ,"ICENA"
    2472     ,"ICHID"
    2473     ,"ICRES"
    2474     ,"ICSPAC"
     2444    ,{"USEREDITCACHEEXBIT", TPLUSEREDITCACHEEXBIT, "CS_CACHEEX"}
     2445    ,{"READEREDITCACHEEXBIT", TPLREADEREDITCACHEEXBIT, "CS_CACHEEX"}
     2446    ,{"CACHEEXWAITTIME", TPLCACHEEXWAITTIME, "CS_CACHEEX"}
     2447    ,{"CACHEEXPAGE", TPLCACHEEXPAGE, "CS_CACHEEX"}
     2448    ,{"CACHEEXTABLEROW", TPLCACHEEXTABLEROW, "CS_CACHEEX"}
     2449    ,{"CACHEEXMENUITEM", TPLCACHEEXMENUITEM, "CS_CACHEEX"}
     2450    ,{"CONFIGMENUCSP", TPLCONFIGMENUCSP, "CS_CACHEEX"}
     2451    ,{"CONFIGCSP", TPLCONFIGCSP, "CS_CACHEEX"}
     2452    ,{"ICARRR", ICARRR, "CS_CACHEEX"}
     2453    ,{"ICARRL", ICARRL, "CS_CACHEEX"}
     2454#endif
     2455    ,{"ICMAI", ICMAI, ""}
     2456    ,{"ICSTA", ICSTA, ""}
     2457    ,{"ICDEL", ICDEL, ""}
     2458    ,{"ICEDI", ICEDI, ""}
     2459    ,{"ICENT", ICENT, ""}
     2460    ,{"ICREF", ICREF, ""}
     2461    ,{"ICKIL", ICKIL, ""}
     2462    ,{"ICDIS", ICDIS, ""}
     2463    ,{"ICENA", ICENA, ""}
     2464    ,{"ICHID", ICHID, ""}
     2465    ,{"ICRES", ICRES, ""}
     2466    ,{"ICSPAC", ICSPAC, ""}
    24752467};
    24762468
    2477 char *tplmap[] = {
    2478     TPLHEADER,
    2479     TPLAPIHEADER,
    2480     TPLJSONHEADER,
    2481     TPLAPIERROR,
    2482     TPLAPICONFIRMATION,
    2483     TPLFOOTER,
    2484     TPLAPIFOOTER,
    2485     TPLJSONFOOTER,
    2486     TPLMENU,
    2487     TPLREFRESH,
    2488     TPLHELPPREFIX,
    2489     TPLHELPSUFFIX,
    2490     TPLSTATUS,
    2491     TPLAPISTATUS,
    2492     TPLJSONSTATUS,
    2493     TPLCLIENTSTATUSBIT,
    2494     TPLAPISTATUSBIT,
    2495     TPLJSONSTATUSBIT,
    2496     TPLUSERCONFIGLIST,
    2497     TPLADDNEWUSER,
    2498     TPLUSERCONFIGLISTBIT,
    2499     TPLAPIUSERCONFIGLIST,
    2500     TPLAPIUSERCONFIGLISTBIT,
    2501     TPLSIDTAB,
    2502     TPLSIDTABBIT,
    2503     TPLREADERS,
    2504     TPLAPIREADERS,
    2505     TPLAPIREADERSBIT,
    2506     TPLREADERSBIT,
    2507     TPLREADERENTITLEBIT,
    2508     TPLREADERREFRESHBIT,
    2509     TPLREADERSTATS,
    2510     TPLREADERSTATSBIT,
    2511     TPLSCANUSB,
    2512     TPLSCANUSBBIT,
    2513     TPLENTITLEMENTS,
    2514     TPLENTITLEMENTGENERICBIT,
    2515     TPLENTITLEMENTBIT,
    2516     TPLENTITLEMENTITEMBIT,
    2517     TPLENTITLEMENTCCCAMBIT,
    2518     TPLENTITLEMENTCCCAMENTRYBIT,
    2519     TPLAPICCCAMCARDLIST,
    2520     TPLAPICCCAMCARDBIT,
    2521     TPLAPICCCAMCARDNODEBIT,
    2522     TPLAPICCCAMCARDPROVIDERBIT,
    2523     TPLAPIREADERSTATS,
    2524     TPLAPIREADERSTATSEMMBIT,
    2525     TPLAPIREADERSTATSECMBIT,
    2526     TPLREADERCONFIG,
    2527     TPLREADERCONFIGSIDOKBIT,
    2528     TPLREADERCONFIGSIDNOBIT,
    2529     TPLREADERCONFIGSTDHWREADERBIT,
    2530     TPLREADERCONFIGHOPBIT,
    2531     TPLREADERCONFIGCAMD35BIT,
    2532     TPLREADERCONFIGCS378XBIT,
    2533     TPLREADERCONFIGRADEGASTBIT,
    2534     TPLREADERCONFIGNCD525BIT,
    2535     TPLREADERCONFIGNCD524BIT,
    2536     TPLREADERCONFIGCCCAMBIT,
    2537     TPLAPIUSEREDIT,
    2538     TPLUSEREDIT,
    2539     TPLUSEREDITRDRSELECTED,
    2540     TPLUSEREDITSIDOKBIT,
    2541     TPLUSEREDITSIDNOBIT,
    2542     TPLSAVETEMPLATES,
    2543     TPLCONFIGMENU,
    2544     TPLFILEMENU,
    2545     TPLFILE,
    2546     TPLAPIFILE,
    2547     TPLFAILBAN,
    2548     TPLAPIFAILBAN,
    2549     TPLFAILBANBIT,
    2550     TPLAPIFAILBANBIT,
    2551     TPLCONFIGGBOX,
    2552     TPLCONFIGMONITOR,
    2553     TPLCONFIGGLOBAL,
    2554     TPLCONFIGSERIALDEVICEBIT,
    2555     TPLSERVICECONFIGLIST,
    2556     TPLSERVICECONFIGLISTBIT,
    2557     TPLSERVICECONFIGSIDBIT,
    2558     TPLSERVICEEDIT,
    2559     TPLPRESHUTDOWN,
    2560     TPLSHUTDOWN,
    2561     TPLSCRIPT,
    2562     TPLGRAPH
    2563 #ifdef HAVE_DVBAPI
    2564     ,TPLCONFIGDVBAPI
    2565     ,TPLCONFIGMENUDVBAPI
    2566     ,TPLFILEMENUDVBAPI
    2567 #endif
    2568 #ifdef CS_ANTICASC
    2569     ,TPLUSEREDITANTICASC
    2570     ,TPLCONFIGANTICASC
    2571     ,TPLCONFIGMENUANTICASC
    2572     ,TPLFILEMENUANTICASC
    2573 #endif
    2574 #if defined(QBOXHD) || defined(__arm__)
    2575     ,TPLENABLELEDBIT
    2576 #endif
    2577 #if defined(QBOXHD_LED) || defined(CS_LED)
    2578     ,TPLENABLELEDBIT
    2579 #endif
    2580 #ifdef WITH_LIBUSB
    2581     ,TPLREADERCONFIGDEVICEEPBIT
    2582 #endif
    2583 #ifdef WITH_COOLAPI
    2584     ,TPLREADERCOOLSTREAMBIT
    2585 #endif
    2586 #ifdef WITH_DEBUG
    2587     ,TPLDEBUGSELECT
    2588 #endif
    2589 #ifdef WITH_LB
    2590     ,TPLCONFIGMENULB
    2591     ,TPLCONFIGLOADBALANCER
    2592 #endif
    2593 #ifdef MODULE_CAMD33
    2594     ,TPLCONFIGCAMD33
    2595     ,TPLCONFIGMENUCAMD33
    2596 #endif
    2597 #ifdef MODULE_CAMD35
    2598     ,TPLCONFIGCAMD35
    2599     ,TPLCONFIGMENUCAMD35
    2600 #endif
    2601 #ifdef MODULE_CCCAM
    2602     ,TPLUSEREDITCCCAM
    2603     ,TPLCONFIGCCCAM
    2604     ,TPLCONFIGMENUCCCAM
    2605 #endif
    2606 #ifdef MODULE_NEWCAMD
    2607     ,TPLCONFIGNEWCAMD
    2608     ,TPLCONFIGMENUNEWCAMD
    2609 #endif
    2610 #ifdef MODULE_RADEGAST
    2611     ,TPLCONFIGRADEGAST
    2612     ,TPLCONFIGMENURADEGAST
    2613 #endif
    2614 #ifdef MODULE_CAMD35_TCP
    2615     ,TPLCONFIGCAMD35TCP
    2616     ,TPLCONFIGMENUCAMD35TCP
    2617 #endif
    2618 #ifdef MODULE_SERIAL
    2619     ,TPLCONFIGSERIAL
    2620     ,TPLCONFIGMENUSERIAL
    2621 #endif
    2622 #ifdef LCDSUPPORT
    2623     ,TPLLCDOPTIONS
    2624 #endif
    2625 #ifdef WITH_SSL
    2626     ,TPLHTTPFORCESSLV3
    2627 #endif
    2628 #ifdef CS_CACHEEX
    2629     ,TPLUSEREDITCACHEEXBIT
    2630     ,TPLREADEREDITCACHEEXBIT
    2631     ,TPLCACHEEXWAITTIME
    2632     ,TPLCACHEEXPAGE
    2633     ,TPLCACHEEXTABLEROW
    2634     ,TPLCACHEEXMENUITEM
    2635     ,TPLCONFIGMENUCSP
    2636     ,TPLCONFIGCSP
    2637     ,ICARRR
    2638     ,ICARRL
    2639 #endif
    2640     ,ICMAI
    2641     ,ICSTA
    2642     ,ICDEL
    2643     ,ICEDI
    2644     ,ICENT
    2645     ,ICREF
    2646     ,ICKIL
    2647     ,ICDIS
    2648     ,ICENA
    2649     ,ICHID
    2650     ,ICRES
    2651     ,ICSPAC
    2652 };
    2653 
    2654 int32_t tpl_count(void) { return sizeof(tpl) / sizeof(char *); }
    2655 int32_t tplmap_count(void) { return sizeof(tplmap) / sizeof(char *); }
     2469int32_t tpl_count(void) { return sizeof(tpl) / (3*sizeof(char *)); }
    26562470int32_t cv(void) { return 91789605==crc32(0L,(unsigned char*)ICMAI,strlen(ICMAI))/2?1:0; }
    26572471
  • trunk/module-webif.c

    r7216 r7221  
    1616#include "module-webif.h"
    1717
    18 extern char *tplmap[];
    19 extern char *tpl[];
    2018extern char *CSS;
    2119extern char *entitlement_type[];
  • trunk/module-webif.h

    r7175 r7221  
    108108
    109109extern int32_t tpl_count(void);
    110 extern int32_t tplmap_count(void);
    111110extern int32_t cv(void);
    112111
  • trunk/oscam-config-funcs.h

    r7175 r7221  
    114114}
    115115
     116static inline int config_WITH_COOLAPI(void) {
     117    #ifdef WITH_COOLAPI
     118    return 1;
     119    #else
     120    return 0;
     121    #endif
     122}
     123
    116124static inline int config_WITH_DEBUG(void) {
    117125    #ifdef WITH_DEBUG
     
    338346}
    339347
    340 #endif
     348static inline int config_QBOXHD(void) {
     349    #ifdef QBOXHD
     350    return 1;
     351    #else
     352    return 0;
     353    #endif
     354}
     355
     356static inline int config_ARM(void) {
     357    #ifdef __arm__
     358    return 1;
     359    #else
     360    return 0;
     361    #endif
     362}
     363
     364#endif
Note: See TracChangeset for help on using the changeset viewer.