* Sort out Server description in HTTP headers. This actually makes Windows Media Player recognize a MiniDLNA server also.

This commit is contained in:
Justin Maggard 2009-05-10 03:24:29 +00:00
parent 4dd29bc7b7
commit bdf2c86075
12 changed files with 21 additions and 505 deletions

View File

@ -1,433 +0,0 @@
$Id$
2008/07/10:
Fixed compilation without ENABLE_L3F_SERVICE
2008/04/27:
correct UNSUBSCRIBE processing
2008/04/25(bis):
changed iptables_removeall.sh and iptables_init.sh in order
to remove IP from the rules
VERSION 1.1 :
2008/04/25:
Eventing is allmost completly implemented
2008/04/24:
Correct event handling ?
2008/04/08:
enabling tag in PF rules. quick can be set off.
2008/03/13:
implementing event notify
2008/03/11:
fixing a command line parsing error
2008/03/09:
optimisations in upnpsoap.c
2008/03/08:
optimizing upnpsoap.c for size
2008/03/06:
Worked on the Eventing : generating XML event notifications
Send initial notification after subscribe
Improved pretty print of testupnpdescgen
Reduced Memory usage of upnpdescgen
fixed a small bug in the description
2008/03/03:
Fixed miniupnpd.c for compiling without natpmp support
fixed presentationURL not there with L3F
fixing lease file creation/modification
2008/02/25:
Rewrite of Send501() and Send404()
More work on events
genconfig.sh autodetects pf/ipf
2008/02/24:
Started to implement UPnP Events. do NOT use it at the moment !
2008/02/21:
Added support for the Layer3Forwarding Service
added init_redirect() and shutdown_redirect() functions
2008/02/20:
Removed Ext: HTTP header when useless
enabled the dummy service by default to please windows XP !
2008/02/07:
upnp_enable patch by Nikos Mavrogiannopoulos.
lease_file patch by Nikos Mavrogiannopoulos.
2008/01/29:
some changes to Makefile.openwrt
use daemon() - daemonize() is still available for systems lacking daemon()
VERSION 1.0 :
2008/01/27:
moved lan_addr to upnpglobalvars.h/.c
Adding experimental multiple external IP support.
2008/01/22:
removed dummy service from description to improve compatibility
with emule client
Add "secure mode". put runtime flags in the same variable
2008/01/14:
Fixed a bug in options.c for the parsing of empty lines.
2008/01/03:
Fixed CleanExpiredNATPMP()
2008/01/02:
Adding a queue parameter for setting ALTQ in pf
2007/12/27:
improving some stuff with the PF_ENABLE_FILTER_RULE.
2007/12/22:
Adding a runtime option to enable/disable NAT-PMP
2007/12/20:
Added a cache in linux getifstats(). Please enable by editing config.h
2007/12/14:
Updating an existing NAT-PMP mapping now works
2007/12/13:
NAT-PMP code now remove expired mappings
TCP/UDP where swapped in NAT-PMP code
2007/12/04:
Adding details to the error message for sendto(udp_notify)
2007/11/27:
pf code doesn't generate filter rules by default anymore. The
#ifdef PF_ENABLE_FILTER_RULES must be uncommented in config.h.
2007/11/02:
moved some of the prototypes common to all firewalls to commonrdr.h
Added functionalities to NAT-PMP
2007/11/01:
Debugged NAT-PMP code
2007/10/28:
Cleaning and improving NAT-PMP code
2007/10/25:
improved the NAT-PMP experimental support
updated README and INSTALL files
2007/10/24:
Adding support for NAT-PMP (from apple !)
2007/10/11:
Checking the commandline for errors.
2007/10/08:
Improved the BSD/Solaris Makefile
Merging last code from Darren Reed. Solaris/IPF should work now !
added a man page.
2007/10/07:
Adding Darren Reed code for ipf.
2007/10/06:
Adding SunOS support thanks to Darren Reed.
Reorganizing os/firewall dependent code thanks to Darren Reed.
2007/09/27:
linux make install support PREFIX variable
2007/09/25:
reorganizing LAN sockets/address to improve multi LAN support.
SSDP announces are sent to all configured networks.
SSDP responses are "customized" by subnetwork.
2007/09/24:
prototype code to remove unused rules
miniupnpdctl now display current rules
synchronised add_filter_rule2() prototype between pf and netfilter code.
2007/09/19:
Correctly filling the Cache-control header in SSDP packets
2007/08/28:
update PFRULE_INOUT_COUNTS detection for FreeBSD
2007/08/27:
update version in genconfig.sh
do not error when a duplicate redirection is requested.
2007/07/16:
really fixed the compilation bug with linux>=2.6.22
2007/07/04:
fixed an error in options.c that prevented to use packet_log option
2007/07/03:
improved genconfig.sh
fixed a compilation bug with linux>=2.6.22
2007/06/22:
added PFRULE_INOUT_COUNTS macro to enable separate in/out packet and
bytes counts in pf for OpenBSD >= 3.8
2007/06/15:
removed a possible racecondition in writepidfile()
2007/06/12:
improved genconfig.sh : no more "echo -e", use lsb_release when available
2007/06/11:
get_redirect_rule*() functions now return some statistics about
rule usage (bytes and packets)
2007/06/07:
Fixed the get_redirect_desc() in the linux/netfilter code
2007/06/05:
Clean up init code in miniupnpd.c
Added a syslog message in SoapError()
2007/06/04:
Now store redirection descriptions in the linux/netfilter code
2007/05/21:
Answers to SSDP M-SEARCH requests with ST: ssdp:all
added make install to Makefile.linux
2007/05/10:
Fixed a bug int the DeletePortMapping linux/netfilter implementation
It was allways the 1st rule that was deleted.
2007/04/26:
Fixed config.h.openwrt
2007/04/16:
added something in the INSTALL file about the FreeBSD send(udp_notify)
problem fix (allowing 239.0.0.0/8 explicitely in pf.conf)
2007/03/30:
added setsockopt(s, SOL_SOCKET, SO_BROADCAST ...) for broadcasting
socket
2007/03/17:
Fixed filter rule under linux : it was using wrong port !
thanks to Wesley W. Terpstra
2007/03/01:
Moved some of the SSDP code from miniupnpd.c to minissdp.c
2007/02/28:
creating miniupnpdctl
2007/02/26:
use LOG_MINIUPNPD macro for openlog()
simplify miniupndShutdown()
2007/02/09:
improved genconfig.h
Added stuff to change the pf rule "rdr" to "rdr pass"
2007/02/07:
Corrected Bytes per seconds to bits per second.
Ryan cleaned up comments and typos.
Ryan cleaned up daemonize stuff.
Ryan added possibility to configure model number and serial number
2007/01/30:
ryan improved the robustness of most UPnP Soap methods
I added a target in the Makefiles to properly generate an uuid using
command line tools.
Improved configuration file parsing.
2007/01/29:
Adding uuid option in miniupnpd.conf
2007/01/27:
Added upnppermissions stuff : adding some security to UPnP !
fixed XML description thanks to Ryan Wagoner
improved QueryStateVariable thanks to Ryan Wagoner
2007/01/22:
use getifaddr() for each GetExtenalIPAddress() Call.
We can change the ip during execution without pb
2007/01/17:
Lots of code cleanup
2007/01/12:
Fixed a nasty bug in the linux/netfilter version of get_filter_rule()
2007/01/11:
Improved the handling of the miniupnpd.conf file.
added -f option to choose which config file to read.
2007/01/10:
Fixed potential bugs with ClearNameValueList()
2007/01/08:
All by Ryan Wagoner :
- coding style and comments cleanup
- using now option file miniupnpd.conf
2007/01/03:
changed "xx active incoming HTTP connections" msg
2007/01/02:
Patch from Ryan Wagoner :
- no need to open sockets if we can't set the error handlers
- format the usage so it fits nicely on a standard size terminal
- fix up log_err message so they have the same format and you know what
they are related to
- use same "white space" style throughout
- on shutdown no need to continue if opening socket or setsockopt fails
2006/12/14:
reduce amount of log lines (keeping the same information)
2006/12/07:
Fixed Makefiles
fixed typos in logs
version 1.0-RC1 released
2006/12/02:
moved strings from upnpdescgen.c to upnpdescstrings.h for
easier modification
Server: HTTP header now comes from a #define
added a compilation-time generated config.h
2006/11/30:
minixml updated. should have no impact
Added support for presentationURL with -w switch
implemented getifstats() for linux. Added testgetifstats program
improved error handling in getifstats() BSD
2006/11/26:
no need to have miniupnpc sources to compile miniupnpd.
Makefile.openwrt updated
Closing sockets on exit thanks to Ryan Wagoner
2006/11/23:
now handling signal SIGINT
setting HTTP socket with REUSEADDR thanks to Ryan Wagoner
daemon now tested on a Linksys WRT54G device running OpenWRT !
2006/11/21:
disabling rtableid in pf code.
2006/11/22:
Also responds on M-SEARCH with the uuid
2006/11/20:
gaining some space in upnpsoap.c
2006/11/19:
Cleaning up code to comply with ANSI C89
2006/11/17:
Linux version now deleting both nat and accept rules
implemented -U option under Linux
2006/11/16:
implemented delete_redirect_rule() for linux
returning error 714 in DeletePortMapping() when needed
2006/11/12:
The linux/netfilter version should now WORK !
fix in the writepidfile() function. open with a mode !
2006/11/10:
fixing the XML description generation for big endian machines
working on the linux/netfilter port
2006/11/09:
improved a lot the handling of HTTP error cases
2006/11/08:
Tried to make the Makefile compatible with both BSDmake
and GNUmake. It was hard because of $^ and $<
2006/11/07:
Makefile compatible with BSD make
make install target.
getifstats.c compatible with both OpenBSD and FreeBSD.
2006/11/06:
added getifstats.c for openBSD. May not work under FreeBSD ?
now reports bytes/packets sent/received
reporting bitrates
possibility to report system uptime
2006/10/29:
added a -L option to enable loggin (is off by default now).
2006/10/28:
Patch by Ryan Wagoner to correct the XML description (was NewUpTime
instead of NewUptime) and implement uptime.
Trying to fix the memory leak. Added some comments
added a -d option for debugging purpose
Tnaks to valgrind (under linux!) I removed a small memory access error.
2006/10/27:
Thanks to a patch sent by Michael van Tellingen, miniupnpd is
now ignoring NOTIFY packets sent by other devices and is
writing is own pid to /var/run/miniupnpd.pid
2006/10/23:
Allways set sendEvents="no" in XML description (was causing
pb with winXP as SUBSCRIBE is not implemented)
2006/10/22:
added translation from hostname to IP in the AddPortMapping() method
Thanks to Ryan Wagoner.
2006/10/18:
Added an INSTALL file
2006/10/13:
Added the possibility to change the notify interval
2006/09/29:
Improved compliance of the XML Descriptions
pretty print for testupnpdescgen
2006/09/25:
improved the Error 404 response.
Better serviceType and serviceId for dummy service...
2006/09/24:
updating the XML description generator
2006/09/18:
Thanks to Rick Richard, support for SSDP "alive" and "byebye" notifications
was added. The -u options was also added. The SSDP response are now
improved.
The -o option is now working (to force a specific external IP address).
The Soap Methods errors are correctly responded (401 Invalid Action)
2006/09/09:
Added code to handle filter rules. Thanks to Seth Mos (pfsense.com)
storing the descriptions in the label of the rule
2006/09/02:
improved the generation of the XML descriptions.
I still need to add allowed values to variables.
2006/07/29:
filtering SSDP requests and responding with same ST: field
2006/07/25:
Added a dummy description for the WANDevice
2006/07/20:
Command line arguments processing
Added possibility to listen internally on several interfaces

