case MSG_CMD_0D:
1960 case MSG_CMD_0E: {
1961 //Unkwn commands, maybe attacking commands. Block this user
1962 if (cl->typ == 'c') //client connection
1963 {
1964 cs_log("%s CCCAM-BACKDOOR COMMANDS DETECTED! BLOCKING USER %s", getprefix(), cl->usr);
1965 struct s_auth *account;
1966 for (account = cfg->account; (account) ; account = account->next) {
1967 if (!strcmp(cl->usr, account->usr))
1968 account->disabled = TRUE;
1969 }
1970 cs_disconnect_client(cl);
1971 }
1972 else //reader connection
1973 {
1974 cs_log("%s CCCAM-BACKDOOR COMMANDS DETECTED! BLOCKING READER %s", getprefix(), cl->reader->label);
1975 cl->reader->enable = FALSE;
1976 cc_cli_close(cl, FALSE);
1977 }
1978 break;
1979 }
1980
1957 1981 case MSG_EMM_ACK: {
1958 1982 cc->just_logged_in = 0;
… …
3211 3235 int cc_cli_init(struct s_client *cl) {
3212 3236 struct cc_data *cc = cl->cc;
3213 if (cc && cc->mode == CCCAM_MODE_SHUTDOWN)
3237 struct s_reader *reader = cl->reader;
3238
3239 if ((cc && cc->mode == CCCAM_MODE_SHUTDOWN) || !cl->reader->enable || cl->reader->deleted)
3214 3240 return -1;
3215 int res = cc_cli_init_int(cl);
3216 struct s_reader *reader = cl->reader;
3241
3242 int res = cc_cli_init_int(cl); //Create socket
3243
3217 3244 if (res == 0 && reader && (reader->cc_keepalive || !cl->cc) && !reader->tcp_connected) {
3218 cc_cli_connect(cl);
3219 if (cc && cc->mode == CCCAM_MODE_SHUTDOWN)
3220 return -1;
3221
3245
3246 cc_cli_connect(cl); //connect to remote server
3247
3222 3248 while (!reader->tcp_connected && reader->cc_keepalive && cfg->reader_restart_seconds > 0) {
3223 3249
3250 if ((cc && cc->mode == CCCAM_MODE_SHUTDOWN) || !cl->reader->enable || cl->reader->deleted)
3251 return -1;
3252
3224 3253 if (!reader->tcp_connected) {
3225 3254 cc_cli_close(cl, FALSE);
… …
3232 3261 cs_log("%s restarting reader...", reader->label);
3233 3262 cc_cli_connect(cl);
3234 if (cc && cc->mode == CCCAM_MODE_SHUTDOWN)
3235 return -1;
3236 3263 }
3237 3264 }