const char *reader_get_type_desc(struct s_reader *rdr, int32_t extended) { const char *desc = "unknown"; if(rdr->crdr && rdr->crdr->desc) { return rdr->crdr->desc; } if(is_network_reader(rdr) || rdr->typ == R_SERIAL) { if(rdr->ph.desc) { desc = rdr->ph.desc; } } if(rdr->typ == R_NEWCAMD && rdr->ncd_proto == NCD_524) { desc = "newcamd524"; } else if(extended && rdr->typ == R_CCCAM && cccam_client_extended_mode(rdr->client) && !cccam_client_multics_mode(rdr->client)) { desc = "cccam_ext"; } else if(!extended && rdr->typ == R_CCCAM && cccam_client_extended_mode(rdr->client) && !cccam_client_multics_mode(rdr->client)) { desc = "cccam_ext"; } else if(rdr->typ == R_CCCAM && cccam_client_multics_mode(rdr->client)) { desc = "cccam_mcs"; } return desc; }
const char *client_get_proto(struct s_client *cl) { char *ctyp; switch (cl->typ) { case 's': ctyp = "server"; break; case 'h': ctyp = "http"; break; case 'p': case 'r': ctyp = reader_get_type_desc(cl->reader, 1); break; #ifdef CS_ANTICASC case 'a': ctyp = "anticascader"; break; #endif case 'c': if (cccam_client_extended_mode(cl)) { ctyp = "cccam ext"; break; } default: ctyp = get_module(cl)->desc; } return ctyp; }