View File

@ -105,8 +105,8 @@ case $OS_NAME in
# NETGEAR ReadyNAS special case # NETGEAR ReadyNAS special case
if [ -f /etc/raidiator_version ]; then if [ -f /etc/raidiator_version ]; then
OS_NAME=$(awk -F'!!|=' '{ print $1 }' /etc/raidiator_version) OS_NAME=$(awk -F'!!|=' '{ print $1 }' /etc/raidiator_version)
OS_VERSION=$(awk -F'!!|[=,]' '{ print $3 }' /etc/raidiator_version) OS_VERSION=$(awk -F'!!|[=,.]' '{ print $3"."$4 }' /etc/raidiator_version)
OS_URL=http://www.readynas.com/ OS_URL="http://www.readynas.com/"
DB_PATH="/var/cache/minidlna" DB_PATH="/var/cache/minidlna"
TIVO="#define TIVO_SUPPORT" TIVO="#define TIVO_SUPPORT"
READYNAS="#define READYNAS" READYNAS="#define READYNAS"

View File

@ -4,8 +4,8 @@
* This software is subject to the conditions detailed * This software is subject to the conditions detailed
* in the LICENCE file provided within the distribution */ * in the LICENCE file provided within the distribution */
#ifndef __MINIUPNPDPATH_H__ #ifndef __MINIDLNAPATH_H__
#define __MINIUPNPDPATH_H__ #define __MINIDLNAPATH_H__
#include "config.h" #include "config.h"

