Classes | |
| struct | policy_scan_data |
| struct | policy_any_data |
| struct | policy_any_network |
Functions | |
| void | icd_policy_init (struct icd_policy_api *policy_api, icd_policy_nw_add_fn add_network, icd_policy_request_merge_fn merge_requests, icd_policy_request_make_new_fn make_request, icd_policy_scan_start_fn scan_start, icd_policy_scan_stop_fn scan_stop, icd_policy_nw_close_fn not_used_1, icd_policy_network_priority_fn not_used_2, icd_policy_service_module_check_fn srv_check) |
| static gboolean | policy_any_string_equal (const gchar *a, const gchar *b) |
| static struct policy_scan_data * | policy_any_scan_data_new (struct policy_any_data *any_data, struct icd_policy_request *new_request, icd_policy_request_new_cb_fn policy_done_cb, gpointer policy_token) |
| static gint | policy_any_sort_network (gconstpointer a, gconstpointer b) |
| static void | policy_any_scan_cb (const guint status, const gchar *service_name, const gchar *service_type, const guint service_attrs, const gchar *service_id, gint service_priority, const gchar *network_name, const gchar *network_type, const guint network_attrs, const gchar *network_id, const gint network_priority, const enum icd_nw_levels signal, gpointer user_data) |
| static GSList * | policy_any_get_types (struct policy_any_data *data) |
| static gint | policy_any_get_prio (const GSList *existing_requests) |
| static void | policy_any_new_request (struct icd_policy_request *new_request, const GSList *existing_requests, icd_policy_request_new_cb_fn policy_done_cb, gpointer policy_token, gpointer *private) |
| static void | policy_any_cancel_request (struct icd_policy_request *request, gpointer *private) |
| static void | policy_any_destruct (gpointer *private) |
| void icd_policy_init | ( | struct icd_policy_api * | policy_api, | |
| icd_policy_nw_add_fn | add_network, | |||
| icd_policy_request_merge_fn | merge_requests, | |||
| icd_policy_request_make_new_fn | make_request, | |||
| icd_policy_scan_start_fn | scan_start, | |||
| icd_policy_scan_stop_fn | scan_stop, | |||
| icd_policy_nw_close_fn | not_used_1, | |||
| icd_policy_network_priority_fn | not_used_2, | |||
| icd_policy_service_module_check_fn | srv_check | |||
| ) |
Policy module initialization function.
| policy_api | policy API structure to be filled in by the module | |
| add_network | function to add a network in response to a policy | |
| merge_requests | function to merge requests | |
| make_request | function for creating a new request | |
| scan_start | function for scanning networks | |
| scan_stop | function for stopping network scanning |
| static void policy_any_cancel_request | ( | struct icd_policy_request * | request, | |
| gpointer * | private | |||
| ) | [static] |
Clean up internal policy module data structures for a request that has previously reported ICD_POLICY_WAITING.
| request | the request that is to be removed or NULL for all | |
| private | private data for the module |
References policy_any_data::found_networks, ILOG_DEBUG, ILOG_ERR, policy_any_network::network_id, policy_any_network::network_type, policy_any_data::ongoing_scans, policy_any_scan_cb(), policy_any_data::request, policy_any_data::scan_stop, policy_any_network::service_id, and policy_any_network::service_type.
Referenced by policy_any_destruct().
| static void policy_any_destruct | ( | gpointer * | private | ) | [static] |
Policy module destruction function. Will be called before unloading the module.
| private | a reference to the private data |
References policy_any_cancel_request().
| static gint policy_any_get_prio | ( | const GSList * | existing_requests | ) | [static] |
Get the highest priority in the existing requests if change while connected is on
| existing_requests | existing requests |
References icd_policy_request::network_priority.
Referenced by policy_any_new_request().
| static GSList* policy_any_get_types | ( | struct policy_any_data * | data | ) | [static] |
Get a list of network types to scan
References ILOG_DEBUG, ILOG_ERR, ILOG_WARN, policy_any_network::network_type, and policy_any_data::srv_check.
Referenced by policy_any_new_request().
| static void policy_any_new_request | ( | struct icd_policy_request * | new_request, | |
| const GSList * | existing_requests, | |||
| icd_policy_request_new_cb_fn | policy_done_cb, | |||
| gpointer | policy_token, | |||
| gpointer * | private | |||
| ) | [static] |
New connection request policy function.
| new_request | the new connection request | |
| existing_requests | currently existing requests | |
| policy_done_cb | callback to call when policy has been decided | |
| policy_token | token to pass to the callback | |
| private | the private memeber of the icd_request_api structure |
References icd_policy_request::attrs, ICD_NW_SEARCH_SCOPE_SAVED, ICD_POLICY_ACCEPTED, ICD_POLICY_ATTRIBUTE_HAS_CONNECTIONS, ICD_POLICY_REJECTED, ILOG_DEBUG, ILOG_ERR, ILOG_INFO, policy_any_data::min_prio, icd_policy_request::network_id, policy_any_data::ongoing_scans, policy_any_get_prio(), policy_any_get_types(), policy_any_scan_cb(), policy_any_scan_data_new(), policy_any_data::request, icd_policy_request::request_token, policy_any_data::scan_start, and policy_any_data::scan_types_list.
| static void policy_any_scan_cb | ( | const guint | status, | |
| const gchar * | service_name, | |||
| const gchar * | service_type, | |||
| const guint | service_attrs, | |||
| const gchar * | service_id, | |||
| gint | service_priority, | |||
| const gchar * | network_name, | |||
| const gchar * | network_type, | |||
| const guint | network_attrs, | |||
| const gchar * | network_id, | |||
| const gint | network_priority, | |||
| const enum icd_nw_levels | signal, | |||
| gpointer | user_data | |||
| ) | [static] |
Callback function for network scan.
| status | network scan status with ICD_POLICY_SCAN_* values | |
| service_name | service provider name, see srv_provider_api.h | |
| service_type | service provider type, see srv_provider_api.h | |
| service_attrs | service provider attributes, see srv_provider_api.h | |
| service_id | service_provider id, see srv_provider_api.h | |
| service_priority | service priority within a service_type | |
| network_name | network name, see network_api.h | |
| network_type | network type, see network_api.h | |
| network_attrs | network attributes, see network_api.h | |
| network_id | network id, see network_api.h | |
| network_priority | network priority between different network_type | |
| signal | signal leve, see network_api.h | |
| user_data | user data passed to icd_policy_scan_start_fn |
References policy_any_data::add_network, policy_scan_data::any_data, icd_policy_request::attrs, policy_any_data::found_networks, policy_any_data::iaps_added, ICD_NW_ATTR_AUTOCONNECT, ICD_NW_ATTR_LOCALMASK, ICD_POLICY_ACCEPTED, ICD_POLICY_ATTRIBUTE_CONNECTIONS_FAILED, ICD_POLICY_ATTRIBUTE_HAS_CONNECTIONS, ICD_POLICY_SCAN_DONE, ICD_POLICY_SCAN_EXPIRED_NETWORK, ICD_POLICY_SCAN_NEW_NETWORK, ICD_POLICY_SCAN_UPDATE_NETWORK, ILOG_DEBUG, ILOG_ERR, ILOG_INFO, ILOG_WARN, policy_any_data::min_prio, policy_any_network::network_attrs, policy_any_network::network_id, policy_any_network::network_priority, policy_any_network::network_type, policy_any_data::ongoing_scans, policy_any_sort_network(), policy_any_string_equal(), policy_scan_data::policy_done_cb, policy_scan_data::policy_token, policy_any_data::request, policy_any_data::scan_stop, policy_any_data::scan_types_list, policy_any_network::service_attrs, policy_any_network::service_id, policy_any_network::service_type, and policy_any_network::signal.
Referenced by policy_any_cancel_request(), and policy_any_new_request().
| static struct policy_scan_data* policy_any_scan_data_new | ( | struct policy_any_data * | any_data, | |
| struct icd_policy_request * | new_request, | |||
| icd_policy_request_new_cb_fn | policy_done_cb, | |||
| gpointer | policy_token | |||
| ) | [static, read] |
Create a new scan data structure and add it to the list of ongoing scans.
| any_data | module data | |
| new_request | the new connection request | |
| policy_done_cb | callback to call when policy has been decided | |
| policy_token | policy token |
References policy_scan_data::any_data, policy_any_data::ongoing_scans, policy_scan_data::policy_done_cb, and policy_scan_data::policy_token.
Referenced by policy_any_new_request().
| static gint policy_any_sort_network | ( | gconstpointer | a, | |
| gconstpointer | b | |||
| ) | [static] |
Sort new network according to priority and signal strength
| a | network A | |
| b | network B |
References policy_any_network::network_priority, and policy_any_network::signal.
Referenced by policy_any_scan_cb().
| static gboolean policy_any_string_equal | ( | const gchar * | a, | |
| const gchar * | b | |||
| ) | [static] |
Helper function for comparing two strings where a NULL string is equal to another NULL string
| a | string A | |
| b | string B |
Referenced by policy_any_scan_cb().
1.5.6