lib/connman0_7x/e_connman_private.h
Go to the documentation of this file.
00001 #ifdef HAVE_CONFIG_H 00002 #include "config.h" 00003 #endif 00004 00005 #ifdef HAVE_ALLOCA_H 00006 # include <alloca.h> 00007 #elif defined __GNUC__ 00008 # define alloca __builtin_alloca 00009 #elif defined _AIX 00010 # define alloca __alloca 00011 #elif defined _MSC_VER 00012 # include <malloc.h> 00013 # define alloca _alloca 00014 #else 00015 # include <stddef.h> 00016 # ifdef __cplusplus 00017 extern "C" 00018 # endif 00019 void * alloca (size_t); 00020 #endif 00021 00022 #include <stdio.h> 00023 00024 #include <Eina.h> 00025 #include <eina_safety_checks.h> 00026 00027 #define E_CONNMAN_I_KNOW_THIS_API_IS_SUBJECT_TO_CHANGE 1 00028 #include "E_Connman.h" 00029 00030 typedef struct _E_Connman_Array E_Connman_Array; 00031 struct _E_Connman_Array 00032 { 00033 int type; 00034 Eina_Array *array; 00035 }; 00036 00037 static const char manager_path[] = "/"; 00038 00039 extern const char *e_connman_iface_manager; 00040 extern const char *e_connman_iface_profile; 00041 extern const char *e_connman_iface_service; 00042 extern const char *e_connman_iface_connection; 00043 extern const char *e_connman_iface_technology; 00044 00045 extern const char *e_connman_prop_ipv4; 00046 extern const char *e_connman_prop_ipv4_configuration; 00047 extern const char *e_connman_prop_ethernet; 00048 extern const char *e_connman_prop_interface; 00049 extern const char *e_connman_prop_speed; 00050 extern const char *e_connman_prop_duplex; 00051 extern const char *e_connman_prop_method; 00052 extern const char *e_connman_prop_address; 00053 extern const char *e_connman_prop_gateway; 00054 extern const char *e_connman_prop_netmask; 00055 extern const char *e_connman_prop_mtu; 00056 extern const char *e_connman_prop_name; 00057 extern const char *e_connman_prop_offline_mode; 00058 extern const char *e_connman_prop_profiles; 00059 extern const char *e_connman_prop_profile_active; 00060 extern const char *e_connman_prop_services; 00061 extern const char *e_connman_prop_technologies; 00062 extern const char *e_connman_prop_state; 00063 extern const char *e_connman_prop_strength; 00064 extern const char *e_connman_prop_type; 00065 extern const char *e_connman_prop_error; 00066 extern const char *e_connman_prop_security; 00067 extern const char *e_connman_prop_passphrase; 00068 extern const char *e_connman_prop_passphrase_required; 00069 extern const char *e_connman_prop_favorite; 00070 extern const char *e_connman_prop_immutable; 00071 extern const char *e_connman_prop_auto_connect; 00072 extern const char *e_connman_prop_roaming; 00073 extern const char *e_connman_prop_technology_default; 00074 extern const char *e_connman_prop_technologies_available; 00075 extern const char *e_connman_prop_technologies_enabled; 00076 extern const char *e_connman_prop_technologies_connected; 00077 extern const char *e_connman_prop_login_required; 00078 extern const char *e_connman_prop_nameservers; 00079 extern const char *e_connman_prop_nameservers_configuration; 00080 extern const char *e_connman_prop_domains; 00081 extern const char *e_connman_prop_domains_configuration; 00082 extern const char *e_connman_prop_proxy; 00083 extern const char *e_connman_prop_proxy_configuration; 00084 extern const char *e_connman_prop_url; 00085 extern const char *e_connman_prop_servers; 00086 extern const char *e_connman_prop_excludes; 00087 00088 extern int _e_dbus_connman_log_dom; 00089 00090 #ifndef EINA_LOG_DEFAULT_COLOR 00091 #define EINA_LOG_DEFAULT_COLOR EINA_COLOR_CYAN 00092 #endif 00093 00094 #undef DBG 00095 #undef INF 00096 #undef WRN 00097 #undef ERR 00098 00099 #define DBG(...) EINA_LOG_DOM_DBG(_e_dbus_connman_log_dom, __VA_ARGS__) 00100 #define INF(...) EINA_LOG_DOM_INFO(_e_dbus_connman_log_dom, __VA_ARGS__) 00101 #define WRN(...) EINA_LOG_DOM_WARN(_e_dbus_connman_log_dom, __VA_ARGS__) 00102 #define ERR(...) EINA_LOG_DOM_ERR(_e_dbus_connman_log_dom, __VA_ARGS__) 00103 00104 static inline Eina_Bool 00105 _dbus_callback_check_and_init(DBusMessage *msg, DBusMessageIter *itr, DBusError *err) 00106 { 00107 if (!msg) 00108 { 00109 if (err && (err->name[0] == 'C')) 00110 return EINA_FALSE; 00111 if (err) 00112 { 00113 /* dont keep reporting the same err again and again */ 00114 static char perr[256] = {0}; 00115 00116 if (!(!strncmp(perr, err->name, sizeof(perr) - 1))) 00117 { 00118 ERR("an error was reported by server: " 00119 "name=\"%s\", message=\"%s\"", 00120 err->name, err->message); 00121 strncpy(perr, err->name, sizeof(perr) - 1); 00122 perr[sizeof(perr) - 1] = 0; 00123 } 00124 } 00125 else 00126 ERR("callback without message arguments!"); 00127 00128 return EINA_FALSE; 00129 } 00130 00131 if (!dbus_message_iter_init(msg, itr)) 00132 { 00133 ERR("could not init iterator."); 00134 return EINA_FALSE; 00135 } 00136 00137 return EINA_TRUE; 00138 } 00139 00140 static inline Eina_Bool 00141 __dbus_iter_type_check(int type, int expected, const char *expected_name) 00142 { 00143 if (type == expected) 00144 return EINA_TRUE; 00145 00146 ERR("expected type %s (%c) but got %c instead!", 00147 expected_name, expected, type); 00148 00149 return EINA_FALSE; 00150 } 00151 00152 #define _dbus_iter_type_check(t, e) __dbus_iter_type_check(t, e, # e) 00153 00154 extern E_DBus_Connection *e_connman_conn; 00155 00156 const char * e_connman_system_bus_name_get(void); 00157 00158 void e_connman_manager_clear_elements(void); 00159 00160 void e_connman_elements_init(void); 00161 void e_connman_elements_shutdown(void); 00162 00163 E_Connman_Element * e_connman_element_register(const char *path, const char *interface); 00164 void e_connman_element_unregister(E_Connman_Element *element); 00165 00166 Eina_Bool e_connman_element_objects_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count, E_Connman_Element ***elements); 00167 Eina_Bool e_connman_element_strings_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count, const char ***strings); 00168 unsigned char * e_connman_element_bytes_array_get_stringshared(const E_Connman_Element *element, const char *property, unsigned int *count); 00169 00170 Eina_Bool e_connman_element_message_send(E_Connman_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, DBusMessage *msg, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data); 00171 00172 Eina_Bool e_connman_element_call_full(E_Connman_Element *element, const char *method_name, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data); 00173 Eina_Bool e_connman_element_call_with_path(E_Connman_Element *element, const char *method_name, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data); 00174 Eina_Bool e_connman_element_call_with_string(E_Connman_Element *element, const char *method_name, const char *string, E_DBus_Method_Return_Cb cb, Eina_Inlist **pending, E_DBus_Method_Return_Cb user_cb, const void *user_data);