Changeset 5318 for trunk/oscam-config.c
- Timestamp:
- 05/28/11 22:00:48 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/oscam-config.c
r5316 r5318 319 319 { 320 320 int32_t i, j, nfilts, ifilt, iport; 321 PTAB newptab;321 PTAB *newptab; 322 322 char *ptr1, *ptr2, *ptr3, *saveptr1 = NULL; 323 323 char *ptr[CS_MAXPORTS] = {0}; 324 324 int32_t port[CS_MAXPORTS] = {0}; 325 memset(&newptab, 0, sizeof(newptab));326 327 for (nfilts = i = 0, ptr1 = strtok_r(portasc, ";", &saveptr1); (i < CS_MAX CAIDTAB) && (ptr1); ptr1 = strtok_r(NULL, ";", &saveptr1), i++) {325 if(!cs_malloc(&newptab, sizeof(PTAB), -1)) return; 326 327 for (nfilts = i = 0, ptr1 = strtok_r(portasc, ";", &saveptr1); (i < CS_MAXPORTS) && (ptr1); ptr1 = strtok_r(NULL, ";", &saveptr1), i++) { 328 328 ptr[i] = ptr1; 329 329 if( (ptr2=strchr(trim(ptr1), '@')) ) { 330 330 *ptr2++ ='\0'; 331 newptab .ports[i].s_port = atoi(ptr1);331 newptab->ports[i].s_port = atoi(ptr1); 332 332 333 333 //checking for des key for port 334 newptab .ports[i].ncd_key_is_set = 0; //default to 0334 newptab->ports[i].ncd_key_is_set = 0; //default to 0 335 335 if( (ptr3=strchr(trim(ptr1), '{')) ) { 336 336 *ptr3++='\0'; 337 if (key_atob_l(ptr3, newptab .ports[i].ncd_key, 28))337 if (key_atob_l(ptr3, newptab->ports[i].ncd_key, 28)) 338 338 fprintf(stderr, "newcamd: error in DES Key for port %s -> ignored\n", ptr1); 339 339 else 340 newptab .ports[i].ncd_key_is_set = 1;340 newptab->ports[i].ncd_key_is_set = 1; 341 341 } 342 342 343 343 ptr[i] = ptr2; 344 port[i] = newptab .ports[i].s_port;345 newptab .nports++;344 port[i] = newptab->ports[i].s_port; 345 newptab->nports++; 346 346 } 347 347 nfilts++; 348 348 } 349 349 350 if( nfilts == 1 && strlen(portasc) < 6 && newptab .ports[0].s_port == 0 ) {351 newptab .ports[0].s_port = atoi(portasc);352 newptab .nports = 1;350 if( nfilts == 1 && strlen(portasc) < 6 && newptab->ports[0].s_port == 0 ) { 351 newptab->ports[0].s_port = atoi(portasc); 352 newptab->nports = 1; 353 353 } 354 354 … … 360 360 if( (ptr2=strchr(trim(ptr3), ':')) ) { 361 361 *ptr2++='\0'; 362 newptab .ports[iport].ftab.nfilts++;363 ifilt = newptab .ports[iport].ftab.nfilts-1;364 newptab .ports[iport].ftab.filts[ifilt].caid = (uint16_t)a2i(ptr3, 4);365 newptab .ports[iport].ftab.filts[ifilt].prids[j] = a2i(ptr2, 6);362 newptab->ports[iport].ftab.nfilts++; 363 ifilt = newptab->ports[iport].ftab.nfilts-1; 364 newptab->ports[iport].ftab.filts[ifilt].caid = (uint16_t)a2i(ptr3, 4); 365 newptab->ports[iport].ftab.filts[ifilt].prids[j] = a2i(ptr2, 6); 366 366 } else { 367 newptab .ports[iport].ftab.filts[ifilt].prids[j] = a2i(ptr3, 6);367 newptab->ports[iport].ftab.filts[ifilt].prids[j] = a2i(ptr3, 6); 368 368 } 369 newptab.ports[iport].ftab.filts[ifilt].nprids++; 370 } 371 } 372 memcpy(ptab, &newptab, sizeof(PTAB)); 369 newptab->ports[iport].ftab.filts[ifilt].nprids++; 370 } 371 } 372 memcpy(ptab, newptab, sizeof(PTAB)); 373 free(newptab); 373 374 } 374 375
Note:
See TracChangeset
for help on using the changeset viewer.