blob: 50491ce11de33c9bedd9477039adb67af97374ba [file] [log] [blame]
From 1cc3d1a5fa18f652fcf38a0dad971d562c89c2ad Mon Sep 17 00:00:00 2001
From: Daniel Becker <razzfazz@gmail.com>
Date: Fri, 11 Dec 2015 18:08:18 -0800
Subject: [PATCH] advertise correct service and device versions when IGDv2 is
enabled
---
miniupnpd/minissdp.c | 26 +++++++++++++-------------
miniupnpd/upnpsoap.c | 4 ++++
2 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/miniupnpd/minissdp.c b/miniupnpd/minissdp.c
index e879d15..6f7008e 100644
--- a/miniupnpd/minissdp.c
+++ b/miniupnpd/minissdp.c
@@ -469,14 +469,6 @@ SendSSDPResponse(int s, const struct sockaddr * addr,
}
}
-#ifndef IGD_V2
-#define IGD_VER 1
-#define WANIPC_VER 1
-#else
-#define IGD_VER 2
-#define WANIPC_VER 2
-#endif
-
static struct {
const char * s;
const int version;
@@ -484,11 +476,22 @@ static struct {
} const known_service_types[] =
{
{"upnp:rootdevice", 0, uuidvalue_igd},
- {"urn:schemas-upnp-org:device:InternetGatewayDevice:", IGD_VER, uuidvalue_igd},
+#ifdef IGD_V2
+ {"urn:schemas-upnp-org:device:InternetGatewayDevice:", 2, uuidvalue_igd},
+ {"urn:schemas-upnp-org:device:WANConnectionDevice:", 2, uuidvalue_wcd},
+ {"urn:schemas-upnp-org:device:WANDevice:", 2, uuidvalue_wan},
+ {"urn:schemas-upnp-org:service:WANIPConnection:", 2, uuidvalue_wcd},
+ {"urn:schemas-upnp-org:service:DeviceProtection:", 1, uuidvalue_igd},
+#ifdef ENABLE_6FC_SERVICE
+ {"urn:schemas-upnp-org:service:WANIPv6FirewallControl:", 1, uuidvalue_wcd},
+#endif
+#else
+ {"urn:schemas-upnp-org:device:InternetGatewayDevice:", 1, uuidvalue_igd},
{"urn:schemas-upnp-org:device:WANConnectionDevice:", 1, uuidvalue_wcd},
{"urn:schemas-upnp-org:device:WANDevice:", 1, uuidvalue_wan},
+ {"urn:schemas-upnp-org:service:WANIPConnection:", 1, uuidvalue_wcd},
+#endif
{"urn:schemas-upnp-org:service:WANCommonInterfaceConfig:", 1, uuidvalue_wan},
- {"urn:schemas-upnp-org:service:WANIPConnection:", WANIPC_VER, uuidvalue_wcd},
#ifndef UPNP_STRICT
/* We use WAN IP Connection, not PPP connection,
* but buggy control points may try to use WanPPPConnection
@@ -498,9 +501,6 @@ static struct {
#ifdef ENABLE_L3F_SERVICE
{"urn:schemas-upnp-org:service:Layer3Forwarding:", 1, uuidvalue_igd},
#endif
-#ifdef ENABLE_6FC_SERVICE
- {"url:schemas-upnp-org:service:WANIPv6FirewallControl:", 1, uuidvalue_wcd},
-#endif
/* we might want to support urn:schemas-wifialliance-org:device:WFADevice:1
* urn:schemas-wifialliance-org:device:WFADevice:1
* in the future */
diff --git a/miniupnpd/upnpsoap.c b/miniupnpd/upnpsoap.c
index 07aa373..6ed0a9b 100644
--- a/miniupnpd/upnpsoap.c
+++ b/miniupnpd/upnpsoap.c
@@ -1126,7 +1126,11 @@ GetDefaultConnectionService(struct upnphttp * h, const char * action, const char
static const char resp[] =
"<u:%sResponse "
"xmlns:u=\"urn:schemas-upnp-org:service:Layer3Forwarding:1\">"
+#ifdef IGD_V2
+ "<NewDefaultConnectionService>%s:WANConnectionDevice:2,"
+#else
"<NewDefaultConnectionService>%s:WANConnectionDevice:1,"
+#endif
SERVICE_ID_WANIPC "</NewDefaultConnectionService>"
"</u:%sResponse>";
/* example from UPnP_IGD_Layer3Forwarding 1.0.pdf :
--
1.9.1