View File

@ -3,8 +3,8 @@
* (c) 2006-2007 Thomas Bernard * (c) 2006-2007 Thomas Bernard
* This software is subject to the conditions detailed * This software is subject to the conditions detailed
* in the LICENCE file provided within the distribution */ * in the LICENCE file provided within the distribution */
#ifndef __MINIUPNPDTYPES_H__ #ifndef __MINIDLNATYPES_H__
#define __MINIUPNPDTYPES_H__ #define __MINIDLNATYPES_H__
#include "config.h" #include "config.h"
#include <netinet/in.h> #include <netinet/in.h>

View File

@ -214,7 +214,7 @@ SendSSDPAnnounce2(int s, struct sockaddr_in sockname,
"ST: %.*s%s\r\n" "ST: %.*s%s\r\n"
"USN: %s::%.*s%s\r\n" "USN: %s::%.*s%s\r\n"
"EXT:\r\n" "EXT:\r\n"
"SERVER: " MINIUPNPD_SERVER_STRING "\r\n" "SERVER: " MINIDLNA_SERVER_STRING "\r\n"
"LOCATION: http://%s:%u" ROOTDESC_PATH "\r\n" "LOCATION: http://%s:%u" ROOTDESC_PATH "\r\n"
"Content-Length: 0\r\n" "Content-Length: 0\r\n"
"\r\n", "\r\n",
@ -266,7 +266,7 @@ SendSSDPNotifies(int s, const char * host, unsigned short port,
"HOST:%s:%d\r\n" "HOST:%s:%d\r\n"
"CACHE-CONTROL:max-age=%u\r\n" "CACHE-CONTROL:max-age=%u\r\n"
"LOCATION:http://%s:%d" ROOTDESC_PATH"\r\n" "LOCATION:http://%s:%d" ROOTDESC_PATH"\r\n"
"SERVER: " MINIUPNPD_SERVER_STRING "\r\n" "SERVER: " MINIDLNA_SERVER_STRING "\r\n"
"NT:%s%s\r\n" "NT:%s%s\r\n"
"USN:%s::%s%s\r\n" "USN:%s::%s%s\r\n"
"NTS:ssdp:alive\r\n" "NTS:ssdp:alive\r\n"

View File

@ -479,7 +479,6 @@ static const struct argument GetTotalPacketsReceivedArgs[] =
static const struct serviceDesc scpdContentDirectory = static const struct serviceDesc scpdContentDirectory =
{ ContentDirectoryActions, ContentDirectoryVars }; { ContentDirectoryActions, ContentDirectoryVars };
//{ ContentDirectoryActions, ContentDirectoryVars };
static const struct serviceDesc scpdConnectionManager = static const struct serviceDesc scpdConnectionManager =
{ ConnectionManagerActions, ConnectionManagerVars }; { ConnectionManagerActions, ConnectionManagerVars };
@ -626,21 +625,12 @@ genRootDesc(int * len)
str = (char *)malloc(tmplen); str = (char *)malloc(tmplen);
if(str == NULL) if(str == NULL)
return NULL; return NULL;
#if 1
* len = strlen(xmlver); * len = strlen(xmlver);
/*strcpy(str, xmlver); */ /*strcpy(str, xmlver); */
memcpy(str, xmlver, *len + 1); memcpy(str, xmlver, *len + 1);
str = genXML(str, len, &tmplen, rootDesc); str = genXML(str, len, &tmplen, rootDesc);
str[*len] = '\0'; str[*len] = '\0';
return str; return str;
#else
char *ret = calloc(1, 8192);
sprintf(ret, "<?xml version='1.0' encoding='UTF-8' ?>\r\n"
"<root xmlns=\"urn:schemas-upnp-org:device-1-0\" xmlns:dlna=\"urn:schemas-dlna-org:device-1-0\"><specVersion><major>1</major><minor>0</minor></specVersion><device><deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType><friendlyName>MiniDLNA (MaggardMachine2)</friendlyName><manufacturer>NETGEAR</manufacturer><manufacturerURL>http://www.netgear.com</manufacturerURL><modelDescription>NETGEAR ReadyNAS NV</modelDescription><modelName>ReadyNAS</modelName><modelNumber>NV</modelNumber><modelURL>http://www.netgear.com</modelURL><UDN>uuid:aefc3d94-8cf7-11dd-b3bb-ff0d6f9a7e6d</UDN><dlna:X_DLNADOC>DMS-1.50</dlna:X_DLNADOC>\r\n"
"<serviceList><service><serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType><serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId><SCPDURL>/ConnectionMgr.xml</SCPDURL><controlURL>/ctl/ConnectionMgr</controlURL><eventSubURL>/evt/ConnectionMgr</eventSubURL></service><service><serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType><serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId><SCPDURL>/ContentDir.xml</SCPDURL><controlURL>/ctl/ContentDir</controlURL><eventSubURL>/evt/ContentDir</eventSubURL></service></serviceList></device></root>");
* len = strlen(ret);
return ret;
#endif
} }
/* genServiceDesc() : /* genServiceDesc() :

View File

@ -9,14 +9,16 @@
#include "config.h" #include "config.h"
/* strings used in the root device xml description */ /* strings used in the root device xml description */
#define ROOTDEV_MANUFACTURERURL OS_URL
#ifdef READYNAS #ifdef READYNAS
#define ROOTDEV_MANUFACTURER "NETGEAR" #define ROOTDEV_MANUFACTURER "NETGEAR"
#define ROOTDEV_MODELNAME "Windows Media Connect compatible (ReadyDLNA)"
#define ROOTDEV_MODELDESCRIPTION "ReadyDLNA on ReadyNAS RAIDiator OS"
#else #else
#define ROOTDEV_MANUFACTURER "Justin Maggard" #define ROOTDEV_MANUFACTURER "Justin Maggard"
#define ROOTDEV_MODELNAME "Windows Media Connect compatible (MiniDLNA)"
#define ROOTDEV_MODELDESCRIPTION "MiniDLNA on " OS_NAME
#endif #endif
#define ROOTDEV_MANUFACTURERURL OS_URL
#define ROOTDEV_MODELNAME "Windows Media Connect compatible (minidlna)"
#define ROOTDEV_MODELDESCRIPTION OS_NAME " *ReadyNAS dev DLNA"
#define ROOTDEV_MODELURL OS_URL #define ROOTDEV_MODELURL OS_URL
#endif #endif

