From patchwork Mon Jan 16 10:41:07 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jean-Michel Bachot X-Patchwork-Id: 136268 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "maxx.shmoo.com", Issuer "CA Cert Signing Authority" (not verified)) by ozlabs.org (Postfix) with ESMTPS id 0D40FB6F68 for ; Mon, 16 Jan 2012 21:40:57 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id DA95A9C141; Mon, 16 Jan 2012 05:40:53 -0500 (EST) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WIoBvGXknA77; Mon, 16 Jan 2012 05:40:53 -0500 (EST) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 9F5F29C1B4; Mon, 16 Jan 2012 05:40:49 -0500 (EST) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 6CD389C1B8 for ; Mon, 16 Jan 2012 05:40:48 -0500 (EST) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2K7A3+iPSkLb for ; Mon, 16 Jan 2012 05:40:43 -0500 (EST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 341D39C1B1 for ; Mon, 16 Jan 2012 05:40:43 -0500 (EST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 16 Jan 2012 02:40:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.71,315,1320652800"; d="scan'208";a="112717676" Received: from unknown (HELO localhost.localdomain) ([172.28.193.62]) by fmsmga002.fm.intel.com with ESMTP; 16 Jan 2012 02:40:40 -0800 From: Jean-Michel Bachot To: jean-michelx.bachot@linux.intel.com, fabienx.marotte@linux.intel.com, jeanx.trivelly@linux.intel.com, hostap@lists.shmoo.com Subject: [PATCH] [PATCH] P2P D-Bus: Use Persistent Group instead of Network object Date: Mon, 16 Jan 2012 11:41:07 +0100 Message-Id: <1326710467-30788-1-git-send-email-jean-michelx.bachot@intel.com> X-Mailer: git-send-email 1.7.0.4 X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com Fix the follwing issue in P2P D-Bus API : When a persistent group is started, wpa_supplicant does not create a network object but a persistent group object instead. Hence, emit the network oject wihtin the group started signal in this case does not make sense and is an error. Fix is to emit the persistent group object registered instead of network object in case of persistent group started. Signed-off-by: Jean-Michel Bachot --- wpa_supplicant/dbus/dbus_new.c | 25 ++++++++++++++++++++----- 1 files changed, 20 insertions(+), 5 deletions(-) diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c index 2bf9be8..6fd86ba 100644 --- a/wpa_supplicant/dbus/dbus_new.c +++ b/wpa_supplicant/dbus/dbus_new.c @@ -984,6 +984,8 @@ void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s, struct wpas_dbus_priv *iface; char net_obj_path[WPAS_DBUS_OBJECT_PATH_MAX]; char group_obj_path[WPAS_DBUS_OBJECT_PATH_MAX]; + char pgrp_obj_path[WPAS_DBUS_OBJECT_PATH_MAX]; + dbus_bool_t persistent_group = FALSE; iface = wpa_s->parent->global->dbus; @@ -1020,14 +1022,27 @@ void wpas_dbus_signal_p2p_group_started(struct wpa_supplicant *wpa_s, client ? "client" : "GO")) goto nomem; - os_snprintf(net_obj_path, WPAS_DBUS_OBJECT_PATH_MAX, - "%s/" WPAS_DBUS_NEW_NETWORKS_PART "/%u", - wpa_s->parent->dbus_new_path, network_id); + /* + * If it is a persistent group register it as such. + * This is to handle cases where an interface is being initialized + * with a list of networks read from config. + */ + if (network_is_persistent_group((struct wpa_ssid *)ssid)) { + persistent_group = TRUE; + os_snprintf(pgrp_obj_path, WPAS_DBUS_OBJECT_PATH_MAX, + "%s/" WPAS_DBUS_NEW_PERSISTENT_GROUPS_PART "/%u", + wpa_s->parent->dbus_new_path, network_id); + } else { + os_snprintf(net_obj_path, WPAS_DBUS_OBJECT_PATH_MAX, + "%s/" WPAS_DBUS_NEW_NETWORKS_PART "/%u", + wpa_s->parent->dbus_new_path, network_id); + } if (!wpa_dbus_dict_append_object_path(&dict_iter, "group_object", group_obj_path) || - !wpa_dbus_dict_append_object_path(&dict_iter, "network_object", - net_obj_path) || + !wpa_dbus_dict_append_object_path(&dict_iter, + persistent_group ? "persistent_group_object" : "network_object", + persistent_group ? pgrp_obj_path : net_obj_path) || !wpa_dbus_dict_close_write(&iter, &dict_iter)) goto nomem;