- Timestamp:
- 02/24/10 00:50:10 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/monitor-improvement/oscam-config.c
r1640 r1666 120 120 void chk_caidtab(char *caidasc, CAIDTAB *ctab) 121 121 { 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 } 152 143 } 153 144 154 145 void chk_tuntab(char *tunasc, TUNTAB *ttab) 155 146 { 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 } 186 175 } 187 176 188 177 void chk_services(char *labels, ulong *sidok, ulong *sidno) 189 178 { 190 191 192 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 } 200 189 } 201 190
Note:
See TracChangeset
for help on using the changeset viewer.