int *request = NULL;
ca_descr_t *ca;
ca_pid_t *cpd;
- int process_key, process_next, cai;
+ int process_key, process_next, cai = 0;
int i, j;
int recvsock = 0;
else
recvsock = capmt->capmt_sock_ca0[i];
if (recvsock > 0) {
+ if (capmt->capmt_oscam == 2)
+ {
+ // adapter index is in first byte
+ uint8_t adapter_index;
+ ret = recv(recvsock, &adapter_index, 1, MSG_DONTWAIT);
+ if (ret < 0)
+ {
+ usleep(10 * 1000);
+ continue;
+ }
+ cai = adapter_index;
+ }
request = NULL;
ret = recv(recvsock, buffer, (capmt->capmt_oscam == 2) ? sizeof(int) : bufsize, MSG_DONTWAIT);
if (ret > 0) {
if (capmt->capmt_oscam) {
if (!request)
continue;
- cai = i;
+ if (capmt->capmt_oscam != 2) //in mode 2 we read it directly from socket
+ cai = i;
if (*request == CA_SET_PID) {
cpd = (ca_pid_t *)&buffer[sizeof(int)];
tvhlog(LOG_DEBUG, "capmt", "CA_SET_PID cai %d req %d (%d %04x)", cai, *request, cpd->index, cpd->pid);
fields: ['res','name'],
id: 0,
data: [
- ['2','Recent OSCam (svn rev >= 9063)'],
+ ['2','Recent OSCam (svn rev >= 9095)'],
['1','Older OSCam'],
['0','Wrapper (capmt_ca.so)']
]