Changeset 1666


Ignore:
Timestamp:
02/24/10 00:50:10 (11 years ago)
Author:
alno
Message:

WebIf:

  • some code cleanup and structure
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/monitor-improvement/oscam-config.c

    r1640 r1666  
    120120void chk_caidtab(char *caidasc, CAIDTAB *ctab)
    121121{
    122   int i;
    123   char *ptr1, *ptr2, *ptr3;
    124 
    125   //reset caid tab needed for usage while runtime from webif
    126   for (i=0;i<CS_MAXCAIDTAB;i++){
    127     ctab->caid[i]=0;
    128         ctab->mask[i]=0;
    129         ctab->cmap[i++]=0;
    130   }
    131 
    132   for (i=0, ptr1=strtok(caidasc, ","); (i<CS_MAXCAIDTAB) && (ptr1); ptr1=strtok(NULL, ","))
    133   {
    134     ulong caid, mask, cmap;
    135     if( (ptr3=strchr(trim(ptr1), ':')) )
    136       *ptr3++='\0';
    137     else
    138       ptr3="";
    139     if( (ptr2=strchr(trim(ptr1), '&')) )
    140       *ptr2++='\0';
    141     else
    142       ptr2="";
    143     if (((caid=a2i(ptr1, 2))|(mask=a2i(ptr2,-2))|(cmap=a2i(ptr3, 2))) < 0x10000)
    144     {
    145       ctab->caid[i]=caid;
    146       ctab->mask[i]=mask;
    147       ctab->cmap[i++]=cmap;
    148     }
    149 //    else
    150 //      cs_log("WARNING: wrong CAID in %s -> ignored", cs_user);
    151   }
     122    int i;
     123    char *ptr1, *ptr2, *ptr3;
     124
     125    for (i = 0, ptr1 = strtok(caidasc, ","); (i < CS_MAXCAIDTAB) && (ptr1); ptr1 = strtok(NULL, ",")) {
     126        ulong caid, mask, cmap;
     127        if( (ptr3 = strchr(trim(ptr1), ':')) )
     128            *ptr3++ = '\0';
     129        else
     130            ptr3 = "";
     131
     132        if( (ptr2 = strchr(trim(ptr1), '&')) )
     133            *ptr2++ = '\0';
     134        else
     135            ptr2 = "";
     136
     137        if (((caid = a2i(ptr1, 2)) | (mask = a2i(ptr2,-2)) | (cmap = a2i(ptr3, 2))) < 0x10000) {
     138            ctab->caid[i] = caid;
     139            ctab->mask[i] = mask;
     140            ctab->cmap[i++] = cmap;
     141        }
     142    }
    152143}
    153144
    154145void chk_tuntab(char *tunasc, TUNTAB *ttab)
    155146{
    156   int i;
    157   char *ptr1, *ptr2, *ptr3;
    158 
    159   //reset tuntab for usage during runtime from WebIf
    160   for (i=0;i<CS_MAXTUNTAB;i++) {
    161         ttab->bt_caidfrom[i]=0;
    162         ttab->bt_caidto[i]=0;
    163         ttab->bt_srvid[i++]=0;
    164   }
    165 
    166     for (i=0, ptr1=strtok(tunasc, ","); (i<CS_MAXTUNTAB) && (ptr1); ptr1=strtok(NULL, ","))
    167   {
    168     ulong bt_caidfrom, bt_caidto, bt_srvid;
    169     if( (ptr3=strchr(trim(ptr1), ':')) )
    170       *ptr3++='\0';
    171     else
    172       ptr3="";
    173     if( (ptr2=strchr(trim(ptr1), '.')) )
    174       *ptr2++='\0';
    175     else
    176       ptr2="";
    177     if ((bt_caidfrom=a2i(ptr1, 2))|(bt_srvid=a2i(ptr2,-2))|(bt_caidto=a2i(ptr3, 2)))
    178     {
    179       ttab->bt_caidfrom[i]=bt_caidfrom;
    180       ttab->bt_caidto[i]=bt_caidto;
    181       ttab->bt_srvid[i++]=bt_srvid;
    182     }
    183 //    else
    184 //      cs_log("WARNING: wrong Betatunnel in %s -> ignored", cs_user);
    185   }
     147    int i;
     148    char *ptr1, *ptr2, *ptr3;
     149
     150    // ToDo: remove after using clear_tuntab() in Webif
     151    for (i = 0; i < CS_MAXTUNTAB; i++) {
     152        ttab->bt_caidfrom[i] = 0;
     153        ttab->bt_caidto[i] = 0;
     154        ttab->bt_srvid[i] = 0;
     155    }
     156
     157    for (i = 0, ptr1 = strtok(tunasc, ","); (i < CS_MAXTUNTAB) && (ptr1); ptr1 = strtok(NULL, ",")) {
     158        ulong bt_caidfrom, bt_caidto, bt_srvid;
     159        if( (ptr3 = strchr(trim(ptr1), ':')) )
     160            *ptr3++ = '\0';
     161        else
     162            ptr3 = "";
     163
     164        if( (ptr2 = strchr(trim(ptr1), '.')) )
     165            *ptr2++ = '\0';
     166        else
     167            ptr2 = "";
     168
     169        if ((bt_caidfrom = a2i(ptr1, 2)) | (bt_srvid = a2i(ptr2,-2)) | (bt_caidto = a2i(ptr3, 2))) {
     170            ttab->bt_caidfrom[i] = bt_caidfrom;
     171            ttab->bt_caidto[i] = bt_caidto;
     172            ttab->bt_srvid[i++] = bt_srvid;
     173        }
     174    }
    186175}
    187176
    188177void chk_services(char *labels, ulong *sidok, ulong *sidno)
    189178{
    190   int i;
    191   char *ptr;
    192   SIDTAB *sidtab;
    193   *sidok=*sidno=0;
    194   for (ptr=strtok(labels, ","); ptr; ptr=strtok(NULL, ","))
    195     for (trim(ptr), i=0, sidtab=cfg->sidtab; sidtab; sidtab=sidtab->next, i++)
    196     {
    197       if (!strcmp(sidtab->label, ptr)) *sidok|=(1<<i);
    198       if ((ptr[0]=='!') && (!strcmp(sidtab->label, ptr+1))) *sidno|=(1<<i);
    199     }
     179    int i;
     180    char *ptr;
     181    SIDTAB *sidtab;
     182    *sidok = *sidno = 0;
     183    for (ptr=strtok(labels, ","); ptr; ptr=strtok(NULL, ",")) {
     184        for (trim(ptr), i = 0, sidtab = cfg->sidtab; sidtab; sidtab = sidtab->next, i++) {
     185            if (!strcmp(sidtab->label, ptr)) *sidok|=(1<<i);
     186            if ((ptr[0]=='!') && (!strcmp(sidtab->label, ptr+1))) *sidno|=(1<<i);
     187        }
     188    }
    200189}
    201190
Note: See TracChangeset for help on using the changeset viewer.