Esempio n. 1
0
static void cleanup_routing_table(struct connman_session *session)
{
    DBG("");

    if (session->policy_routing) {
        __connman_inet_del_fwmark_rule(session->mark,
                                       AF_INET6, session->mark);

        __connman_inet_del_fwmark_rule(session->mark,
                                       AF_INET, session->mark);
        session->policy_routing = false;
    }

    del_default_route(session);
}
Esempio n. 2
0
static int init_routing_table(struct connman_session *session)
{
	int err;

	if (session->policy_config->id_type == CONNMAN_SESSION_ID_TYPE_UNKNOWN &&
			!session->info->config.source_ip_rule)
		return 0;

	if (!session->service)
		return 0;

	DBG("");

	err = __connman_inet_add_fwmark_rule(session->mark,
						AF_INET, session->mark);
	if (err < 0)
		return err;

	err = __connman_inet_add_fwmark_rule(session->mark,
						AF_INET6, session->mark);
	if (err < 0)
		__connman_inet_del_fwmark_rule(session->mark,
						AF_INET, session->mark);
	session->policy_routing = true;

	return err;
}