Browse Source

WPS: Fix UNSUBSCRIBE to return 412 if no SID match found

UPnP-arch-DeviceArchitecture describe ErrorCode 412 to be used for the
case where no un-epxired subscription matches. This used to return 200
which is not strictly speaking correct even though it is unlikely to
cause any problems.

Signed-off-by: Jouni Malinen <j@w1.fi>
Jouni Malinen 11 years ago
parent
commit
f34df28e93
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/wps/wps_upnp_web.c

+ 4 - 0
src/wps/wps_upnp_web.c

@@ -1207,6 +1207,10 @@ static void web_connection_parse_unsubscribe(struct upnp_wps_device_sm *sm,
 				   sa->domain_and_port : "-null-");
 			dl_list_del(&s->list);
 			subscription_destroy(s);
+		} else {
+			wpa_printf(MSG_INFO, "WPS UPnP: Could not find matching subscription to unsubscribe");
+			ret = HTTP_PRECONDITION_FAILED;
+			goto send_msg;
 		}
 	} else {
 		wpa_printf(MSG_INFO, "WPS UPnP: Unsubscribe fails (not "