*
* Connection Manager
*
- * Copyright (C) 2007-2010 Intel Corporation. All rights reserved.
+ * Copyright (C) 2007-2014 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
#ifndef __CONNMAN_SERVICE_H
#define __CONNMAN_SERVICE_H
-#include <connman/types.h>
+#include <stdbool.h>
+
+#if defined TIZEN_EXT
+#include <glib.h>
+#include <gdbus.h>
+#endif
#ifdef __cplusplus
extern "C" {
CONNMAN_SERVICE_TYPE_SYSTEM = 1,
CONNMAN_SERVICE_TYPE_ETHERNET = 2,
CONNMAN_SERVICE_TYPE_WIFI = 3,
- CONNMAN_SERVICE_TYPE_WIMAX = 4,
- CONNMAN_SERVICE_TYPE_BLUETOOTH = 5,
- CONNMAN_SERVICE_TYPE_CELLULAR = 6,
- CONNMAN_SERVICE_TYPE_GPS = 7,
- CONNMAN_SERVICE_TYPE_VPN = 8,
+ CONNMAN_SERVICE_TYPE_BLUETOOTH = 4,
+ CONNMAN_SERVICE_TYPE_CELLULAR = 5,
+ CONNMAN_SERVICE_TYPE_GPS = 6,
+ CONNMAN_SERVICE_TYPE_VPN = 7,
+ CONNMAN_SERVICE_TYPE_GADGET = 8,
+ CONNMAN_SERVICE_TYPE_P2P = 9,
+#if defined TIZEN_EXT_WIFI_MESH
+ CONNMAN_SERVICE_TYPE_MESH = 10,
+#endif
};
+#if defined TIZEN_EXT_WIFI_MESH
+#define MAX_CONNMAN_SERVICE_TYPES 11
+#else
+#define MAX_CONNMAN_SERVICE_TYPES 10
+#endif
-enum connman_service_mode {
- CONNMAN_SERVICE_MODE_UNKNOWN = 0,
- CONNMAN_SERVICE_MODE_MANAGED = 1,
- CONNMAN_SERVICE_MODE_ADHOC = 2,
- CONNMAN_SERVICE_MODE_GPRS = 3,
- CONNMAN_SERVICE_MODE_EDGE = 4,
- CONNMAN_SERVICE_MODE_UMTS = 5,
-};
enum connman_service_security {
CONNMAN_SERVICE_SECURITY_UNKNOWN = 0,
CONNMAN_SERVICE_SECURITY_8021X = 4,
CONNMAN_SERVICE_SECURITY_WPA = 8,
CONNMAN_SERVICE_SECURITY_RSN = 9,
+#if defined TIZEN_EXT
+ CONNMAN_SERVICE_SECURITY_SAE = 10,
+ CONNMAN_SERVICE_SECURITY_OWE = 11,
+ CONNMAN_SERVICE_SECURITY_DPP = 12,
+#endif
+#if defined TIZEN_EXT
+ CONNMAN_SERVICE_SECURITY_MAX
+#endif
};
enum connman_service_state {
CONNMAN_SERVICE_ERROR_PIN_MISSING = 2,
CONNMAN_SERVICE_ERROR_DHCP_FAILED = 3,
CONNMAN_SERVICE_ERROR_CONNECT_FAILED = 4,
+ CONNMAN_SERVICE_ERROR_LOGIN_FAILED = 5,
+ CONNMAN_SERVICE_ERROR_AUTH_FAILED = 6,
+ CONNMAN_SERVICE_ERROR_INVALID_KEY = 7,
+ CONNMAN_SERVICE_ERROR_BLOCKED = 8,
+};
+
+enum connman_service_proxy_method {
+ CONNMAN_SERVICE_PROXY_METHOD_UNKNOWN = 0,
+ CONNMAN_SERVICE_PROXY_METHOD_DIRECT = 1,
+ CONNMAN_SERVICE_PROXY_METHOD_MANUAL = 2,
+ CONNMAN_SERVICE_PROXY_METHOD_AUTO = 3,
+};
+
+enum connman_service_connect_reason {
+ CONNMAN_SERVICE_CONNECT_REASON_NONE = 0,
+ CONNMAN_SERVICE_CONNECT_REASON_AUTO = 1,
+ CONNMAN_SERVICE_CONNECT_REASON_USER = 2,
+ CONNMAN_SERVICE_CONNECT_REASON_SESSION = 3,
};
struct connman_service;
+struct connman_network;
struct connman_service *connman_service_create(void);
-struct connman_service *connman_service_ref(struct connman_service *service);
-void connman_service_unref(struct connman_service *service);
+
+#define connman_service_ref(service) \
+ connman_service_ref_debug(service, __FILE__, __LINE__, __func__)
+
+#define connman_service_unref(service) \
+ connman_service_unref_debug(service, __FILE__, __LINE__, __func__)
+
+struct connman_service *
+connman_service_ref_debug(struct connman_service *service,
+ const char *file, int line, const char *caller);
+void connman_service_unref_debug(struct connman_service *service,
+ const char *file, int line, const char *caller);
enum connman_service_type connman_service_get_type(struct connman_service *service);
+enum connman_service_state connman_service_get_state(struct connman_service *service);
char *connman_service_get_interface(struct connman_service *service);
+const char *connman_service_get_identifier(struct connman_service *service);
+const char *connman_service_get_domainname(struct connman_service *service);
+const char *connman_service_get_dbuspath(struct connman_service *service);
+char **connman_service_get_nameservers(struct connman_service *service);
+char **connman_service_get_timeservers_config(struct connman_service *service);
+char **connman_service_get_timeservers(struct connman_service *service);
+void connman_service_set_proxy_method(struct connman_service *service, enum connman_service_proxy_method method);
+enum connman_service_proxy_method connman_service_get_proxy_method(struct connman_service *service);
+char **connman_service_get_proxy_servers(struct connman_service *service);
+char **connman_service_get_proxy_excludes(struct connman_service *service);
+const char *connman_service_get_proxy_url(struct connman_service *service);
+const char *connman_service_get_proxy_autoconfig(struct connman_service *service);
+bool connman_service_get_favorite(struct connman_service *service);
+bool connman_service_get_autoconnect(struct connman_service *service);
+bool connman_service_set_autoconnect(struct connman_service *service,
+ bool autoconnect);
+
+/* Return non-zero value to terminate the loop, zero to continue */
+typedef int (* connman_service_iterate_cb) (struct connman_service *service,
+ void *user_data);
+int connman_service_iterate_services(connman_service_iterate_cb cb,
+ void *user_data);
+
+struct connman_service *connman_service_get_default(void);
+struct connman_service *connman_service_lookup_from_network(struct connman_network *network);
+struct connman_service *connman_service_lookup_from_identifier(const char* identifier);
+
+void connman_service_create_ip4config(struct connman_service *service,
+ int index);
+void connman_service_create_ip6config(struct connman_service *service,
+ int index);
+
+#if defined TIZEN_EXT
+/*
+ * Description: TIZEN implements system global connection management.
+ * It's only for PDP (cellular) bearer. Wi-Fi is managed by ConnMan automatically.
+ * Reference count can help to manage open/close connection requests by each application.
+ */
+
+/*
+ * Increase reference count of user-initiated packet data network connection
+ */
+void connman_service_user_pdn_connection_ref(struct connman_service *service);
+
+/*
+ * Decrease reference count of user initiated packet data network connection
+ * and return TRUE if counter is zero.
+ */
+gboolean connman_service_user_pdn_connection_unref_and_test(
+ struct connman_service *service);
+
+/*
+ * Test reference count of user initiated packet data network connection
+ * and return TRUE if counter is zero. No impact to reference count
+ */
+gboolean connman_service_is_no_ref_user_pdn_connection(
+ struct connman_service *service);
+
+struct connman_service *connman_service_get_default_connection(void);
+struct connman_service *connman_service_get_connected_service(const char *ifname);
+
+/*
+ * Description: telephony plug-in requires manual PROXY setting
+ */
+int connman_service_set_proxy(struct connman_service *service,
+ const char *proxy, gboolean active);
+
+void connman_service_set_disconnection_requested(struct connman_service *service,
+ bool disconnection_requested);
+#endif
+
+#if defined TIZEN_EXT
+void connman_service_set_internet_connection(struct connman_service *service,
+ bool internet_connection);
+bool connman_service_get_internet_connection(struct connman_service *service);
+DBusMessage *connman_service_create_dbus_service_reply(DBusMessage *msg,
+ struct connman_service *service);
+#endif
+
#ifdef __cplusplus
}
#endif