iptables: Add chain iterator
[platform/upstream/connman.git] / src / connman.h
index 306e9d6..6b81477 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2010  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -70,9 +70,6 @@ int __connman_timezone_change(const char *zone);
 int __connman_agent_init(void);
 void __connman_agent_cleanup(void);
 
-int __connman_agent_register(const char *sender, const char *path);
-int __connman_agent_unregister(const char *sender, const char *path);
-
 void __connman_counter_send_usage(const char *path,
                                        DBusMessage *message);
 int __connman_counter_register(const char *owner, const char *path,
@@ -84,18 +81,19 @@ void __connman_counter_cleanup(void);
 
 struct connman_service;
 
-void __connman_service_add_passphrase(struct connman_service *service,
-                               const gchar *passphrase);
+void __connman_agent_cancel(struct connman_service *service);
+
+int __connman_service_add_passphrase(struct connman_service *service,
+                                       const gchar *passphrase);
 typedef void (* authentication_cb_t) (struct connman_service *service,
                                connman_bool_t values_received,
                                const char *name, int name_len,
                                const char *identifier, const char *secret,
-                               void *user_data);
+                               gboolean wps, const char *wpspin,
+                               const char *error, void *user_data);
 typedef void (* browser_authentication_cb_t) (struct connman_service *service,
                                connman_bool_t authentication_done,
-                               void *user_data);
-typedef void (* report_error_cb_t) (struct connman_service *service,
-                               gboolean retry, void *user_data);
+                               const char *error, void *user_data);
 int __connman_agent_request_passphrase_input(struct connman_service *service,
                                authentication_cb_t callback, void *user_data);
 int __connman_agent_request_login_input(struct connman_service *service,
@@ -103,22 +101,16 @@ int __connman_agent_request_login_input(struct connman_service *service,
 int __connman_agent_request_browser(struct connman_service *service,
                                browser_authentication_cb_t callback,
                                const char *url, void *user_data);
-int __connman_agent_report_error(struct connman_service *service,
-                               const char *error,
-                               report_error_cb_t callback, void *user_data);
-
 
 #include <connman/log.h>
 
 int __connman_log_init(const char *program, const char *debug,
-                                               connman_bool_t detach);
-void __connman_log_cleanup(void);
+               connman_bool_t detach, connman_bool_t backtrace,
+               const char *program_name, const char *program_version);
+void __connman_log_cleanup(connman_bool_t backtrace);
 void __connman_log_enable(struct connman_debug_desc *start,
                                        struct connman_debug_desc *stop);
 
-void __connman_debug_list_available(DBusMessageIter *iter, void *user_data);
-void __connman_debug_list_enabled(DBusMessageIter *iter, void *user_data);
-
 #include <connman/option.h>
 
 #include <connman/setting.h>
@@ -135,6 +127,7 @@ void __connman_task_cleanup(void);
 
 #include <connman/inet.h>
 
+char **__connman_inet_get_running_interfaces(void);
 int __connman_inet_modify_address(int cmd, int flags, int index, int family,
                                const char *address,
                                const char *peer,
@@ -149,8 +142,15 @@ typedef void (*__connman_inet_rs_cb_t) (struct nd_router_advert *reply,
 
 int __connman_inet_ipv6_send_rs(int index, int timeout,
                        __connman_inet_rs_cb_t callback, void *user_data);
+
+int __connman_refresh_rs_ipv6(struct connman_network *network, int index);
+
 GSList *__connman_inet_ipv6_get_prefixes(struct nd_router_advert *hdr,
                                        unsigned int length);
+typedef void (*connman_inet_addr_cb_t) (const char *src_address, int index,
+                                       void *user_data);
+int __connman_inet_get_route(const char *dst_address,
+                       connman_inet_addr_cb_t callback, void *user_data);
 
 struct __connman_inet_rtnl_handle {
        int                     fd;
@@ -196,28 +196,34 @@ int __connman_inet_rtnl_addattr32(struct nlmsghdr *n, size_t maxlen,
 
 int __connman_resolver_init(connman_bool_t dnsproxy);
 void __connman_resolver_cleanup(void);
-int __connman_resolvfile_append(const char *interface, const char *domain, const char *server);
-int __connman_resolvfile_remove(const char *interface, const char *domain, const char *server);
+int __connman_resolvfile_append(int index, const char *domain, const char *server);
+int __connman_resolvfile_remove(int index, const char *domain, const char *server);
+int __connman_resolver_redo_servers(int index);
 
-void __connman_storage_migrate(void);
-GKeyFile *__connman_storage_open_global();
-GKeyFile *__connman_storage_load_global();
-void __connman_storage_save_global(GKeyFile *keyfile);
-void __connman_storage_delete_global();
+GKeyFile *__connman_storage_open_global(void);
+GKeyFile *__connman_storage_load_global(void);
+int __connman_storage_save_global(GKeyFile *keyfile);
+void __connman_storage_delete_global(void);
 
 GKeyFile *__connman_storage_load_config(const char *ident);
-void __connman_storage_save_config(GKeyFile *keyfile, const char *ident);
-void __connman_storage_delete_config(const char *ident);
+GKeyFile *__connman_storage_load_provider_config(const char *ident);
 
 GKeyFile *__connman_storage_open_service(const char *ident);
-void __connman_storage_save_service(GKeyFile *keyfile, const char *ident);
+int __connman_storage_save_service(GKeyFile *keyfile, const char *ident);
 GKeyFile *__connman_storage_load_provider(const char *identifier);
 void __connman_storage_save_provider(GKeyFile *keyfile, const char *identifier);
+gboolean __connman_storage_remove_provider(const char *identifier);
 char **__connman_storage_get_providers(void);
+gboolean __connman_storage_remove_service(const char *service_id);
 
 int __connman_detect_init(void);
 void __connman_detect_cleanup(void);
 
+#include <connman/inotify.h>
+
+int __connman_inotify_init(void);
+void __connman_inotify_cleanup(void);
+
 #include <connman/proxy.h>
 
 int __connman_proxy_init(void);
@@ -259,6 +265,7 @@ __connman_ipconfig_ref_debug(struct connman_ipconfig *ipconfig,
 void __connman_ipconfig_unref_debug(struct connman_ipconfig *ipconfig,
                        const char *file, int line, const char *caller);
 
+void __connman_ipconfig_clear_address(struct connman_ipconfig *ipconfig);
 void *__connman_ipconfig_get_data(struct connman_ipconfig *ipconfig);
 void __connman_ipconfig_set_data(struct connman_ipconfig *ipconfig, void *data);
 
@@ -297,7 +304,8 @@ enum connman_ipconfig_type __connman_ipconfig_get_config_type(
                                        struct connman_ipconfig *ipconfig);
 unsigned short __connman_ipconfig_get_type_from_index(int index);
 unsigned int __connman_ipconfig_get_flags_from_index(int index);
-const char *__connman_ipconfig_get_gateway_from_index(int index);
+const char *__connman_ipconfig_get_gateway_from_index(int index,
+       enum connman_ipconfig_type type);
 void __connman_ipconfig_set_index(struct connman_ipconfig *ipconfig, int index);
 
 const char *__connman_ipconfig_get_local(struct connman_ipconfig *ipconfig);
@@ -313,6 +321,7 @@ void __connman_ipconfig_set_prefixlen(struct connman_ipconfig *ipconfig, unsigne
 
 int __connman_ipconfig_enable(struct connman_ipconfig *ipconfig);
 int __connman_ipconfig_disable(struct connman_ipconfig *ipconfig);
+connman_bool_t __connman_ipconfig_is_usable(struct connman_ipconfig *ipconfig);
 
 const char *__connman_ipconfig_method2string(enum connman_ipconfig_method method);
 const char *__connman_ipconfig_type2string(enum connman_ipconfig_type type);
@@ -339,7 +348,7 @@ int __connman_ipconfig_address_remove(struct connman_ipconfig *ipconfig);
 int __connman_ipconfig_address_unset(struct connman_ipconfig *ipconfig);
 int __connman_ipconfig_gateway_add(struct connman_ipconfig *ipconfig);
 void __connman_ipconfig_gateway_remove(struct connman_ipconfig *ipconfig);
-unsigned char __connman_ipconfig_netmask_prefix_len(const char *netmask);
+unsigned char __connman_ipaddress_netmask_prefix_len(const char *netmask);
 
 int __connman_ipconfig_set_proxy_autoconfig(struct connman_ipconfig *ipconfig,
                                                        const char *url);
@@ -353,6 +362,8 @@ int __connman_ipconfig_load(struct connman_ipconfig *ipconfig,
 int __connman_ipconfig_save(struct connman_ipconfig *ipconfig,
                GKeyFile *keyfile, const char *identifier, const char *prefix);
 gboolean __connman_ipconfig_ipv6_privacy_enabled(struct connman_ipconfig *ipconfig);
+int __connman_ipconfig_ipv6_set_privacy(struct connman_ipconfig *ipconfig,
+                                       const char *value);
 
 int __connman_ipconfig_set_rp_filter();
 void __connman_ipconfig_unset_rp_filter(int old_value);
@@ -369,6 +380,9 @@ void __connman_timeserver_cleanup(void);
 
 char **__connman_timeserver_system_get();
 
+GSList *__connman_timeserver_add_list(GSList *server_list,
+               const char *timeserver);
+GSList *__connman_timeserver_get_all(struct connman_service *service);
 int __connman_timeserver_sync(struct connman_service *service);
 void __connman_timeserver_sync_next();
 
@@ -402,6 +416,7 @@ int __connman_connection_gateway_add(struct connman_service *service,
                                        const char *peer);
 void __connman_connection_gateway_remove(struct connman_service *service,
                                        enum connman_ipconfig_type type);
+int __connman_connection_get_vpn_index(int phy_index);
 
 gboolean __connman_connection_update_gateway(void);
 void __connman_connection_gateway_activate(struct connman_service *service,
@@ -451,6 +466,8 @@ void __connman_technology_add_interface(enum connman_service_type type,
                                int index, const char *name, const char *ident);
 void __connman_technology_remove_interface(enum connman_service_type type,
                                int index, const char *name, const char *ident);
+void __connman_technology_notify_regdom_by_device(struct connman_device *device,
+                                               int result, const char *alpha2);
 
 #include <connman/device.h>
 
@@ -464,14 +481,11 @@ struct connman_device *__connman_device_find_device(enum connman_service_type ty
 int __connman_device_request_scan(enum connman_service_type type);
 int __connman_device_request_hidden_scan(struct connman_device *device,
                                const char *ssid, unsigned int ssid_len,
-                               const char *identity, const char *passphrase);
+                               const char *identity, const char *passphrase,
+                               gpointer user_data);
 
 connman_bool_t __connman_device_isfiltered(const char *devname);
 
-int __connman_device_get_phyindex(struct connman_device *device);
-void __connman_device_set_phyindex(struct connman_device *device,
-                                                       int phyindex);
-
 void __connman_device_set_network(struct connman_device *device,
                                        struct connman_network *network);
 void __connman_device_cleanup_networks(struct connman_device *device);
@@ -480,8 +494,6 @@ int __connman_device_enable(struct connman_device *device);
 int __connman_device_disable(struct connman_device *device);
 int __connman_device_disconnect(struct connman_device *device);
 
-connman_bool_t __connman_device_scanning(struct connman_device *device);
-
 connman_bool_t __connman_device_has_driver(struct connman_device *device);
 
 void __connman_device_set_reconnect(struct connman_device *device,
@@ -510,8 +522,6 @@ int __connman_network_set_ipconfig(struct connman_network *network,
                                struct connman_ipconfig *ipconfig_ipv4,
                                struct connman_ipconfig *ipconfig_ipv6);
 
-connman_bool_t __connman_network_has_driver(struct connman_network *network);
-
 const char *__connman_network_get_type(struct connman_network *network);
 const char *__connman_network_get_group(struct connman_network *network);
 const char *__connman_network_get_ident(struct connman_network *network);
@@ -523,7 +533,7 @@ void __connman_config_cleanup(void);
 int __connman_config_load_service(GKeyFile *keyfile, const char *group, connman_bool_t persistent);
 int __connman_config_provision_service(struct connman_service *service);
 int __connman_config_provision_service_ident(struct connman_service *service,
-                                                       const char *ident);
+               const char *ident, const char *file, const char *entry);
 
 int __connman_tethering_init(void);
 void __connman_tethering_cleanup(void);
@@ -549,8 +559,7 @@ int __connman_provider_indicate_state(struct connman_provider *provider,
 int __connman_provider_indicate_error(struct connman_provider *provider,
                                        enum connman_provider_error error);
 int __connman_provider_connect(struct connman_provider *provider);
-int __connman_provider_disconnect(struct connman_provider *provider);
-int __connman_provider_remove(const char *path);
+int __connman_provider_remove_by_path(const char *path);
 void __connman_provider_cleanup(void);
 int __connman_provider_init(void);
 
@@ -561,19 +570,16 @@ void __connman_service_cleanup(void);
 
 void __connman_service_list_struct(DBusMessageIter *iter);
 
-struct connman_service *__connman_service_lookup_from_network(struct connman_network *network);
 struct connman_service *__connman_service_lookup_from_index(int index);
+struct connman_service *__connman_service_lookup_from_ident(const char *identifier);
 struct connman_service *__connman_service_create_from_network(struct connman_network *network);
 struct connman_service *__connman_service_create_from_provider(struct connman_provider *provider);
 struct connman_service *__connman_service_get_default(void);
 void __connman_service_update_from_network(struct connman_network *network);
 void __connman_service_remove_from_network(struct connman_network *network);
 void __connman_service_read_ip4config(struct connman_service *service);
-void __connman_service_create_ip4config(struct connman_service *service,
-                                                               int index);
 void __connman_service_read_ip6config(struct connman_service *service);
-void __connman_service_create_ip6config(struct connman_service *service,
-                                                               int index);
+
 struct connman_ipconfig *__connman_service_get_ip4config(
                                struct connman_service *service);
 struct connman_ipconfig *__connman_service_get_ip6config(
@@ -592,8 +598,17 @@ const char *__connman_service_get_phase2(struct connman_service *service);
 connman_bool_t __connman_service_wps_enabled(struct connman_service *service);
 int __connman_service_set_favorite(struct connman_service *service,
                                                connman_bool_t favorite);
+int __connman_service_set_favorite_delayed(struct connman_service *service,
+                                       connman_bool_t favorite,
+                                       gboolean delay_ordering);
 int __connman_service_set_immutable(struct connman_service *service,
                                                connman_bool_t immutable);
+int __connman_service_set_ignore(struct connman_service *service,
+                                               connman_bool_t ignore);
+void __connman_service_set_userconnect(struct connman_service *service,
+                                               connman_bool_t userconnect);
+void __connman_service_set_search_domains(struct connman_service *service,
+                                       char **domains);
 
 void __connman_service_set_string(struct connman_service *service,
                                        const char *key, const char *value);
@@ -615,8 +630,20 @@ int __connman_service_connect(struct connman_service *service);
 int __connman_service_disconnect(struct connman_service *service);
 int __connman_service_disconnect_all(void);
 void __connman_service_auto_connect(void);
-
-void __connman_service_provision_changed(const char *ident);
+gboolean __connman_service_remove(struct connman_service *service);
+connman_bool_t __connman_service_is_provider_pending(struct connman_service *service);
+void __connman_service_set_provider_pending(struct connman_service *service,
+                                                       DBusMessage *msg);
+void __connman_service_set_hidden_data(struct connman_service *service,
+                               gpointer user_data);
+void __connman_service_return_error(struct connman_service *service,
+                               int error, gpointer user_data);
+void __connman_service_reply_dbus_pending(DBusMessage *pending, int error,
+                                       const char *path);
+
+int __connman_service_provision_changed(const char *ident);
+void __connman_service_set_config(struct connman_service *service,
+                               const char *file_id, const char *section);
 
 const char *__connman_service_type2string(enum connman_service_type type);
 enum connman_service_type __connman_service_string2type(const char *str);
@@ -630,15 +657,20 @@ void __connman_service_nameserver_add_routes(struct connman_service *service,
                                                const char *gw);
 void __connman_service_nameserver_del_routes(struct connman_service *service,
                                        enum connman_ipconfig_type type);
+void __connman_service_set_timeservers(struct connman_service *service,
+                                               char **timeservers);
 int __connman_service_timeserver_append(struct connman_service *service,
                                                const char *timeserver);
 int __connman_service_timeserver_remove(struct connman_service *service,
                                                const char *timeserver);
+void __connman_service_timeserver_changed(struct connman_service *service,
+               GSList *ts_list);
 void __connman_service_set_pac(struct connman_service *service,
                                        const char *pac);
 connman_bool_t __connman_service_is_hidden(struct connman_service *service);
 connman_bool_t __connman_service_is_split_routing(struct connman_service *service);
 int __connman_service_get_index(struct connman_service *service);
+void __connman_service_set_hidden(struct connman_service *service);
 void __connman_service_set_domainname(struct connman_service *service,
                                                const char *domainname);
 const char *__connman_service_get_domainname(struct connman_service *service);
@@ -650,10 +682,14 @@ void __connman_service_set_identity(struct connman_service *service,
                                        const char *identity);
 void __connman_service_set_agent_identity(struct connman_service *service,
                                                const char *agent_identity);
-void __connman_service_set_passphrase(struct connman_service *service,
-                                       const char* passphrase);
+int __connman_service_set_passphrase(struct connman_service *service,
+                                       const char *passphrase);
+const char *__connman_service_get_passphrase(struct connman_service *service);
 void __connman_service_set_agent_passphrase(struct connman_service *service,
                                                const char *agent_passphrase);
+int __connman_service_reset_ipconfig(struct connman_service *service,
+               enum connman_ipconfig_type type, DBusMessageIter *array,
+               enum connman_service_state *new_state);
 
 void __connman_service_notify(struct connman_service *service,
                        unsigned int rx_packets, unsigned int tx_packets,
@@ -664,7 +700,8 @@ void __connman_service_notify(struct connman_service *service,
 int __connman_service_counter_register(const char *counter);
 void __connman_service_counter_unregister(const char *counter);
 
-struct connman_session;
+#include <connman/session.h>
+
 struct service_entry;
 typedef connman_bool_t (* service_match_cb) (struct connman_session *session,
                                        struct connman_service *service);
@@ -680,6 +717,8 @@ GSequence *__connman_service_get_list(struct connman_session *session,
 
 void __connman_service_session_inc(struct connman_service *service);
 connman_bool_t __connman_service_session_dec(struct connman_service *service);
+void __connman_service_mark_dirty();
+void __connman_service_save(struct connman_service *service);
 
 #include <connman/notifier.h>
 
@@ -692,6 +731,8 @@ void __connman_notifier_cleanup(void);
 void __connman_notifier_service_add(struct connman_service *service,
                                        const char *name);
 void __connman_notifier_service_remove(struct connman_service *service);
+void __connman_notifier_enter_online(enum connman_service_type type);
+void __connman_notifier_leave_online(enum connman_service_type type);
 void __connman_notifier_connect(enum connman_service_type type);
 void __connman_notifier_disconnect(enum connman_service_type type);
 void __connman_notifier_offlinemode(connman_bool_t enabled);
@@ -702,7 +743,7 @@ void __connman_notifier_service_state_changed(struct connman_service *service,
 void __connman_notifier_ipconfig_changed(struct connman_service *service,
                                        struct connman_ipconfig *ipconfig);
 
-unsigned int __connman_notifier_count_connected(void);
+connman_bool_t __connman_notifier_is_connected(void);
 const char *__connman_notifier_get_state(void);
 
 #include <connman/rtnl.h>
@@ -749,18 +790,42 @@ int __connman_stats_get(struct connman_service *service,
                                connman_bool_t roaming,
                                struct connman_stats_data *data);
 
+int __connman_iptables_dump(const char *table_name);
+int __connman_iptables_new_chain(const char *table_name,
+                                       const char *chain);
+int __connman_iptables_delete_chain(const char *table_name,
+                                       const char *chain);
+int __connman_iptables_flush_chain(const char *table_name,
+                                       const char *chain);
+int __connman_iptables_change_policy(const char *table_name,
+                                       const char *chain,
+                                       const char *policy);
+int __connman_iptables_append(const char *table_name,
+                       const char *chain,
+                       const char *rule_spec);
+int __connman_iptables_insert(const char *table_name,
+                       const char *chain,
+                       const char *rule_spec);
+int __connman_iptables_delete(const char *table_name,
+                       const char *chain,
+                       const char *rule_spec);
+
+typedef void (*connman_iptables_iterate_chains_cb_t) (const char *chain_name,
+                                                       void *user_data);
+int __connman_iptables_iterate_chains(const char *table_name,
+                               connman_iptables_iterate_chains_cb_t cb,
+                               void *user_data);
+
 int __connman_iptables_init(void);
 void __connman_iptables_cleanup(void);
-int __connman_iptables_command(const char *format, ...)
-                               __attribute__((format(printf, 1, 2)));
 int __connman_iptables_commit(const char *table_name);
 
 int __connman_dnsproxy_init(void);
 void __connman_dnsproxy_cleanup(void);
-int __connman_dnsproxy_add_listener(const char *interface);
-void __connman_dnsproxy_remove_listener(const char *interface);
-int __connman_dnsproxy_append(const char *interface, const char *domain, const char *server);
-int __connman_dnsproxy_remove(const char *interface, const char *domain, const char *server);
+int __connman_dnsproxy_add_listener(int index);
+void __connman_dnsproxy_remove_listener(int index);
+int __connman_dnsproxy_append(int index, const char *domain, const char *server);
+int __connman_dnsproxy_remove(int index, const char *domain, const char *server);
 void __connman_dnsproxy_flush(void);
 
 int __connman_6to4_probe(struct connman_service *service);