diff options
author | Niraj Kumar Goit <niraj.g@samsung.com> | 2016-06-14 22:24:37 +0530 |
---|---|---|
committer | Niraj Kumar Goit <niraj.g@samsung.com> | 2016-06-15 01:26:32 +0530 |
commit | 535e7f69c650dd1701cdb94152a88e644d079afb (patch) | |
tree | 0143a3631860fe7d3c15453b2311312de270bd3d /plugins/loopback.c | |
parent | 8bf82d09ca26e4d463314948de7154aac1806d37 (diff) | |
download | connman-535e7f69c650dd1701cdb94152a88e644d079afb.tar.gz connman-535e7f69c650dd1701cdb94152a88e644d079afb.tar.bz2 connman-535e7f69c650dd1701cdb94152a88e644d079afb.zip |
[SPIN] gsupplicant: fix stucking in scanning state when scan failed.
- gsupplicant: fix stucking in scanning state when scan failed.
- Apply ASLR option.
- Add ""TIZEN_WEARABLE"" check in service file.
- change the dhcp client device name.
- default internet service: fix not cleared if pdp activation failed.
- Change Russia cert build feature.
- Update the Connman.service.in file.
- Remove connection retry when association fail.
Change-Id: I3ac8e49d0a3c229b298296f8e7cbf34845c2c90d
Signed-off-by: Niraj Kumar Goit <niraj.g@samsung.com>
Diffstat (limited to 'plugins/loopback.c')
-rwxr-xr-x | plugins/loopback.c | 84 |
1 files changed, 75 insertions, 9 deletions
diff --git a/plugins/loopback.c b/plugins/loopback.c index e113887d..cfb33a8e 100755 --- a/plugins/loopback.c +++ b/plugins/loopback.c @@ -23,6 +23,8 @@ #include <config.h> #endif +#include <stdio.h> + #include <errno.h> #include <unistd.h> #include <limits.h> @@ -34,6 +36,8 @@ #include <net/if.h> #include <glib.h> +#include <glib/gprintf.h> + #define CONNMAN_API_SUBJECT_TO_CHANGE #include <connman/plugin.h> @@ -62,16 +66,78 @@ static int setup_hostname(void) memset(system_hostname, 0, sizeof(system_hostname)); - if (gethostname(system_hostname, HOST_NAME_MAX) < 0) { - connman_error("Failed to get current hostname"); - return -EIO; - } +#if defined TIZEN_EXT + FILE *fp = NULL; + +#if defined TIZEN_WEARABLE +#define BT_MAC "/csa/bluetooth/.bd_addr" + { + gchar* dev_id = "GearS2"; + char bt_mac[HOST_NAME_MAX + 1]; + char addr[5] = {0, }; + + fp = fopen(BT_MAC, "r"); + if(!fp){ + connman_error("Failed to get current hostname"); + strncpy(system_hostname, dev_id, strlen(dev_id)); + goto host_name_end; + } + + // get the last line's address + while (fgets(bt_mac, HOST_NAME_MAX, fp)) {} + + if (strlen(bt_mac) == 6) { + addr[0] = bt_mac[2]; + addr[1] = bt_mac[3]; + addr[2] = bt_mac[4]; + addr[3] = bt_mac[5]; + g_sprintf(system_hostname, "%s-%s", dev_id, addr); + } else + strncpy(system_hostname, dev_id, strlen(dev_id)); + + fclose(fp); + } +#else +#define WIFI_MAC "/opt/etc/.mac.info" + { + char* rv = 0; + gchar* dev_id = "TIZEN"; + char wifi_mac[HOST_NAME_MAX + 1]; + + fp = fopen(WIFI_MAC, "r"); + if(!fp){ + connman_error("Failed to get current hostname"); + strncpy(system_hostname, dev_id, strlen(dev_id)); + goto host_name_end; + } + + rv = fgets(wifi_mac, HOST_NAME_MAX, fp); + if(!rv){ + connman_error("Failed to get current hostname"); + strncpy(system_hostname, dev_id, strlen(dev_id)); + fclose(fp); + goto host_name_end; + } + + dev_id = g_base64_encode((const guchar *)wifi_mac, strlen(wifi_mac)); + g_sprintf(system_hostname, "TIZEN-%s", dev_id); + g_free(dev_id); + fclose(fp); + } +#endif - if (strlen(system_hostname) > 0 && - strcmp(system_hostname, "(none)") != 0) - connman_info("System hostname is %s", system_hostname); - else - create_hostname(); + host_name_end : +#else + if (gethostname(system_hostname, HOST_NAME_MAX) < 0) { + connman_error("Failed to get current hostname"); + return -EIO; + } +#endif + if (strlen(system_hostname) > 0 && + strcmp(system_hostname, "(none)") != 0) + connman_info("System hostname is %s", system_hostname); + else + create_hostname(); memset(name, 0, sizeof(name)); |