View File

@ -447,7 +447,7 @@ void upnpevents_processfds(fd_set *readset, fd_set *writeset)
} }
} }
#ifdef USE_MINIUPNPDCTL #ifdef USE_MINIDLNACTL
void write_events_details(int s) { void write_events_details(int s) {
int n; int n;
char buff[80]; char buff[80];

View File

@ -824,13 +824,11 @@ Process_upnphttp(struct upnphttp * h)
static const char httpresphead[] = static const char httpresphead[] =
"%s %d %s\r\n" "%s %d %s\r\n"
/*"Content-Type: text/xml; charset=\"utf-8\"\r\n"*/
"Content-Type: %s\r\n" "Content-Type: %s\r\n"
"Connection: close\r\n" "Connection: close\r\n"
"Content-Length: %d\r\n" "Content-Length: %d\r\n"
/*"Server: miniupnpd/1.0 UPnP/1.0\r\n"*/ "Server: " MINIDLNA_SERVER_STRING "\r\n"
// "Accept-Ranges: bytes\r\n" // "Accept-Ranges: bytes\r\n"
//"Server: " MINIUPNPD_SERVER_STRING "\r\n"
; /*"\r\n";*/ ; /*"\r\n";*/
/* /*
"<?xml version=\"1.0\"?>\n" "<?xml version=\"1.0\"?>\n"
@ -884,9 +882,6 @@ BuildHeader_upnphttp(struct upnphttp * h, int respcode,
"SID: %s\r\n", h->req_SID); "SID: %s\r\n", h->req_SID);
} }
#if 0 // DLNA #if 0 // DLNA
h->res_buflen += snprintf(h->res_buf + h->res_buflen,
h->res_buf_alloclen - h->res_buflen,
"Server: Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0\r\n");
char szTime[30]; char szTime[30];
time_t curtime = time(NULL); time_t curtime = time(NULL);
strftime(szTime, 30,"%a, %d %b %Y %H:%M:%S GMT" , gmtime(&curtime)); strftime(szTime, 30,"%a, %d %b %Y %H:%M:%S GMT" , gmtime(&curtime));
@ -1046,7 +1041,7 @@ SendResp_icon(struct upnphttp * h, char * icon)
"Content-Length: %d\r\n" "Content-Length: %d\r\n"
"Connection: close\r\n" "Connection: close\r\n"
"Date: %s\r\n" "Date: %s\r\n"
"Server: RAIDiator/4.1, UPnP/1.0, MiniDLNA/1.0\r\n\r\n", "Server: " MINIDLNA_SERVER_STRING "\r\n\r\n",
mime, size, date); mime, size, date);
if( (send_data(h, header, strlen(header)) == 0) && (h->req_command != EHead) ) if( (send_data(h, header, strlen(header)) == 0) && (h->req_command != EHead) )
@ -1110,7 +1105,7 @@ SendResp_albumArt(struct upnphttp * h, char * object)
"Date: %s\r\n" "Date: %s\r\n"
"EXT:\r\n" "EXT:\r\n"
"contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n" "contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n"
"Server: RAIDiator/4.1, UPnP/1.0, MiniDLNA/1.0\r\n", "Server: " MINIDLNA_SERVER_STRING "\r\n",
size, date); size, date);
if( h->reqflags & FLAG_XFERBACKGROUND ) if( h->reqflags & FLAG_XFERBACKGROUND )
@ -1190,7 +1185,7 @@ SendResp_thumbnail(struct upnphttp * h, char * object)
"Date: %s\r\n" "Date: %s\r\n"
"EXT:\r\n" "EXT:\r\n"
"contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n" "contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n"
"Server: RAIDiator/4.1, UPnP/1.0, MiniDLNA/1.0\r\n", "Server: " MINIDLNA_SERVER_STRING "\r\n",
ed->size, date); ed->size, date);
if( h->reqflags & FLAG_XFERBACKGROUND ) if( h->reqflags & FLAG_XFERBACKGROUND )
@ -1353,7 +1348,7 @@ SendResp_resizedimg(struct upnphttp * h, char * object)
"Date: %s\r\n" "Date: %s\r\n"
"EXT:\r\n" "EXT:\r\n"
"contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n" "contentFeatures.dlna.org: DLNA.ORG_PN=JPEG_TN\r\n"
"Server: RAIDiator/4.1, UPnP/1.0, MiniDLNA_TN/1.0\r\n", "Server: " MINIDLNA_SERVER_STRING "\r\n",
h->HttpVer, size, date); h->HttpVer, size, date);
if( h->reqflags & FLAG_XFERINTERACTIVE ) if( h->reqflags & FLAG_XFERINTERACTIVE )
@ -1550,7 +1545,7 @@ SendResp_dlnafile(struct upnphttp * h, char * object)
"Date: %s\r\n" "Date: %s\r\n"
"EXT:\r\n" "EXT:\r\n"
"contentFeatures.dlna.org: DLNA.ORG_PN=%s\r\n" "contentFeatures.dlna.org: DLNA.ORG_PN=%s\r\n"
"Server: RAIDiator/4.1, UPnP/1.0, MiniDLNA/1.0\r\n\r\n", "Server: " MINIDLNA_SERVER_STRING "\r\n\r\n",
date, last_file.dlna); date, last_file.dlna);
strcat(header, hdr_buf); strcat(header, hdr_buf);

View File

@ -14,7 +14,7 @@
#include "config.h" #include "config.h"
/* server: HTTP header returned in all HTTP responses : */ /* server: HTTP header returned in all HTTP responses : */
#define MINIUPNPD_SERVER_STRING OS_VERSION " UPnP/1.0 miniupnpd/1.0" #define MINIDLNA_SERVER_STRING OS_VERSION " UPnP/1.0 MiniDLNA/1.0"
/* /*
states : states :

View File

@ -81,31 +81,6 @@ GetValueFromNameValueList(struct NameValueParserData * pdata,
return p; return p;
} }
#if 0
/* useless now that minixml ignores namespaces by itself */
char *
GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata,
const char * Name)
{
struct NameValue * nv;
char * p = NULL;
char * pname;
for(nv = pdata->head.lh_first;
(nv != NULL) && (p == NULL);
nv = nv->entries.le_next)
{
pname = strrchr(nv->name, ':');
if(pname)
pname++;
else
pname = nv->name;
if(strcmp(pname, Name)==0)
p = nv->value;
}
return p;
}
#endif
/* debug all-in-one function /* debug all-in-one function
* do parsing then display to stdout */ * do parsing then display to stdout */
#ifdef DEBUG #ifdef DEBUG

View File

@ -1036,19 +1036,6 @@ QueryStateVariable(struct upnphttp * h, const char * action)
"Connected", action); "Connected", action);
BuildSendAndCloseSoapResp(h, body, bodylen); BuildSendAndCloseSoapResp(h, body, bodylen);
} }
#if 0
/* not useful */
else if(strcmp(var_name, "ConnectionType") == 0)
{
bodylen = snprintf(body, sizeof(body), resp, "IP_Routed");
BuildSendAndCloseSoapResp(h, body, bodylen);
}
else if(strcmp(var_name, "LastConnectionError") == 0)
{
bodylen = snprintf(body, sizeof(body), resp, "ERROR_NONE");
BuildSendAndCloseSoapResp(h, body, bodylen);
}
#endif
else else
{ {
DPRINTF(E_WARN, L_HTTP, "%s: Unknown: %s\n", action, var_name?var_name:""); DPRINTF(E_WARN, L_HTTP, "%s: Unknown: %s\n", action, var_name?var_name:"");