bool    cmd_set_log_level(vty_t* vty, variant_stack_t* params)
{
    const char* log_class = variant_get_string(stack_peek_at(params, 2));
    const char* log_level = variant_get_string(stack_peek_at(params, 3));

    int service_id;

    for(int i = 0; i < logger_services_size; i++)
    {
        logger_service_t* s = *(logger_services + i);
        if(strcmp(s->service_name, log_class) == 0)
        {
            service_id = s->service_id;
            break;
        }
    }

    if(strcmp(log_level, "info") == 0)
    {
        logger_set_level(service_id, LOG_LEVEL_BASIC);
    }
    else if(strcmp(log_level, "error") == 0)
    {
        logger_set_level(service_id, LOG_LEVEL_ERROR);
    }
    else if(strcmp(log_level, "advanced") == 0)
    {
        logger_set_level(service_id, LOG_LEVEL_ADVANCED);
    }
    else if(strcmp(log_level, "debug") == 0)
    {
        logger_set_level(service_id, LOG_LEVEL_DEBUG);
    }
}
bool    cmd_set_auth(vty_t* vty, variant_stack_t* params)
{
    free(SS_user);
    free(SS_pass);

    SS_user = strdup(variant_get_string(stack_peek_at(params, 1)));
    SS_pass = strdup(variant_get_string(stack_peek_at(params, 3)));

    if(SS_device_started)
    {
        SS_api_query();
        SS_api_get_sid();
        SS_api_get_info();
    }
}
Beispiel #3
0
gboolean mbb_xml_msg_is_ok(XmlTag *tag, gchar **msg)
{
	Variant *var;

	var = xml_tag_get_attr(tag, "result");
	if (var == NULL)
		return TRUE;

	if (! g_strcmp0("ok", variant_get_string(var)))
		return TRUE;

	if (msg != NULL) {
		var = xml_tag_get_attr(tag, "desc");
		if (var != NULL)
			*msg = variant_get_string(var);
	}

	return FALSE;
}
bool    cmd_set_url(vty_t* vty, variant_stack_t* params)
{
    free(SS_base_url);
    SS_base_url = strdup(variant_get_string(stack_peek_at(params, 1)));

    if(SS_device_started)
    {
        SS_api_query();
        SS_api_get_sid();
        SS_api_get_info();
    }
}
Beispiel #5
0
static void lua_push_variant(lua_State *ls, Variant *var)
{
	if (var == NULL)
		lua_pushnil(ls);
	else {
		gchar *str = variant_get_string(var);

		if (str == NULL)
			lua_pushnil(ls);
		else
			lua_pushstring(ls, str);
	}
}
Beispiel #6
0
static void process_request(struct http_thread_env *hte)
{
	gchar *method;
	XmlTag *ans;

	method = hte->method;

	if (method != NULL) {
		if (hte->root_tag == NULL)
			hte->root_tag = xml_tag_newc("request");

		xml_tag_set_attr(hte->root_tag,
			"name", variant_new_static_string(method)
		);

		if (mbb_func_call(method, hte->root_tag, &ans) == FALSE)
			ans = mbb_xml_msg(MBB_MSG_UNKNOWN_METHOD, method);
	} else {
		Variant *var;
		XmlTag *tag;
		XmlTag *xt;

		ans = mbb_xml_msg_ok();
		xt = xml_tag_get_child(hte->root_tag, "request");
		xml_tag_reorder(xt);

		for (; xt != NULL; xt = xt->next) {
			var = xml_tag_get_attr(xt, "name");
			if (var == NULL)
				continue;

			method = variant_get_string(var);
			if (mbb_func_call(method, xt, &tag) == FALSE)
				tag = mbb_xml_msg(MBB_MSG_UNKNOWN_METHOD, method);
			else if (tag == NULL)
				tag = mbb_xml_msg_ok();

			xml_tag_set_attr(tag,
				"origin", variant_new_static_string(method)
			);
			xml_tag_add_child(ans, tag);
		}

		xml_tag_reorder(xml_tag_get_child(ans, "response"));
	}

	push_http_xml_msg(hte, ans);
}
bool    cmd_del_log_level(vty_t* vty, variant_stack_t* params)
{
    const char* log_class = variant_get_string(stack_peek_at(params, 3));

    int service_id;
    for(int i = 0; i < logger_services_size; i++)
    {
        logger_service_t* s = *(logger_services + i);
        if(strcmp(s->service_name, log_class) == 0)
        {
            service_id = s->service_id;
            break;
        }
    }

    logger_disable_service(service_id);
}
bool    cmd_set_sms_carrier(vty_t* vty, variant_stack_t* params)
{
    const char* country_code = variant_get_string(stack_peek_at(params, 1));
    const char* carrier = variant_get_string(stack_peek_at(params, 3));
    sms_data_set_carrier(strdup(country_code), strdup(carrier));
}
bool    cmd_del_phone_number(vty_t* vty, variant_stack_t* params)
{
    const char* phone = variant_get_string(stack_peek_at(params, 2));
    sms_data_del_phone(phone);
}
bool    cmd_add_phone_number(vty_t* vty, variant_stack_t* params)
{
    const char* phone = variant_get_string(stack_peek_at(params, 1));
    sms_data_add_phone(strdup(phone));
}