static Eina_Bool
_on_cmd_service_get_security(__UNUSED__ char *cmd, char *args)
{
- const char *security, *path;
+ const E_Connman_Array *security;
+ const char *path;
E_Connman_Element *e;
if (!args)
e = e_connman_service_get(path);
if (e_connman_service_security_get(e, &security))
- printf(":::Service %s Security = \"%s\"\n", path, security);
+ {
+ Eina_Array_Iterator iterator;
+ unsigned int i;
+ const char *entry;
+ if (security->type != DBUS_TYPE_STRING)
+ {
+ fprintf(stderr, "ERROR: expected type '%c' but got '%c' for "
+ "security array.\n",
+ DBUS_TYPE_STRING, security->type);
+ return ECORE_CALLBACK_RENEW;
+ }
+ printf(":::Service %s Security = ", path);
+ EINA_ARRAY_ITER_NEXT(security->array, i, entry, iterator)
+ printf("\"%s\", ", entry);
+ putchar('\n');
+ }
else
fputs("ERROR: can't get service security\n", stderr);
return ECORE_CALLBACK_RENEW;
int _references;
};
+typedef struct _E_Connman_Array E_Connman_Array;
+struct _E_Connman_Array
+{
+ int type;
+ Eina_Array *array;
+};
+
/* General Public API */
EAPI unsigned int e_connman_system_init(E_DBus_Connection *edbus_conn) EINA_ARG_NONNULL(1);
EAPI unsigned int e_connman_system_shutdown(void);
EAPI Eina_Bool e_connman_service_name_get(const E_Connman_Element *service, const char **name) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Bool e_connman_service_type_get(const E_Connman_Element *service, const char **type) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Bool e_connman_service_mode_get(const E_Connman_Element *service, const char **mode) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
-EAPI Eina_Bool e_connman_service_security_get(const E_Connman_Element *service, const char **security) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
+EAPI Eina_Bool e_connman_service_security_get(const E_Connman_Element *service, const E_Connman_Array **security) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Bool e_connman_service_passphrase_get(const E_Connman_Element *service, const char **passphrase) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
EAPI Eina_Bool e_connman_service_passphrase_set(E_Connman_Element *service, const char *passphrase, E_DBus_Method_Return_Cb cb, const void *data) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT;
static Eina_Hash *elements = NULL;
-typedef struct _E_Connman_Array E_Connman_Array;
typedef struct _E_Connman_Element_Pending E_Connman_Element_Pending;
typedef struct _E_Connman_Element_Call_Data E_Connman_Element_Call_Data;
typedef struct _E_Connman_Element_Property E_Connman_Element_Property;
typedef struct _E_Connman_Element_Listener E_Connman_Element_Listener;
typedef struct _E_Connman_Element_Dict_Entry E_Connman_Element_Dict_Entry;
-struct _E_Connman_Array
-{
- int type;
- Eina_Array *array;
-};
-
struct _E_Connman_Element_Pending
{
EINA_INLIST;
* values shall be considered invalid.
*
* If the service type is WiFi, then this property is
- * present and contains the security method or key
+ * present and contains the list of security method or key
* management setting.
*
- * Possible values are "none", "wep", "wpa" and "rsn".
+ * Possible values are "none", "wep", "wpa", "rsn", "psk", "ieee8021x" and "wps"
*
* This property might be only present for WiFi
* services.
*
* @param service path to get property.
* @param security where to store the property value, must be a pointer
- * to string (const char **), it will not be allocated or
+ * to E_Connman_Array, it will not be allocated or
* copied and references will be valid until element changes,
* so copy it if you want to use it later.
*
* @return @c EINA_TRUE on success, @c EINA_FALSE otherwise.
*/
Eina_Bool
-e_connman_service_security_get(const E_Connman_Element *service, const char **security)
+e_connman_service_security_get(const E_Connman_Element *service, const E_Connman_Array **security)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(service, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(security, EINA_FALSE);