M7350/oe-core/meta-msm/recipes/miniupnpd/files/0001-presentation-page.patch

111 lines
2.9 KiB
Diff
Raw Permalink Normal View History

2024-09-09 08:57:42 +00:00
From b972220492f72d79d00b29d30cdae95256463f37 Mon Sep 17 00:00:00 2001
From: Ravinder Konka <rkonka@codeaurora.org>
Date: Mon, 23 Mar 2015 21:53:46 +0530
Subject: [PATCH] presentation-page
2024-09-09 08:52:07 +00:00
2024-09-09 08:57:42 +00:00
Change-Id: I75997749a17a10ac765bc63dc34d401a0e81d06d
2024-09-09 08:52:07 +00:00
---
2024-09-09 08:57:42 +00:00
upnphttp.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
2024-09-09 08:52:07 +00:00
diff --git a/upnphttp.c b/upnphttp.c
2024-09-09 08:57:42 +00:00
index a6dd865..4742090 100755
2024-09-09 08:52:07 +00:00
--- a/upnphttp.c
+++ b/upnphttp.c
@@ -28,6 +28,7 @@
#include "upnpsoap.h"
#include "upnpevents.h"
#include "upnputils.h"
+#include "upnpglobalvars.h"
2024-09-09 08:57:42 +00:00
#ifdef ENABLE_HTTPS
#include <openssl/err.h>
@@ -524,11 +525,13 @@ ProcessHTTPPOST_upnphttp(struct upnphttp
static int
checkCallbackURL(struct upnphttp * h)
{
- char addrstr[48];
+ char addrstr[48], addrstr1[48];
int ipv6;
- const char * p;
+ const char * p,*t;
unsigned int i;
-
+/*
+'<http://[fe80::6c4f:b721:4e2d:ea6%13]:49240/urn:upnp-org:serviceId:WANIPv6FC1
+/143598522>'*/
start_again:
if(h->req_CallbackOff <= 0 || h->req_CallbackLen < 10)
return 0;
@@ -542,10 +545,15 @@ start_again:
if(*p == '[') {
p++;
ipv6 = 1;
- while(*p != ']' && *p != '>' && i < (sizeof(addrstr)-1)
+ while(*p != ']' && *p != '>' && *p!='%' && i < (sizeof(addrstr)-1)
&& p < (h->req_buf + h->req_CallbackOff + h->req_CallbackLen))
addrstr[i++] = *(p++);
- } else {
+ while(*p != ']' && *p != '>' && i < (sizeof(addrstr)-1)
+ && p < (h->req_buf + h->req_CallbackOff + h->req_CallbackLen))
+ p++;
+ }
+ else
+ {
ipv6 = 0;
while(*p != '/' && *p != ':' && *p != '>' && i < (sizeof(addrstr)-1)
&& p < (h->req_buf + h->req_CallbackOff + h->req_CallbackLen))
@@ -556,6 +564,9 @@ start_again:
if(ipv6) {
#ifdef ENABLE_IPV6
struct in6_addr addr;
+
+ inet_ntop(AF_INET6,&(h->clientaddr_v6), addrstr1, 48);
+ syslog(LOG_INFO, "ADDR1= %s ADDR2%s\n",addrstr,addrstr1);
if(inet_pton(AF_INET6, addrstr, &addr) <= 0)
goto invalid;
if(!h->ipv6
@@ -701,6 +712,26 @@ ProcessHTTPUnSubscribe_upnphttp(struct u
2024-09-09 08:52:07 +00:00
}
#endif
2024-09-09 08:57:42 +00:00
+#ifdef QCMAP
2024-09-09 08:52:07 +00:00
+static void
+SendResp_presentation(struct upnphttp * h)
+{
+ char body[1024];
+ int l;
+ h->respflags = FLAG_HTML;
+
+ l = snprintf(body, sizeof(body),
+ "<HTML><HEAD><TITLE>UPnP</TITLE></HEAD>"
+ "<BODY><div style=\"text-align: center\">"
+ "<h3> UPnP is Running!</h3>"
+ "</BODY></HTML>\r\n");
+
+ BuildResp_upnphttp(h, body, l);
+ SendResp_upnphttp(h);
+ CloseSocket_upnphttp(h);
+}
2024-09-09 08:57:42 +00:00
+#endif
2024-09-09 08:52:07 +00:00
+
/* Parse and process Http Query
* called once all the HTTP headers have been received,
* so it is guaranteed that h->req_buf contains the \r\n\r\n
2024-09-09 08:57:42 +00:00
@@ -823,6 +854,12 @@ ProcessHttpQuery_upnphttp(struct upnphtt
return;
}
2024-09-09 08:52:07 +00:00
#endif
2024-09-09 08:57:42 +00:00
+#ifdef QCMAP
2024-09-09 08:52:07 +00:00
+ else if(0 == memcmp(HttpUrl, presentationurl, 19)) {
+ SendResp_presentation(h);
+ return;
+ }
2024-09-09 08:57:42 +00:00
+#endif
syslog(LOG_NOTICE, "%s not found, responding ERROR 404", HttpUrl);
Send404(h);
}
--
1.8.2.1
2024-09-09 08:52:07 +00:00