Changeset 3866
- Timestamp:
- 11/09/10 22:32:30 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-cccam.c
r3864 r3866 409 409 410 410 n = send(cl->udp_fd, netbuf, len, 0); 411 if ( cl->typ != 'c')411 if (rdr) 412 412 rdr->last_s = time(NULL); 413 413 414 414 if (n != len) { 415 if ( cl->typ == 'c')415 if (!rdr) 416 416 cs_disconnect_client(cl); 417 417 else … … 1300 1300 return 0; 1301 1301 } 1302 1303 void fix_dcw(uchar *dcw) 1304 { 1305 int i; 1306 for (i=0; i<16; i+=4) 1307 { 1308 dcw[i+3] = (dcw[i] + dcw[i+1] + dcw[i+2]) & 0xFF; 1309 } 1310 }*/ 1302 */ 1311 1303 1312 1304 int check_extended_mode(struct s_client *cl, char *msg) { … … 1819 1811 cc_cw_crypt(cl, buf + 4, card->id); 1820 1812 memcpy(cc->dcw, buf + 4, 16); 1813 fix_cw(cc->dcw); 1821 1814 if (!cc->extended_mode) 1822 1815 cc_crypt(&cc->block[DECRYPT], buf + 4, l - 4, ENCRYPT); // additional crypto step 1823 1816 1824 1817 if (is_null_dcw(cc->dcw)) { 1825 1818 cs_log("%s null dcw received! sid=%04X(%d)", getprefix(), 1826 1819 srvid.sid, srvid.ecmlen); … … 2017 2010 //} 2018 2011 2012 void fix_dcw(uchar *dcw) 2013 { 2014 int i; 2015 for (i=0; i<16; i+=4) 2016 { 2017 dcw[i+3] = (dcw[i] + dcw[i+1] + dcw[i+2]) & 0xFF; 2018 } 2019 } 2020 2021 2022 2019 2023 /** 2020 2024 * Server: send DCW to client … … 2033 2037 cc->g_flag = eei->send_idx; 2034 2038 memcpy(buf, er->cw, sizeof(buf)); 2039 fix_cw(buf); 2035 2040 cs_debug_mask(D_TRACE, "%s send cw: %s cpti: %d", getprefix(), 2036 2041 cs_hexdump(0, buf, 16), er->cpti);
Note:
See TracChangeset
for help on using the changeset viewer.