Ignore:
Timestamp:
09/22/10 21:36:20 (10 years ago)
Author:
_network
Message:

remove global mbuf

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/module-newcamd.c

    r3170 r3172  
    619619    int au=0;
    620620    struct s_ip *p_ip;
     621    uchar mbuf[1024];
    621622
    622623    ok = cfg->ncd_allowed ? 0 : 1;
     
    640641    client[cs_idx].ncd_msgid = 0;
    641642
    642     i=process_input(client[cs_idx].mbuf, sizeof(client[cs_idx].mbuf), cfg->cmaxidle);
     643    i=process_input(mbuf, sizeof(mbuf), cfg->cmaxidle);
    643644    if ( i>0 )
    644645    {
    645       if( client[cs_idx].mbuf[2] != MSG_CLIENT_2_SERVER_LOGIN )
     646      if( mbuf[2] != MSG_CLIENT_2_SERVER_LOGIN )
    646647      {
    647648        cs_debug("expected MSG_CLIENT_2_SERVER_LOGIN (%02X), received %02X",
    648         MSG_CLIENT_2_SERVER_LOGIN, client[cs_idx].mbuf[2]);
     649        MSG_CLIENT_2_SERVER_LOGIN, mbuf[2]);
    649650        if(client[cs_idx].req)
    650651        {
     
    654655        cs_exit(0);
    655656      }
    656       usr=client[cs_idx].mbuf+5;
     657      usr=mbuf+5;
    657658      pwd=usr+strlen((char *)usr)+1;
    658659    }
     
    668669    }
    669670
    670     sprintf(client_id, "%02X%02X", client[cs_idx].mbuf[0], client[cs_idx].mbuf[1]);
     671    sprintf(client_id, "%02X%02X", mbuf[0], mbuf[1]);
    671672    client_name = get_ncd_client_name(client_id);
    672673
     
    747748      memcpy(client[cs_idx].ncd_skey, key, 16);
    748749
    749       i=process_input(client[cs_idx].mbuf, sizeof(client[cs_idx].mbuf), cfg->cmaxidle);
     750      i=process_input(mbuf, sizeof(mbuf), cfg->cmaxidle);
    750751      if( i>0 )
    751752      {
    752753        int j,len=15;
    753         if( client[cs_idx].mbuf[2] != MSG_CARD_DATA_REQ)
     754        if( mbuf[2] != MSG_CARD_DATA_REQ)
    754755        {
    755756          cs_debug("expected MSG_CARD_DATA_REQ (%02X), received %02X",
    756                    MSG_CARD_DATA_REQ, client[cs_idx].mbuf[2]);
     757                   MSG_CARD_DATA_REQ, mbuf[2]);
    757758          if(client[cs_idx].req)
    758759            free(client[cs_idx].req); client[cs_idx].req=0;
     
    771772        client[cs_idx].ftab.nfilts = 1;
    772773
    773         client[cs_idx].mbuf[0] = MSG_CARD_DATA;
    774         client[cs_idx].mbuf[1] = 0x00;
    775         client[cs_idx].mbuf[2] = 0x00;
     774        mbuf[0] = MSG_CARD_DATA;
     775        mbuf[1] = 0x00;
     776        mbuf[2] = 0x00;
    776777
    777778        if( au != -1 )
    778             client[cs_idx].mbuf[3] = 1;
     779            mbuf[3] = 1;
    779780        else
    780             client[cs_idx].mbuf[3] = cs_idx+10; // Unique user number
    781 
    782         client[cs_idx].mbuf[4] = (uchar)(pufilt->caid>>8);
    783         client[cs_idx].mbuf[5] = (uchar)(pufilt->caid);
    784         client[cs_idx].mbuf[6] = 0x00;
    785         client[cs_idx].mbuf[7] = 0x00;
     781            mbuf[3] = cs_idx+10; // Unique user number
     782
     783        mbuf[4] = (uchar)(pufilt->caid>>8);
     784        mbuf[5] = (uchar)(pufilt->caid);
     785        mbuf[6] = 0x00;
     786        mbuf[7] = 0x00;
    786787
    787788        if (au != -1)
     
    791792              // only 4 Bytes Hexserial for newcamd clients (Hex Base + Hex Serial)
    792793              // first 2 Byte always 00
    793               client[cs_idx].mbuf[8]=0x00; //serial only 4 bytes
    794               client[cs_idx].mbuf[9]=0x00; //serial only 4 bytes
     794              mbuf[8]=0x00; //serial only 4 bytes
     795              mbuf[9]=0x00; //serial only 4 bytes
    795796              // 1 Byte Hex Base (see reader-irdeto.c how this is stored in "reader[au].hexserial")
    796               client[cs_idx].mbuf[10]=reader[au].hexserial[3];
     797              mbuf[10]=reader[au].hexserial[3];
    797798              // 3 Bytes Hex Serial (see reader-irdeto.c how this is stored in "reader[au].hexserial")
    798               client[cs_idx].mbuf[11]=reader[au].hexserial[0];
    799               client[cs_idx].mbuf[12]=reader[au].hexserial[1];
    800               client[cs_idx].mbuf[13]=reader[au].hexserial[2];
     799              mbuf[11]=reader[au].hexserial[0];
     800              mbuf[12]=reader[au].hexserial[1];
     801              mbuf[13]=reader[au].hexserial[2];
    801802            }
    802803            else if (((pufilt->caid >> 8) == 0x05) || ((pufilt->caid >> 8) == 0x0D))
    803804            {
    804               client[cs_idx].mbuf[8] = 0x00;
    805               client[cs_idx].mbuf[9] = reader[au].hexserial[0];
    806               client[cs_idx].mbuf[10] = reader[au].hexserial[1];
    807               client[cs_idx].mbuf[11] = reader[au].hexserial[2];
    808               client[cs_idx].mbuf[12] = reader[au].hexserial[3];
    809               client[cs_idx].mbuf[13] = reader[au].hexserial[4];
     805              mbuf[8] = 0x00;
     806              mbuf[9] = reader[au].hexserial[0];
     807              mbuf[10] = reader[au].hexserial[1];
     808              mbuf[11] = reader[au].hexserial[2];
     809              mbuf[12] = reader[au].hexserial[3];
     810              mbuf[13] = reader[au].hexserial[4];
    810811            }
    811812            else
    812813            {
    813               client[cs_idx].mbuf[8] = reader[au].hexserial[0];
    814               client[cs_idx].mbuf[9] = reader[au].hexserial[1];
    815               client[cs_idx].mbuf[10] = reader[au].hexserial[2];
    816               client[cs_idx].mbuf[11] = reader[au].hexserial[3];
    817               client[cs_idx].mbuf[12] = reader[au].hexserial[4];
    818               client[cs_idx].mbuf[13] = reader[au].hexserial[5];
     814              mbuf[8] = reader[au].hexserial[0];
     815              mbuf[9] = reader[au].hexserial[1];
     816              mbuf[10] = reader[au].hexserial[2];
     817              mbuf[11] = reader[au].hexserial[3];
     818              mbuf[12] = reader[au].hexserial[4];
     819              mbuf[13] = reader[au].hexserial[5];
    819820            }
    820821        }
     
    822823        {
    823824          client[cs_idx].au = -1;
    824           client[cs_idx].mbuf[8] = 0x00;
    825           client[cs_idx].mbuf[9] = 0x00;
    826           client[cs_idx].mbuf[10] = 0x00;
    827           client[cs_idx].mbuf[11] = 0x00;
    828           client[cs_idx].mbuf[12] = 0x00;
    829           client[cs_idx].mbuf[13] = 0x00;
     825          mbuf[8] = 0x00;
     826          mbuf[9] = 0x00;
     827          mbuf[10] = 0x00;
     828          mbuf[11] = 0x00;
     829          mbuf[12] = 0x00;
     830          mbuf[13] = 0x00;
    830831        }
    831         client[cs_idx].mbuf[14] = pufilt->nprids;
     832        mbuf[14] = pufilt->nprids;
    832833        for( j=0; j<pufilt->nprids; j++)
    833834        {
    834835          if (((pufilt->caid >> 8) == 0x17) || ((pufilt->caid >> 8) == 0x06))    // Betacrypt or Irdeto
    835836          {
    836             client[cs_idx].mbuf[15+11*j] = 0;
    837             client[cs_idx].mbuf[16+11*j] = 0;
    838             client[cs_idx].mbuf[17+11*j] = j;
     837            mbuf[15+11*j] = 0;
     838            mbuf[16+11*j] = 0;
     839            mbuf[17+11*j] = j;
    839840          }
    840841          else
    841842          {
    842             client[cs_idx].mbuf[15+11*j] = (uchar)(pufilt->prids[j]>>16);
    843             client[cs_idx].mbuf[16+11*j] = (uchar)(pufilt->prids[j]>>8);
    844             client[cs_idx].mbuf[17+11*j] = (uchar)(pufilt->prids[j]);
     843            mbuf[15+11*j] = (uchar)(pufilt->prids[j]>>16);
     844            mbuf[16+11*j] = (uchar)(pufilt->prids[j]>>8);
     845            mbuf[17+11*j] = (uchar)(pufilt->prids[j]);
    845846          }
    846           client[cs_idx].mbuf[18+11*j] = 0x00;
    847           client[cs_idx].mbuf[19+11*j] = 0x00;
    848           client[cs_idx].mbuf[20+11*j] = 0x00;
    849           client[cs_idx].mbuf[21+11*j] = 0x00;
     847          mbuf[18+11*j] = 0x00;
     848          mbuf[19+11*j] = 0x00;
     849          mbuf[20+11*j] = 0x00;
     850          mbuf[21+11*j] = 0x00;
    850851          if( au!=-1 )
    851852          {
     
    863864                  if (((pufilt->caid >> 8) == 0x17) || ((pufilt->caid >> 8) == 0x06))    // Betacrypt or Irdeto
    864865                  {
    865                     client[cs_idx].mbuf[22+11*j] = reader[au].prid[k][0];
    866                     client[cs_idx].mbuf[23+11*j] = reader[au].prid[k][1];
    867                     client[cs_idx].mbuf[24+11*j] = reader[au].prid[k][2];
    868                     client[cs_idx].mbuf[25+11*j] = reader[au].prid[k][3];
     866                    mbuf[22+11*j] = reader[au].prid[k][0];
     867                    mbuf[23+11*j] = reader[au].prid[k][1];
     868                    mbuf[24+11*j] = reader[au].prid[k][2];
     869                    mbuf[25+11*j] = reader[au].prid[k][3];
    869870                  }
    870871                  else
    871872                  {
    872                     client[cs_idx].mbuf[22+11*j] = reader[au].sa[k][0];
    873                     client[cs_idx].mbuf[23+11*j] = reader[au].sa[k][1];
    874                     client[cs_idx].mbuf[24+11*j] = reader[au].sa[k][2];
    875                     client[cs_idx].mbuf[25+11*j] = reader[au].sa[k][3];
     873                    mbuf[22+11*j] = reader[au].sa[k][0];
     874                    mbuf[23+11*j] = reader[au].sa[k][1];
     875                    mbuf[24+11*j] = reader[au].sa[k][2];
     876                    mbuf[25+11*j] = reader[au].sa[k][3];
    876877                  }
    877878                  found=1;
     
    882883            if( !found )
    883884            {
    884               client[cs_idx].mbuf[22+11*j] = 0x00;
    885               client[cs_idx].mbuf[23+11*j] = 0x00;
    886               client[cs_idx].mbuf[24+11*j] = 0x00;
    887               client[cs_idx].mbuf[25+11*j] = 0x00;
     885              mbuf[22+11*j] = 0x00;
     886              mbuf[23+11*j] = 0x00;
     887              mbuf[24+11*j] = 0x00;
     888              mbuf[25+11*j] = 0x00;
    888889            }
    889890          }
     
    892893            if (((pufilt->caid >> 8) == 0x17) || ((pufilt->caid >> 8) == 0x06))    // Betacrypt or Irdeto
    893894            {
    894               client[cs_idx].mbuf[22+11*j] = 0x00;
    895               client[cs_idx].mbuf[23+11*j] = (uchar)(pufilt->prids[j]>>16);
    896               client[cs_idx].mbuf[24+11*j] = (uchar)(pufilt->prids[j]>>8);
    897               client[cs_idx].mbuf[25+11*j] = (uchar)(pufilt->prids[j]);
     895              mbuf[22+11*j] = 0x00;
     896              mbuf[23+11*j] = (uchar)(pufilt->prids[j]>>16);
     897              mbuf[24+11*j] = (uchar)(pufilt->prids[j]>>8);
     898              mbuf[25+11*j] = (uchar)(pufilt->prids[j]);
    898899            }
    899900            else
    900901            {
    901               client[cs_idx].mbuf[22+11*j] = 0x00;
    902               client[cs_idx].mbuf[23+11*j] = 0x00;
    903               client[cs_idx].mbuf[24+11*j] = 0x00;
    904               client[cs_idx].mbuf[25+11*j] = 0x00;
     902              mbuf[22+11*j] = 0x00;
     903              mbuf[23+11*j] = 0x00;
     904              mbuf[24+11*j] = 0x00;
     905              mbuf[25+11*j] = 0x00;
    905906            }
    906907          }
     
    922923
    923924        if( network_message_send(client[cs_idx].udp_fd, &client[cs_idx].ncd_msgid,
    924             client[cs_idx].mbuf, len, key, COMMTYPE_SERVER, 0, &cd) <0 )
     925            mbuf, len, key, COMMTYPE_SERVER, 0, &cd) <0 )
    925926        {
    926927          if(client[cs_idx].req)
     
    949950  int len;
    950951  ushort cl_msgid;
     952  uchar mbuf[1024];
    951953 
    952954  if (!client[cs_idx].udp_fd) {
     
    955957  }
    956958  memcpy(&cl_msgid, client[cs_idx].req+(er->cpti*REQ_SIZE), 2); // get client ncd_msgid + 0x8x
    957   client[cs_idx].mbuf[0] = er->ecm[0];
     959  mbuf[0] = er->ecm[0];
    958960  if( client[cs_idx].ftab.filts[0].nprids==0 || er->rc>3 /*not found*/)
    959961  {
    960962    len=3;
    961     client[cs_idx].mbuf[1] = client[cs_idx].mbuf[2] = 0x00;
     963    mbuf[1] = mbuf[2] = 0x00;
    962964  }
    963965  else
    964966  {
    965967    len = 19;
    966     client[cs_idx].mbuf[1] = client[cs_idx].mbuf[2] = 0x10;
    967     memcpy(client[cs_idx].mbuf+3, er->cw, 16);
    968   }
    969 
    970   cs_debug("ncd_send_dcw: er->cpti=%d, cl_msgid=%d, %02X", er->cpti, cl_msgid, client[cs_idx].mbuf[0]);
    971 
    972   network_message_send(client[cs_idx].udp_fd, &cl_msgid, client[cs_idx].mbuf, len,
     968    mbuf[1] = mbuf[2] = 0x10;
     969    memcpy(mbuf+3, er->cw, 16);
     970  }
     971
     972  cs_debug("ncd_send_dcw: er->cpti=%d, cl_msgid=%d, %02X", er->cpti, cl_msgid, mbuf[0]);
     973
     974  network_message_send(client[cs_idx].udp_fd, &cl_msgid, mbuf, len,
    973975                       client[cs_idx].ncd_skey, COMMTYPE_SERVER, 0, NULL);
    974976}
     
    10511053    int cidx=(int)idx;
    10521054       client[cidx].thread=pthread_self();
     1055    uchar mbuf[1024];
    10531056
    10541057    client[cs_idx].req=(uchar *)malloc(CS_MAXPENDING*REQ_SIZE);
     
    11311134    {
    11321135        // process_input returns -9 on clienttimeout
    1133         while ((rc=process_input(client[cs_idx].mbuf, sizeof(client[cs_idx].mbuf), cfg->cmaxidle))>0)
     1136        while ((rc=process_input(mbuf, sizeof(mbuf), cfg->cmaxidle))>0)
    11341137        {
    1135             switch(client[cs_idx].mbuf[2])
     1138            switch(mbuf[2])
    11361139            {
    11371140                case 0x80:
    11381141                case 0x81:
    1139                     newcamd_process_ecm(client[cs_idx].mbuf);
     1142                    newcamd_process_ecm(mbuf);
    11401143                    break;
    11411144
     
    11451148
    11461149                default:
    1147                     if(client[cs_idx].mbuf[2]>0x81 && client[cs_idx].mbuf[2]<0x90)
    1148                         newcamd_process_emm(client[cs_idx].mbuf+2);
     1150                    if(mbuf[2]>0x81 && mbuf[2]<0x90)
     1151                        newcamd_process_emm(mbuf+2);
    11491152                    else
    1150                         cs_debug("unknown newcamd command! (%d)", client[cs_idx].mbuf[2]);
     1153                        cs_debug("unknown newcamd command! (%d)", mbuf[2]);
    11511154            }
    11521155        }
Note: See TracChangeset for help on using the changeset viewer.