Browse Source

WPS UFD: Make build conditional on CONFIG_WPS_UFD=y

Not all embedded devices have USB interface and it is useful to be able
to remove unneeded functionality from the binary. In addition, the
current implementation has some UNIX specific calls in it which may make
it not compile cleanly on all target systems.
Jouni Malinen 16 years ago
parent
commit
390cd3105d
5 changed files with 22 additions and 6 deletions
  1. 5 1
      hostapd/Makefile
  2. 6 2
      src/wps/wps.c
  3. 2 0
      src/wps/wps_common.c
  4. 4 2
      src/wps/wps_enrollee.c
  5. 5 1
      wpa_supplicant/Makefile

+ 5 - 1
hostapd/Makefile

@@ -313,12 +313,16 @@ OBJS += ../src/wps/wps_attr_process.o
 OBJS += ../src/wps/wps_dev_attr.o
 OBJS += ../src/wps/wps_enrollee.o
 OBJS += ../src/wps/wps_registrar.o
-OBJS += ../src/wps/wps_ufd.o
 NEED_DH_GROUPS=y
 NEED_SHA256=y
 NEED_CRYPTO=y
 NEED_BASE64=y
 
+ifdef CONFIG_WPS_UFD
+CFLAGS += -DCONFIG_WPS_UFD
+OBJS += ../src/wps/wps_ufd.o
+endif
+
 ifdef CONFIG_WPS_UPNP
 CFLAGS += -DCONFIG_WPS_UPNP
 OBJS += ../src/wps/wps_upnp.o

+ 6 - 2
src/wps/wps.c

@@ -299,9 +299,13 @@ struct wpabuf * wps_build_probe_req_ie(int pbc, struct wps_device_data *dev,
 
 	if (pbc)
 		methods = WPS_CONFIG_PUSHBUTTON;
-	else
+	else {
 		methods = WPS_CONFIG_LABEL | WPS_CONFIG_DISPLAY |
-			WPS_CONFIG_KEYPAD | WPS_CONFIG_USBA;
+			WPS_CONFIG_KEYPAD;
+#ifdef CONFIG_WPS_UFD
+		methods |= WPS_CONFIG_USBA;
+#endif /* CONFIG_WPS_UFD */
+	}
 
 	if (wps_build_version(ie) ||
 	    wps_build_req_type(ie, req_type) ||

+ 2 - 0
src/wps/wps_common.c

@@ -518,8 +518,10 @@ int wps_process_oob(struct wps_context *wps, int registrar)
 
 struct oob_device_data * wps_get_oob_device(char *device_type)
 {
+#ifdef CONFIG_WPS_UFD
 	if (os_strstr(device_type, "ufd") != NULL)
 		return &oob_ufd_device_data;
+#endif /* CONFIG_WPS_UFD */
 
 	return NULL;
 }

+ 4 - 2
src/wps/wps_enrollee.c

@@ -131,8 +131,10 @@ static struct wpabuf * wps_build_m1(struct wps_data *wps)
 	if (msg == NULL)
 		return NULL;
 
-	methods = WPS_CONFIG_LABEL | WPS_CONFIG_DISPLAY | WPS_CONFIG_KEYPAD |
-		  WPS_CONFIG_USBA;
+	methods = WPS_CONFIG_LABEL | WPS_CONFIG_DISPLAY | WPS_CONFIG_KEYPAD;
+#ifdef CONFIG_WPS_UFD
+	methods |= WPS_CONFIG_USBA;
+#endif /* CONFIG_WPS_UFD */
 	if (wps->pbc)
 		methods |= WPS_CONFIG_PUSHBUTTON;
 

+ 5 - 1
wpa_supplicant/Makefile

@@ -521,13 +521,17 @@ OBJS += ../src/wps/wps_attr_process.o
 OBJS += ../src/wps/wps_dev_attr.o
 OBJS += ../src/wps/wps_enrollee.o
 OBJS += ../src/wps/wps_registrar.o
-OBJS += ../src/wps/wps_ufd.o
 OBJS_h += ../src/eap_server/eap_wsc.o
 CONFIG_IEEE8021X_EAPOL=y
 NEED_DH_GROUPS=y
 NEED_SHA256=y
 NEED_BASE64=y
 
+ifdef CONFIG_WPS_UFD
+CFLAGS += -DCONFIG_WPS_UFD
+OBJS += ../src/wps/wps_ufd.o
+endif
+
 ifdef CONFIG_WPS_UPNP
 CFLAGS += -DCONFIG_WPS_UPNP
 OBJS += ../src/wps/wps_upnp.o