Changeset 6374
- Timestamp:
- 02/11/12 15:11:39 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/oscam.c
r6365 r6374 577 577 { 578 578 ECM_REQUEST *ecm; 579 struct s_ecm_answer *ea_list, *ea_prev=NULL; 580 579 581 if (cl->ecmtask) { 580 582 int32_t i, n=(ph[cl->ctyp].multi)?CS_MAXPENDING:1; … … 601 603 ecm->cacheex_src = NULL; 602 604 #endif 605 for(ea_list = ecm->matching_rdr; ea_list; ea_prev = ea_list, ea_list = ea_list->next) { 606 if (ea_list->reader->client == cl) { 607 if (ea_prev) 608 ea_prev->next = ea_list->next; 609 else 610 ecm->matching_rdr = ea_list->next; 611 add_garbage(ea_list); 612 } 613 } 614 603 615 } 604 616 cs_readunlock(&ecmcache_lock); … … 1400 1412 if (rdr->client == cl) 1401 1413 break; 1414 1402 1415 if (rdr->client == cl) { 1403 1416 prev->next = cl->next; //remove client from list … … 1422 1435 if (rdr->client == cl) { 1423 1436 prev->next = cl->next; //remove client from list 1424 cl = rdr_prv->client->next; 1425 rdr_prv->client->next = rdr->client; 1426 rdr->client->next = cl; 1437 cl->next = rdr_prv->client->next; 1438 rdr_prv->client->next = cl; 1427 1439 } 1428 1440 } … … 1467 1479 } 1468 1480 1469 if ( rdr->enable == 0)1481 if (!rdr->enable) 1470 1482 return 0; 1471 1483 … … 1491 1503 1492 1504 add_job(cl, ACTION_READER_INIT, NULL, 0); 1505 add_reader_to_active(rdr); 1493 1506 1494 1507 return 1; … … 2118 2131 { 2119 2132 #ifdef CS_CACHEEX 2120 if (!rdr || rc>=E_99 || rdr->cacheex==1 )2133 if (!rdr || rc>=E_99 || rdr->cacheex==1 || !rdr->client) 2121 2134 return; 2122 2135 #else 2123 if (!rdr || rc>=E_99 )2136 if (!rdr || rc>=E_99 || !rdr->client) 2124 2137 return; 2125 2138 #endif … … 3645 3658 break; 3646 3659 case ACTION_READER_INIT: 3647 if (!cl->init_done) {3660 if (!cl->init_done) 3648 3661 reader_init(reader); 3649 add_reader_to_active(reader);3650 }3651 3662 break; 3652 3663 case ACTION_READER_RESTART:
Note:
See TracChangeset
for help on using the changeset viewer.