Changeset 2036


Ignore:
Timestamp:
04/09/10 23:11:05 (12 years ago)
Author:
alno
Message:

preparing a "sleepsend" parameter (send a sleeptime over CMD08 - camd35 protocol - to client)

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/globals.h

    r2025 r2036  
    366366  time_t    expirationdate;
    367367  int       c35_suppresscmd08;
     368  int       c35_sleepsend;
    368369  int       ncd_keepalive;
    369370  int       disabled;
     
    594595  time_t    expirationdate;
    595596  int       c35_suppresscmd08;
     597  int       c35_sleepsend;
    596598  int       ncd_keepalive;
    597599  int       disabled;
  • trunk/module-camd35.c

    r2023 r2036  
    209209static void camd35_send_dcw(ECM_REQUEST *er)
    210210{
    211   uchar *buf;
    212   buf=req+(er->cpti*REQ_SIZE);  // get orig request
    213 
    214   if (((er->rcEx > 0) || (er->rc == 8)) && !client[cs_idx].c35_suppresscmd08)
    215   {
    216     buf[0]=0x08;
    217     buf[1]=2;
    218     memset(buf+20, 0, buf[1]);
    219   }
    220   else
    221   {
    222     // Send CW
    223     if ((er->rc < 4) || (er->rc == 7))
    224     {
    225       if (buf[0]==3)
    226         memmove(buf+20+16, buf+20+buf[1], 0x34);
    227       buf[0]++;
    228       buf[1]=16;
    229       memcpy(buf+20, er->cw, buf[1]);
    230     }
    231     else
    232     {
    233       // Send old CMD44 to prevent cascading problems with older mpcs/oscam versions
    234       buf[0]=0x44;
    235       buf[1]=0;
    236     }
    237   }
    238   camd35_send(buf);
    239   camd35_request_emm(er);
     211    uchar *buf;
     212    buf = req + (er->cpti * REQ_SIZE);  // get orig request
     213
     214    if (((er->rcEx > 0) || (er->rc == 8)) && !client[cs_idx].c35_suppresscmd08)
     215    {
     216        buf[0] = 0x08;
     217        buf[1] = 2;
     218        memset(buf + 20, 0, buf[1]);
     219    }
     220    else if (((er->rcEx > 0) || (er->rc == 6)) && client[cs_idx].c35_sleepsend > 0)
     221    {
     222        buf[0] = 0x08;
     223        buf[1] = 2;
     224        buf[20] = 0;
     225        /*
     226         * the second Databyte should be forseen for a sleeptime in minutes
     227         * whoever knows the camd3 protocol related to CMD08 - please help!
     228         * on tests this don't work with native camd3
     229         */
     230        buf[21] = client[cs_idx].c35_sleepsend;
     231    }
     232    else
     233    {
     234        // Send CW
     235        if ((er->rc < 4) || (er->rc == 7))
     236        {
     237            if (buf[0]==3)
     238                memmove(buf + 20 + 16, buf + 20 + buf[1], 0x34);
     239            buf[0]++;
     240            buf[1] = 16;
     241            memcpy(buf+20, er->cw, buf[1]);
     242        }
     243        else
     244        {
     245            // Send old CMD44 to prevent cascading problems with older mpcs/oscam versions
     246            buf[0] = 0x44;
     247            buf[1] = 0;
     248        }
     249    }
     250    camd35_send(buf);
     251    camd35_request_emm(er);
    240252}
    241253
  • trunk/oscam-config.c

    r2025 r2036  
    13831383            return;
    13841384        } else {
    1385             account->tosleep=atoi(value);
     1385            account->tosleep = atoi(value);
     1386            return;
     1387        }
     1388    }
     1389
     1390    if (!strcmp(token, "sleepsend")) {
     1391        if(strlen(value) == 0) {
     1392            account->c35_sleepsend = 0;
     1393            return;
     1394        } else {
     1395            account->c35_sleepsend = atoi(value);
     1396            if (account->c35_sleepsend > 0xFF)
     1397                account->c35_sleepsend = 0xFF;
    13861398            return;
    13871399        }
  • trunk/oscam.c

    r2035 r2036  
    12511251                client[cs_idx].autoau=account->autoau;
    12521252                client[cs_idx].tosleep=(60*account->tosleep);
     1253                client[cs_idx].c35_sleepsend = account->c35_sleepsend;
    12531254                memcpy(&client[cs_idx].ctab, &account->ctab, sizeof(client[cs_idx].ctab));
    12541255                if (account->uniq)
Note: See TracChangeset for help on using the changeset viewer.