#endif
#include <glib.h>
+#include <stdbool.h>
#include "wifi.h"
#include "plugin.h"
#define MAX_SIZE_ERROR_BUFFER 256
+#define ETHERNET_FEATURE "http://tizen.org/feature/network.ethernet"
+#define TETHERING_FEATURE "http://tizen.org/feature/network.tethering"
+#define WIFI_DIRECT_FEATURE "http://tizen.org/feature/network.wifi.direct"
+
+/** Macros to handle rtattributes */
+#define RTA_ALIGNTO 4
+#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) )
+#define RTA_LENGTH(len) (RTA_ALIGN(sizeof(struct rtattr)) + (len))
+#define RTA_DATA(rta) ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
+#define NLMSG_TAIL(nmsg) \
+ ((struct rtattr *) (((void *) (nmsg)) + NLMSG_ALIGN((nmsg)->nlmsg_len)))
+
+typedef enum {
+ NETCONFIG_SUPPORTED_FEATURE_ETHERNET = 0,
+ NETCONFIG_SUPPORTED_FEATURE_TETHERING,
+ NETCONFIG_SUPPORTED_FEATURE_WIFI_DIRECT,
+ NETCONFIG_SUPPORTED_FEATURE_MAX,
+} netconfig_supported_feature_e;
+
+bool netconfig_check_feature_supported(netconfig_supported_feature_e feature);
+
+gboolean netconfig_check_passphrase(const gchar *service, const char *passphrase);
GKeyFile *netconfig_keyfile_load(const char *pathname);
void netconfig_keyfile_save(GKeyFile *keyfile, const char *pathname);
int netconfig_execute_file_no_wait(const char *file_path,
char *const args[]);
int netconfig_execute_clatd(const char *file_path, char *const args[]);
-int netconfig_add_route_ipv6(gchar *ip_addr, gchar *interface, gchar *gateway, unsigned char prefix_len);
+int netconfig_add_route_ipv6(gchar *interface, gchar *gateway);
int netconfig_del_route_ipv6(gchar *ip_addr, gchar *interface, gchar *gateway, unsigned char prefix_len);
int netconfig_add_route_ipv4(gchar *ip_addr, gchar *subnet, gchar *interface, gint address_family);
int netconfig_del_route_ipv4(gchar *ip_addr, gchar *subnet, gchar *interface, gint address_family);