static int policy_local_create(struct connman_session *session, connman_session_config_func_t cb, void *user_data) { struct cb_data *cbd = cb_data_new(cb, user_data); struct policy_config *policy; const char *owner; int err; DBG("session %p", session); policy = g_new0(struct policy_config, 1); policy->config = connman_session_create_default_config(); policy->session = session; cbd->data = policy; owner = connman_session_get_owner(session); err = connman_dbus_get_connection_unix_user(connection, owner, get_uid_reply, cbd); if (err < 0) { connman_error("Could not get UID"); cleanup_config(policy); g_free(cbd); return err; } return 0; }
static struct connman_session_config *policy_create( struct connman_session *session) { struct connman_session_config *config; DBG("session %p", session); config = connman_session_create_default_config(); if (config == NULL) return NULL; g_hash_table_replace(config_hash, session, config); return config; }
static int create_policy_config(struct connman_session *session, connman_session_config_func_t cb, struct creation_data *creation_data) { struct connman_session_config *config; if (!policy) { config = connman_session_create_default_config(); if (!config) { free_session(session); cleanup_creation_data(creation_data); return -ENOMEM; } return cb(session, config, creation_data, 0); } return policy->create(session, cb, creation_data); }
static int create_policy_config(struct connman_session *session, connman_session_config_func_t cb, struct user_config *user_config) { struct connman_session_config *config; if (session->policy == NULL) { config = connman_session_create_default_config(); if (config == NULL) { free_session(session); cleanup_user_config(user_config); return -ENOMEM; } return cb(session, config, user_config, 0); } return (*session->policy->create)(session, cb, user_config); }
static int policy_create(struct connman_session *session, connman_session_config_cb callback, void *user_data) { struct connman_session_config *config; DBG("session %p", session); if (callback == NULL) return -EINVAL; config = connman_session_create_default_config(); if (config == NULL) return -ENOMEM; g_hash_table_replace(config_hash, session, config); (*callback)(session, config, user_data, 0); return 0; }