Changeset 11160


Ignore:
Timestamp:
11/12/11 15:22:30 (12 years ago)
Author:
nit
Message:

[titan] fix ca

Location:
titan/titan
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/cam.h

    r11145 r11160  
    4141//flag 0 = from zap
    4242//flag 1 = from watchthread
    43 //flag 2 = from cathread
     43//flag 2 = from cathread / caservicedel
    4444//flag 3 = from recordthread
    4545int caserviceadd(struct service* snode, int flag)
     
    8989                        if(caservice[i].count < 1)
    9090                        {
    91                                 caservice[i].service = NULL;
    92                                 caservice[i].channel = NULL;
    9391                                if(caservice[i].camsockfd > -1)
    9492                                        sockclose(&caservice[i].camsockfd);
    9593                                if(caservice[i].caslot > -1)
     94                                {
     95                                        sendcapmt(caservice[i].service, 1, 2);
    9696                                        caservice[i].caslot = -1;
     97                                }
     98                                caservice[i].service = NULL;
     99                                caservice[i].channel = NULL;
    97100                        }
    98101                }
     
    203206//flag 0 = from zap
    204207//flag 1 = from watchthread
    205 //flag 2 = from cathread
     208//flag 2 = from cathread / caservicedel
    206209//flag 3 = from recordthread
    207 void sendcapmt(struct service* node, int flag)
     210void sendcapmt(struct service* node, int clear, int flag)
    208211{
    209212        int pos = 10, i = 0, lenbytes = 0, round = 0, caservicenr = 0;
     
    265268        }
    266269
    267         caservicenr = caserviceadd(node, flag);
    268         if(caservicenr < 0)
    269         {
    270                 debug(620, "service is decrypt");
    271                 free(buf);
    272                 return;
     270        if(clear == 0)
     271        {
     272                caservicenr = caserviceadd(node, flag);
     273                if(caservicenr < 0)
     274                {
     275                        debug(620, "service is decrypt");
     276                        free(buf);
     277                        return;
     278                }
    273279        }
    274280
     
    333339        }
    334340
    335         while(cadescnode != NULL)
     341        while(cadescnode != NULL && clear == 0)
    336342        {
    337343                if(cadescnode->len > 0)
     
    379385        {
    380386#ifdef CAMSUPP
    381                 if(caservice[caservicenr].caslot < 0)
     387                if(caservice[caservicenr].caslot < 0 || clear == 1)
    382388                        sendcapmttocam(node, buf, pos, caservicenr);
    383389#endif
    384                 round = 1;
    385                 goto start;
     390                if(clear == 0)
     391                {
     392                        round = 1;
     393                        goto start;
     394                }
    386395        }
    387396        else
     
    408417                        sockcheck(&caservice[i].camsockfd);
    409418                        if(caservice[i].camsockfd < 0 || caservice[i].caslot < 0)
    410                                 sendcapmt(caservice[i].service, 1);
     419                                sendcapmt(caservice[i].service, 0, 1);
    411420                }
    412421        }
  • titan/titan/record.h

    r11054 r11160  
    724724                        }
    725725                        else
    726                                 sendcapmt(servicenode, 3);
     726                                sendcapmt(servicenode, 0, 3);
    727727                        m_unlock(&status.servicemutex, 2);
    728728
  • titan/titan/service.h

    r11055 r11160  
    214214                        }
    215215                        else
    216                                 sendcapmt(status.aktservice, 0);
     216                                sendcapmt(status.aktservice, 0, 0);
    217217                }
    218218                free(patbuf);
     
    397397                        }
    398398                        else
    399                                 sendcapmt(status.aktservice, 0);
     399                                sendcapmt(status.aktservice, 0, 0);
    400400                }
    401401                free(patbuf);
Note: See TracChangeset for help on using the changeset viewer.