diff options
3 files changed, 45 insertions, 3 deletions
| diff --git a/meta/recipes-connectivity/connman/connman-0.56/fix-shutdown-ap-disconnect.patch b/meta/recipes-connectivity/connman/connman-0.56/fix-shutdown-ap-disconnect.patch new file mode 100644 index 0000000000..a0ad0991df --- /dev/null +++ b/meta/recipes-connectivity/connman/connman-0.56/fix-shutdown-ap-disconnect.patch @@ -0,0 +1,42 @@ +Schedule delayed scan when being disconnected from an AP + +When being disconnected from an AP, a delayed scan is scheduled to make +sure the AP is still there. wpa_supplicant removes a BSS from its bss list +when it disappears from the scan results twice in a row. + +Author: Samuel Ortiz <sameo@linux.intel.com> +Ported by Dongxiao Xu <dongxiao.xu@intel.com> + +diff -ruN connman-0.56-orig/plugins/supplicant.c connman-0.56/plugins/supplicant.c +--- connman-0.56-orig/plugins/supplicant.c	2010-09-25 15:08:21.242927383 +0800 ++++ connman-0.56/plugins/supplicant.c	2010-09-25 15:12:46.346136858 +0800 +@@ -2184,6 +2184,15 @@ + 				scanning == TRUE ? "started" : "finished"); + } +  ++static gboolean delayed_scan(gpointer user_data) ++{ ++	struct supplicant_task *task = user_data; ++ ++	supplicant_scan(task->device); ++ ++	return FALSE; ++} ++ + static void state_change(struct supplicant_task *task, DBusMessage *msg) + { + 	DBusError error; +@@ -2277,7 +2286,13 @@ + 				task_connect(task); + 			} else + 				task->network = NULL; ++		} else { ++			if (task->state == WPA_DISCONNECTED) ++				g_timeout_add_seconds(10, delayed_scan, task); ++ ++			remove_network(task); + 		} ++ + 		break; +  + 	default: diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc index c842d3cbf0..bc506faabe 100644 --- a/meta/recipes-connectivity/connman/connman.inc +++ b/meta/recipes-connectivity/connman/connman.inc @@ -10,7 +10,7 @@ DEPENDS  = "libgdbus dbus glib-2.0 hal"  RDEPENDS_${PN} = "wpa-supplicant resolvconf"  INITSCRIPT_NAME = "connman" -INITSCRIPT_PARAMS = "start 05 5 2 . stop 22 0 1 6 ." +INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."  inherit autotools pkgconfig update-rc.d diff --git a/meta/recipes-connectivity/connman/connman_0.56.bb b/meta/recipes-connectivity/connman/connman_0.56.bb index 24ae536a78..69dad66d58 100644 --- a/meta/recipes-connectivity/connman/connman_0.56.bb +++ b/meta/recipes-connectivity/connman/connman_0.56.bb @@ -1,5 +1,5 @@  require connman.inc -PR = "r0" +PR = "r1"  EXTRA_OECONF += "\    ac_cv_path_WPASUPPLICANT=/usr/sbin/wpa_supplicant \ @@ -16,10 +16,10 @@ EXTRA_OECONF += "\    --disable-udev \    --disable-polkit \    --enable-client \ -  --enable-fake \    --prefix=/usr --sysconfdir=/etc --localstatedir=/var"  SRC_URI  = "\    http://www.kernel.org/pub/linux/network/connman/connman-${PV}.tar.gz \ +  file://fix-shutdown-ap-disconnect.patch \    file://connman \  " | 
