Exemplo n.º 1
0
/**
 * called by signal SIGHUP
 *
 * reloads configs:
 *  - useraccounts (oscam.user)
 *  - readers      (oscam.server)
 *  - services ids (oscam.srvid)
 *  - tier ids     (oscam.tiers)
 *  Also clears anticascading stats.
 **/
static void cs_reload_config(void)
{
	static pthread_mutex_t mutex;
	static int8_t mutex_init = 0;
	
	if(!mutex_init)
	{
		SAFE_MUTEX_INIT(&mutex, NULL);
		mutex_init = 1;
	}
	
	if(pthread_mutex_trylock(&mutex))
	{
		return;	
	}
	
	cs_accounts_chk();
	reload_readerdb();
	init_provid();
	init_srvid();
	init_tierid();
	init_fakecws();
	ac_init_stat();
	cs_reopen_log(); // FIXME: aclog.log, emm logs, cw logs (?)
	
	SAFE_MUTEX_UNLOCK(&mutex);
}
Exemplo n.º 2
0
/**
 * called by signal SIGHUP
 *
 * reloads configs:
 *  - useraccounts (oscam.user)
 *  - services ids (oscam.srvid)
 *  - tier ids     (oscam.tiers)
 *  Also clears anticascading stats.
 **/
static void cs_reload_config(void)
{
		cs_accounts_chk();
		init_srvid();
		init_tierid();
		ac_init_stat();
		cs_reopen_log(); // FIXME: aclog.log, emm logs, cw logs (?)
}
Exemplo n.º 3
0
static int32_t monitor_process_request(char *req)
{
	int32_t i, rc;
	static const char *cmd[] = {"login",
								"exit",
								"log",
								"status",
								"shutdown",
								"reload",
								"details",
								"version",
								"debug",
								"getuser",
								"setuser",
								"setserver",
								"commands",
								"keepalive",
								"reread"
#ifdef WEBIF
								,"restart"
#endif
								};

	int32_t cmdcnt = sizeof(cmd)/sizeof(char *);  // Calculate the amount of items in array
	char *arg;
	struct s_client *cur_cl = cur_client();

	if( (arg = strchr(req, ' ')) ) { *arg++ = 0; trim(arg); }
	//trim(req);
	if ((!cur_cl->auth) && (strcmp(req, cmd[0])))	monitor_login(NULL);

	for (rc=1, i = 0; i < cmdcnt; i++)
		if (!strcmp(req, cmd[i])) {
			switch(i) {
			case  0:	monitor_login(arg); break;	// login
			case  1:	cs_exit(0); break;	// exit
			case  2:	monitor_logsend(arg); break;	// log
			case  3:	monitor_process_info(); break;	// status
			case  4:	if (cur_cl->monlvl > 3) cs_exit_oscam(); break;	// shutdown
			case  5:	if (cur_cl->monlvl > 2) cs_accounts_chk(); break;	// reload
			case  6:	monitor_process_details(arg); break;	// details
			case  7:	monitor_send_details_version(); break;	// version
			case  8:	if (cur_cl->monlvl > 3) monitor_set_debuglevel(arg); break;	// debuglevel
			case  9:	if (cur_cl->monlvl > 3) monitor_get_account(); break;	// getuser
			case 10:	if (cur_cl->monlvl > 3) monitor_set_account(arg); break;	// setuser
			case 11:	if (cur_cl->monlvl > 3) monitor_set_server(arg); break;	// setserver
			case 12:	if (cur_cl->monlvl > 3) monitor_list_commands(cmd, cmdcnt); break;	// list commands
			case 13:	if (cur_cl->monlvl > 3) monitor_send_keepalive_ack(); break;	// keepalive
			case 14:	{ char buf[64];snprintf(buf, sizeof(buf), "[S-0000]reread\n");monitor_send_info(buf, 1); cs_card_info(); break; } // reread
#ifdef WEBIF
			case 15:	if (cur_cl->monlvl > 3) monitor_restart_server(); break;	// keepalive
#endif
			default:	continue;
			}
			break;
		}
	return rc;
}