On Thu, 2016-11-03 at 16:22 +0530, Nishant Chaprana wrote: > This patch adds setter and getter for EAPOL config parameters :- > 1. ip_addr_go > 2. ip_addr_mask > 3. ip_addr_start > 4. ip_addr_end One thought I had here; do we care about IPv6, even eventually? If so, we should probably just do strings here instead of byte arrays. Dan > Signed-off-by: Nishant Chaprana <n.chaprana@xxxxxxxxxxx> > --- > wpa_supplicant/dbus/dbus_new_handlers_p2p.c | 63 > +++++++++++++++++++++++++++++ > 1 file changed, 63 insertions(+) > > diff --git a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c > b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c > index 73b9e20..a84dbd8 100644 > --- a/wpa_supplicant/dbus/dbus_new_handlers_p2p.c > +++ b/wpa_supplicant/dbus/dbus_new_handlers_p2p.c > @@ -28,6 +28,16 @@ > #include "../p2p_supplicant.h" > #include "../wifi_display.h" > > +static inline int wpas_dbus_validate_dbus_ipaddr(struct > wpa_dbus_dict_entry entry) > +{ > + if (entry.type != DBUS_TYPE_ARRAY || > + entry.array_type != DBUS_TYPE_BYTE || > + entry.array_len != 4) > + return 0; > + > + return 1; > +} > + > /** > * Parses out the mac address from the peer object path. > * @peer_path - object path of the form > @@ -867,6 +877,30 @@ dbus_bool_t wpas_dbus_getter_p2p_device_config( > goto err_no_mem; > } > > + /* IP Address GO */ > + if (!wpa_dbus_dict_append_byte_array(&dict_iter, "IpAddrGo", > + (char *) wpa_s->conf- > >ip_addr_go, > + 4)) > + goto err_no_mem; > + > + /* IP Address mask */ > + if (!wpa_dbus_dict_append_byte_array(&dict_iter, > "IpAddrMask", > + (char *) wpa_s->conf- > >ip_addr_mask, > + 4)) > + goto err_no_mem; > + > + /* IP Address Start*/ > + if (!wpa_dbus_dict_append_byte_array(&dict_iter, > "IpAddrStart", > + (char *) wpa_s->conf- > >ip_addr_start, > + 4)) > + goto err_no_mem; > + > + /* IP Address End*/ > + if (!wpa_dbus_dict_append_byte_array(&dict_iter, > "IpAddrEnd", > + (char *) wpa_s->conf- > >ip_addr_end, > + 4)) > + goto err_no_mem; > + > /* Vendor Extensions */ > for (i = 0; i < P2P_MAX_WPS_VENDOR_EXT; i++) { > if (wpa_s->conf->wps_vendor_ext[i] == NULL) > @@ -1051,6 +1085,35 @@ dbus_bool_t > wpas_dbus_setter_p2p_device_config( > wpa_s->conf->p2p_intra_bss = > entry.bool_value; > wpa_s->conf->changed_parameters |= > CFG_CHANGED_P2P_INTRA_BSS; > + > + } else if (os_strcmp(entry.key, "IpAddrGo") == 0) { > + if (!wpas_dbus_validate_dbus_ipaddr(entry)) > + goto error; > + > + os_memcpy(wpa_s->conf->ip_addr_go, > + entry.bytearray_value, 4); > + > + } else if (os_strcmp(entry.key, "IpAddrMask") == 0) > { > + if (!wpas_dbus_validate_dbus_ipaddr(entry)) > + goto error; > + > + os_memcpy(wpa_s->conf->ip_addr_mask, > + entry.bytearray_value, 4); > + > + } else if (os_strcmp(entry.key, "IpAddrStart") == 0) > { > + if (!wpas_dbus_validate_dbus_ipaddr(entry)) > + goto error; > + > + os_memcpy(wpa_s->conf->ip_addr_start, > + entry.bytearray_value, 4); > + > + } else if (os_strcmp(entry.key, "IpAddrEnd") == 0) { > + if (!wpas_dbus_validate_dbus_ipaddr(entry)) > + goto error; > + > + os_memcpy(wpa_s->conf->ip_addr_end, > + entry.bytearray_value, 4); > + > } else if (os_strcmp(entry.key, "GroupIdle") == 0 && > entry.type == DBUS_TYPE_UINT32) > wpa_s->conf->p2p_group_idle = > entry.uint32_value; _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap