connman: upgrade to 1.10

0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch
    - adapted to the new version

0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch
    - patch removed (it is included in the new version)

inet-fix-ip-cleanup-functions.patch: added
    - fix for ip cleanup functions

(From OE-Core rev: e0cca947fc87c8f7a6d2a8fd719c87d56dd52941)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Cristian Iorga
2013-01-15 22:08:45 +02:00
committed by Richard Purdie
parent 7048fbdc05
commit b1ae967908
4 changed files with 67 additions and 80 deletions

View File

@@ -1,61 +0,0 @@
From f2094e6b2e4542adf458d8fa58d7bccd5edb762e Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Tue, 17 Jul 2012 17:27:39 +0300
Subject: [PATCH V3 1/2] timezone.c: If there is no d_type support use
fstatat()
This is useful for filesystems where d_type is always DT_UNKNOWN.
In this case use fstatat() function.
Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
Upstream-Status: Submitted
---
src/timezone.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/timezone.c b/src/timezone.c
index 173d658..f951f6b 100644
--- a/src/timezone.c
+++ b/src/timezone.c
@@ -157,6 +157,8 @@ static char *find_origin(void *src_map, struct stat *src_st,
DIR *dir;
struct dirent *d;
char *str, pathname[PATH_MAX];
+ struct stat buf;
+ int ret;
if (subpath == NULL)
strncpy(pathname, basepath, sizeof(pathname));
@@ -205,6 +207,28 @@ static char *find_origin(void *src_map, struct stat *src_st,
return str;
}
break;
+ case DT_UNKNOWN:
+ /*
+ * If there is no d_type support use fstatat()
+ * to check if directory
+ */
+ ret = fstatat(dirfd(dir), d->d_name, &buf, 0);
+ if (ret < 0)
+ continue;
+ if (!(buf.st_mode & S_IFDIR))
+ continue;
+ if (subpath == NULL)
+ strncpy(pathname, d->d_name, sizeof(pathname));
+ else
+ snprintf(pathname, sizeof(pathname),
+ "%s/%s", subpath, d->d_name);
+
+ str = find_origin(src_map, src_st, basepath, pathname);
+ if (str != NULL) {
+ closedir(dir);
+ return str;
+ }
+ break;
}
}
--
1.7.9.5

View File

@@ -8,20 +8,33 @@ This is useful for filesystems where d_type is always DT_UNKNOWN.
In this case use fstatat() function.
Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Upstream-Status: Submitted
---
src/storage.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/storage.c b/src/storage.c
index 47bd0cb..0491a52 100644
--- a/src/storage.c
+++ b/src/storage.c
@@ -206,6 +206,25 @@ gchar **connman_storage_get_services()
Index: git/src/storage.c
===================================================================
--- git.orig/src/storage.c
+++ git/src/storage.c
@@ -193,7 +193,6 @@ gchar **connman_storage_get_services()
g_string_append_printf(result, "%s/", d->d_name);
break;
switch (d->d_type) {
case DT_DIR:
- case DT_UNKNOWN:
/*
* If the settings file is not found, then
* assume this directory is not a services dir.
@@ -203,6 +202,25 @@ gchar **connman_storage_get_services()
ret = stat(str, &buf);
g_free(str);
if (ret < 0)
+ continue;
+
+ g_string_append_printf(result, "%s/", d->d_name);
+ break;
+ case DT_UNKNOWN:
+ /*
+ * If there is no d_type support use fstatat()
@@ -37,13 +50,6 @@ index 47bd0cb..0491a52 100644
+ ret = stat(str, &buf);
+ g_free(str);
+ if (ret < 0)
+ continue;
+
+ g_string_append_printf(result, "%s/", d->d_name);
+ break;
}
}
continue;
--
1.7.9.5
g_string_append_printf(result, "%s/", d->d_name);

View File

@@ -0,0 +1,40 @@
From 100353e10f60a50ca1ba78daa6bc4dfebf5b3297 Mon Sep 17 00:00:00 2001
From: Constantin Musca <constantinx.musca@intel.com>
Date: Wed, 5 Dec 2012 15:07:21 +0200
Subject: [PATCH] inet: fix ip cleanup functions
Upstream-Status: Pending
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
---
src/inet.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/inet.c b/src/inet.c
index be69aca..e76a1f1 100644
--- a/src/inet.c
+++ b/src/inet.c
@@ -626,6 +626,10 @@ int connman_inet_clear_ipv6_address(int index, const char *address,
DBG("index %d address %s prefix_len %d", index, address, prefix_len);
+ if (address == NULL) {
+ return -1;
+ }
+
err = __connman_inet_modify_address(RTM_DELADDR, 0, index, AF_INET6,
address, NULL, prefix_len, NULL);
if (err < 0) {
@@ -649,6 +653,10 @@ int connman_inet_clear_address(int index, struct connman_ipaddress *ipaddress)
DBG("index %d address %s prefix_len %d", index, address, prefix_len);
+ if (address == NULL) {
+ return -1;
+ }
+
err = __connman_inet_modify_address(RTM_DELADDR, 0, index, AF_INET,
address, peer, prefix_len, broadcast);
if (err < 0) {
--
1.7.11.7

View File

@@ -1,12 +1,14 @@
require connman.inc
# 1.4 tag
SRCREV = "f701bbca259f1f35e68d338f31f5373f75f3da5f"
# 1.10 tag
SRCREV = "3bda76eb442c9395db1dba17352c3e78376671cc"
SRC_URI = "git://git.kernel.org/pub/scm/network/connman/connman.git \
file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
file://add_xuser_dbus_permission.patch \
file://connman \
file://0002-storage.c-If-there-is-no-d_type-support-use-fstatat.patch \
file://0001-timezone.c-If-there-is-no-d_type-support-use-fstatat.patch"
file://inet-fix-ip-cleanup-functions.patch"
S = "${WORKDIR}/git"
PR = "${INC_PR}.0"
RRECOMMENDS_${PN} = "connman-conf"