Commit Graph

557 Commits

Author SHA1 Message Date
Fabrice Fontaine
f27461c871 Adding configure options
Adding --disable-ssdp, --disable-soap, --disable-gena options to
configure script.
(cherry picked from commit 601332f88f)
2012-03-09 12:15:03 -03:00
Fabrice Fontaine
10ad771410 Bug fix of last commit
_snprintf was wrongly defined in ssdp_server.c
(cherry picked from commit e95b4cc53a)
2012-03-09 11:21:40 -03:00
Fabrice Fontaine
d19c0757dc SF Bug Tracker id 3499781 - msvc doesn't have snprintf
Submitted: Yoichi NAKAYAMA ( yoichi ) - 2012-03-08 10:18:39 PST

97a17ff5ad commit breaks build on
windows/msvc since there is no snprintf.

Note:
* Some existing sources use _snprintf when WIN32 is defined, but its
behavior is a bit different from C99 snprintf.
* snprintf does terminate the buffer, so the commit (use buffer size
minus 1 as argument) changes the behavior at the boundary.
* Truncation might be better than crash in some cases. But it may
result in not good.

(forward port of commit e722d8c375)
2012-03-09 11:21:40 -03:00
Marcelo Roberto Jimenez
4bd3b6b969 SF Bug Tracker id 3499878 - UpnpUnSubscribeAsync(): ‘retVal’ may be used uninitialized
Submitted: Marcelo Roberto Jimenez ( mroberto ) - 2012-03-08 12:38:57 PST

src/api/upnpapi.c: In function ‘UpnpUnSubscribeAsync’:
src/api/upnpapi.c:2060:6: warning: ‘retVal’ may be used uninitialized in this function
(cherry picked from commit 29ee36b1ca)
2012-03-08 17:42:36 -03:00
Fabrice Fontaine
10805cb8cc Memory leaks correction in upnpapi.c
Fix memory leaks in UpnpUnSubscribe, SendActionExAsync and
RenewSubscription.
(cherry picked from commit 3ab8d536a0)
2012-03-08 13:08:52 -03:00
Fabrice Fontaine
0edaf3361d Remove most of strcpy, sprintf and strcat
Replace strcpy, sprintf and strcat by strncpy, snprintf and strncat to
avoid buffer overflows.

(forward port of commit 97a17ff5ad)
2012-03-08 13:08:52 -03:00
Fabrice Fontaine
beae2ea332 Check for NULL pointer in TemplateSource.h
calloc can return NULL so check for NULL pointer in CLASS##_new and
CLASS##_dup.
2012-03-08 17:55:19 +01:00
Fabrice Fontaine
666bc7392b Replace strcpy with strncpy in get_hoststr
Replace strcpy with strncpy to avoid buffer overflow.
2012-03-08 17:23:46 +01:00
Fabrice Fontaine
eb16f52b1a Memory leak fix in handle_query_variable
variable was never freed.
2012-03-08 14:30:33 +01:00
Yoichi NAKAYAMA
4fd84cbee1 SF Bug Tracker id 3497714 - Buffer overflows
Fix compile error on WIN32.

Local variables must be declared first.
Remove outdated comment.

(forward port of commit 4c3532585d)
2012-03-07 16:23:17 -03:00
Fabrice Fontaine
0b2a4e580e Remove SIZEOF_MISTACH error in notify_send_and_recv
Replace sizeof(CRLF) by strlen(CRLF) as CRLF is a const char*.
(cherry picked from commit cec9d55c4c)
2012-03-07 16:16:51 -03:00
Fabrice Fontaine
81f10bcffb SF Bug Tracker id 3498439 - Memory leak in removeServiceTable
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-07 02:35:46 PST

UDN is not freed.
(cherry picked from commit 0469388b73)
2012-03-07 16:03:13 -03:00
Fabrice Fontaine
d4c20442fc Removing two unused variables in ssdp_server.c
Removing first TempPtr allocation in unique_service_name as well as one
of the dbgStr allocation in AdvertizeAndReply as those values were not
used.
(cherry picked from commit 7ef089b09a)
2012-03-06 20:31:49 -03:00
Fabrice Fontaine
d6db7c555d SF Bug Tracker id 3497714 - Buffer overflows
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-06 07:36:08 PST

Call to strcpy should be replaced by call to memset and strncpy to
avoid getting buffer overflows.
2012-03-06 20:31:49 -03:00
Fabrice Fontaine
75fdad1108 SF Bug Tracker id 3497140 - Bug fix in http_get_code_text
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 13:07:03 PST

Replace if( statusCode < 100 && statusCode >= 600 ) which can't be true
by if( statusCode < 100 || statusCode >= 600 ).
(cherry picked from commit 1a1570fe0f)
2012-03-06 20:06:29 -03:00
Fabrice Fontaine
d4ff4ecc86 SF Bug Tracker id 3497126 - Resource leak in http_RecvPostMessage
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 12:33:59 PST

Fp is not closed when an error is raised on membuffer_append or
sock_read.
(cherry picked from commit 30badb44c7)
2012-03-06 20:06:22 -03:00
Yoichi NAKAYAMA
8ffb52e330 SF Bug Tracker id 3417134 - Crash seen in UpnpFinish
Submitted: Sunil ( sunilangadi ) - 2011-10-02 08:28:47 PDT

Details: I observed crash in the below mentioned log statement in
function upnpfinish(file: upnpapi.c).
UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__, "Exiting UpnpFinish:
	UpnpSdkInit is :%d:\n", UpnpSdkInit);

In particular it was crashing in ithread_self in
UpnpDisplayFileAndLine(file upnpdebug.c) on WIN32.

Moving the call ithread_cleanup_library() below the upnp printf call
mentioned above in function upnpfinish fixed the crash but I couldn't get
to the root of the problem.

The problem was observed on WIN32.
(cherry picked from commit e5887c9036)
2012-03-05 15:07:08 -03:00
Fabrice Fontaine
4b7aa238e7 SF Bug Tracker id 3497034 - Buffer not null terminated in UpnpGetIfInfo
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:43:52 PST

gIF_NAME might be not null terminated.
(cherry picked from commit eeab71082f)
2012-03-05 14:38:18 -03:00
Fabrice Fontaine
d1a4925359 SF Bug Tracker id 3497033 - Buffer not null terminated in UpnpInit
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:42:18 PST

gIF_IPV4, gIF_IPV6 and gIF_IPV6_ULA_GUA might be not null terminated.
Moreover, gIF_IPV4 should be 16 characters (INET_ADDRSTRLEN) and not 22
and gIF_IPV6 should be 46 characters (INET6_ADDRSTRLEN) and not 65.
(cherry picked from commit f6e88d5b0a)
2012-03-05 14:38:18 -03:00
Fabrice Fontaine
7264f892e7 Bug fix of lastest commit (parse_hostport)
Missing parenthesis in memset.
(cherry picked from commit add51536fc)
2012-03-05 14:38:17 -03:00
Fabrice Fontaine
898fb30183 SF Bug Tracker id 3497027 - Buffer not null terminated in parse_hostport
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 06:28:38 PST

workbuf might be not null terminated.
(cherry picked from commit 40864da7c1)
2012-03-05 14:38:17 -03:00
Fabrice Fontaine
a0951e3753 SF Bug Tracker id 3497009 - Resource leak in http_SendMessage
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 05:51:44 PST

Fp is not closed if fseeko(Fp, Instr->RangeOffset, SEEK_CUR) does not return 0.
(cherry picked from commit 5caaf3ad07)
2012-03-05 14:38:17 -03:00
Fabrice Fontaine
b5061149a6 HInfo->ServiceTable initialization in UpnpRegisterRootDevice2 and UpnpRegisterRootDevice4
Initialize also HInfo->ServiceTable in UpnpRegisterRootDevice2 and
UpnpRegisterRootDevice4 functions
(cherry picked from commit 26c3f87eca)
2012-03-05 10:33:30 -03:00
Yoichi NAKAYAMA
7dd2d33382 Initialize ServiceTable.
(cherry picked from commit 20372ccef6)
2012-03-05 10:33:30 -03:00
Yoichi NAKAYAMA
4f84435528 Add error handling.
(cherry picked from commit 47c86542bc)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
07489c1155 SF Bug Tracker id 3496942 - Memory leak in config_description_doc
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 01:55:54 PST

element was not freed if membuffer_append_str(&url_str, "http://") does
not return 0. Moreover addNew was not used.
(cherry picked from commit da244683cf)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
1dbcdaef98 SF Bug Tracker id 3496938 - Missing structures initialisation in some functions
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 01:31:16 PST

Memsetting to 0 some of the structures: finfo in process_request,
job in readFromSSDPSocket, request in http_OpenHttpGetEx, job in
genaNotifyThread, job in genaNotifyAllExt, job in genaNotifyAll,
job in genaInitNotifyExt, job in genaInitNotify, LocalAddr in
getlocalhostname.
(cherry picked from commit 7301f46269)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
f25c62e65c SF Bug Tracker id 3496934 - Memory leaks in getlocalhostname and UpnpGetIfInfo
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 01:25:42 PST

LocalSock is not closed if ioctl(LocalSock, SIOCGIFCONF, &ifConf);
returns an error.
(cherry picked from commit bd203e780e)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
078b4cf2c6 SF Bug Tracker id 3496933 - Out-of-bounds access in CheckOtherHTTPHeaders
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-05 01:15:34 PST

An out-of-bands access is raised because size of
RespInst->AcceptLanguageHeader is 200 and TmpBuf size is 180.
(cherry picked from commit 69f3fe2330)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
0eb4101492 Remove unused currentDevice variable in removeServiceTable
currentDevice is not used in this function.
(cherry picked from commit 52df3081df)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
1480623410 SF Bug Tracker id 3496581 - Memory leak in getServiceList
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-03-03 08:43:23 PST

serviceNodeList is not freed if
current->next = malloc(sizeof(service_info)); returns NULL.
(cherry picked from commit 71e77a5b27)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
89c174cc71 SF Bug Tracker id 3495286 - Double free in get_action_node
Submitted: Fabrice Fontaine ( ffontaine ) - 2012-02-28 04:27:54 PST

ixmlFreeDOMString(ActNodeName); is called twice if
ixmlParseBufferEx(ActNodeName, RespNode); does not return IXML_SUCCESS.
(cherry picked from commit 0693adc7dc)
2012-03-05 10:33:30 -03:00
Fabrice Fontaine
9125d82010 SF Bug Tracker id 3494865 - Use of non-initialized variable in parser_parse_requestline
Submitted: Marcelo Roberto jimenez ( mroberto ) - 2012-02-26 16:50:23 PST

src/genlib/net/http/httpparser.c: In function ‘parser_parse_requestline’:
src/genlib/net/http/httpparser.c:1319:28: warning: ‘index’ may be used uninitialized in this function
2012-02-29 15:44:18 +01:00
Marcelo Roberto Jimenez
81da3d004a SF Bug Tracker id 3489999 - UpnpString leaks in genaSubscribe()
Submitted: Yoichi NAKAYAMA ( yoichi ) - 2012-02-21 07:06:35 PST

In genaSubscribe() (defined in upnp/src/gena/gena_ctrlpt.c),
ActualSID and EventURL will not be freed if ScheduleGenaAutoRenew
returns UPNP_E_SUCCESS.

This fixes the an issue introduced by the previous fix.
2012-02-26 21:45:01 -03:00
Marcelo Roberto Jimenez
76c7fc26eb SF Bug Tracker id 3489999 - UpnpString leaks in genaSubscribe()
Submitted: Yoichi NAKAYAMA ( yoichi ) - 2012-02-21 07:06:35 PST

In genaSubscribe() (defined in upnp/src/gena/gena_ctrlpt.c),
ActualSID and EventURL will not be freed if ScheduleGenaAutoRenew
returns UPNP_E_SUCCESS.

This fixes the original issue.
(cherry picked from commit bc473d5e68)

Conflicts:

	upnp/src/gena/gena_ctrlpt.c
2012-02-26 01:19:47 -03:00
Marcelo Roberto Jimenez
c222fd9a01 Merge branch 'chandra' into master
Conflicts:
	upnp/src/api/upnpapi.c
	upnp/src/genlib/net/http/httpreadwrite.c
	upnp/src/genlib/net/sock.c
2012-02-25 23:46:35 -03:00
Chandra Penke
20b3fe3c48 My squashed commits 2012-02-25 23:38:22 -02:00
Chandra Penke
8eec345e49 Refactor HTTP Client API 2012-02-25 23:38:21 -02:00
Marcelo Roberto Jimenez
7641dab89e SF Bug Tracker: UpnpString leaks in genaSubscribe()
In genaSubscribe() (defined in upnp/src/gena/gena_ctrlpt.c),
ActualSID and EventURL will not be freed.
(cherry picked from commit 2940cbf94a)
2012-02-23 16:31:42 -02:00
Marcelo Roberto Jimenez
cf0f53bb63 SF Bug Tracker: http lib only accepts HTTP/1.1 - ID:3485745
Submitted by Berend Dekens ( Berend Dekens ) - 2012-02-08 06:24:31 PST

In httpparser.c on line 1385 it says that HTTP 1.0 replies are blocked
because the UPnP verfication tool requires this.

I looked in the specs and as far as I can find, one should only be
carefull to send chunked communication to hosts supporting HTTP 1.1.
There is no requirement to support only HTTP 1.1.

The XBMC media server uses the Platinum UPnP library which replies
using HTTP/1.0 messages. As it is now, libupnp returns an error while
trying to parse the response while the response itself is completely
valid.

Is there a requirement in the UPnP 1.0 spec that I missed or is this
restriction self-imposed? And can it be lifted?

-------------------------------------------------------------------

Comment by Fabrice Fontaine:

Hide
Hi,

You're right, this modification should be removed. This version checking
was wrongly added in parser_parse_responseline function.

...
(cherry picked from commit d87c966ec5)
2012-02-23 15:31:30 -02:00
Marcelo Roberto Jimenez
3bb8f59a1b White spaces.
(cherry picked from commit e88d9dbedc)
2012-02-23 15:31:23 -02:00
Fabrice Fontaine
a04c597cdb Bug fix for IPv4-mapped IPv6 addresses.
Setting IPv6 sockets with IPV6_V6ONLY flag to avoid getting IP packets
with IPv4-mapped IPv6 addresses on IPv6 sockets.
(cherry picked from commit 33fcfeb79f)
2012-02-18 16:08:14 -02:00
Edwin Stearns
2bb8c35ce1 Be nice to a server that returns its URL without a trailing slash
Attached is a patch that resolved an issue I found with a server that
gave its device description URI without a trailing slash (e.g.
`http://127.0.0.1:5555`).
(cherry picked from commit a9c24fc7f3)
2012-02-18 11:42:30 -02:00
Fabrice Fontaine
c7b340833f Bug fix on M-SEARCH for IPv6 CPs.
Small bug fix on IPv6 Control Point: now CP will also send M-SEARCH on
site-scope address (FF05::C) instead of only sending M-SEARCH on
link-scope (FF02::C).
2012-01-25 10:15:12 -02:00
Marcelo Roberto Jimenez
ea7610ca3c Fix for return value of UpnpResolveURL and UpnpResolveURL2
SF Bug tracker, ID: 3469344
	Submitted: dimmman ( dimmman ) - 2012-01-04 01:44:29 PST
	Details: Looking at the code (v1.6.14, upnptools.c) for UpnpResolveURL
	and UpnpResolveURL2 it shows that the ExitFunction: always returns
	UPNP_E_SUCCESS.

	I'm farily sure it's a simple mistake that should have been "return ret;"
	in both cases.

	Br,
	Jonny
(cherry picked from commit 3b33626e2f)
2012-01-09 09:00:56 -02:00
Fabrice Fontaine
4b82bb7baf UPnP Low Power support
Adding two new functions (UpnpSendAdvertisementLowPower and
UpnpUnRegisterRootDeviceLowPower) which can be used to specify values
for the three SSDP headers defined by UPnP Low Power. Those headers are
Powerstate, SleepPeriod and RegistrationState.
(cherry picked from commit 98e4f938d6)
2011-11-04 20:34:00 -02:00
Fabrice Fontaine
c86d963abe Bug fix in IN6_IS_ADDR_GLOBAL.
Changing IN6_IS_ADDR_GLOBAL to accept all IPv6 addresses which have a
2000::/3 prefix.
(cherry picked from commit 92c93a8010)
2011-11-01 19:02:15 -02:00
Nick Leverton
ef7bbc4866 Summary: upnptools.h should #include upnpconfig.h - ID: 3426326 2011-10-20 12:27:55 +01:00
Fabrice Fontaine
5cf603dcab Bug Fix on M-SEARCH.
Do not answer to M-SEARCH using HTTP version 1.0 as specified by the
UPnP Device Architecture.
(cherry picked from commit 6c6fb3707f)
2011-07-20 06:24:21 -03:00
Iain Denniston
259bed7787 Fixes for compilation under Windows (specifically MSVC). Also added MSVC supported "_inline", and fixed some WIN32 specific warnings.
(cherry picked from commit 92ea719804)
2011-04-02 23:50:36 -03:00
Iain Denniston
7392697aec Several fixes to correctly use SOCKET (and related) types instead of non-portable variations.
(cherry picked from commit fed316ff3e)
2011-04-02 23:50:25 -03:00
Marcelo Roberto Jimenez
583e90cdbc Silence compiler warning message.
warning: unused parameter ‘listen_port6’
(cherry picked from commit e16cb4b225)
2011-03-15 18:58:57 -03:00
Fabrice Fontaine
babfc0ac60 Putting ssdpReqSocks under compilation flag.
Putting all access to ssdpReqSock4 and ssdpReqSock6 under
INCLUDE_CLIENT_APIS compilation flag to be able to compile when
client part of library is disable.
(cherry picked from commit 0996d23318)
2011-03-15 18:58:51 -03:00
Fabrice Fontaine
daec6a0321 New UpnpRegisterRootDevice4 for legacy CPs.
Add a new UpnpRegisterRootDevice4 which allow user to specify a
description URL to be returned for legacy CPs (for example, CPs
searching for a v1 when the device is v2). Most of those CPs does not
work if they found a v2 in the XML description, so this new function is
only used to solve interoperability issues.
(cherry picked from commit 11f9a2bafe)
2011-03-15 18:19:59 -03:00
Iain Denniston
fed2e4f8e5 Partial fix for UpnpGetIfInfo with MSVC
(cherry picked from commit 7338411c08)
2011-03-11 17:59:39 -03:00
Marcelo Roberto Jimenez
a3683a3be0 Created the macros PRIzd and PRIzx to deal with MSVC lack of C99.
Thanks to Iain Denniston for pointing it out.
(cherry picked from commit 3a9ae348bc)
2011-03-11 17:21:18 -03:00
Iain Denniston
a1d7727903 Fixes for headers when compiled under C++
(cherry picked from commit 840669b253)
2011-03-11 16:11:19 -03:00
Marcelo Roberto Jimenez
1df5609d52 Fix for uuid_unpack incorrect shift precedence. 2011-03-10 16:26:11 -03:00
Marcelo Roberto Jimenez
b6baca8eb0 Remove PrintThreadPoolStats() from the public API.
This function uses a ThreadPool object as an argument, which is not
supposed to be exported. Also, debug compilation was broken.
(cherry picked from commit 32e510b45a)
2011-02-07 22:43:40 -02:00
Fabrice Fontaine
28f4d398d8 Major bug fix in IPv6 code.
Major bug fix in miniserver.c for IPv6, bug was introduced when
changing implementation of get_port in November 20th 2010 ("gena:fix
several compiler warnings" commit).
(cherry picked from commit 063d472f80)
2011-02-07 21:28:08 -02:00
Marcelo Roberto Jimenez
2da8a7fba1 White spaces and indentation. 2011-01-30 09:46:51 -02:00
Chandra Penke
40239ca44a Fix for compilation errors
Fix for compilation warnings of unused variables in upnpdebug.c in
release builds.
(cherry picked from commit 6c125feea0)
2011-01-30 09:43:00 -02:00
Chandra Penke
56ab9ba913 Fix for typo in strndup() function definition.
(cherry picked from commit f46683fd0e)
2011-01-17 09:04:51 -02:00
Chandra Penke
1a574ed6cf Fix for large file definitions, FileInfo.h must include upnpconfig.h 2011-01-17 08:55:57 -02:00
Chandra Penke
bf30519f6c Fix for warnings in Apple systems 2011-01-17 08:18:32 -02:00
Marcelo Roberto Jimenez
bdb3f880b7 Define _FILE_OFFSET_BITS, _LARGEFILE_SOURCE and _LARGE_FILE_SOURCE in upnpconfig.h.
Make these definitions available to programs using the library.
Thanks to Chandra Penke for pointing the problem.
(cherry picked from commit abfa841318)
2011-01-16 22:39:37 -02:00
Chandra Penke
03c3c0913f Allow virtual callbacks to use chunked encoding by setting the file length of a UpnpFileInfo object to be UPNP_USING_CHUNKED. 2011-01-16 21:21:47 -02:00
Marcelo Roberto Jimenez
348bf19412 Use config.h to test for the availability of strndup() and strnlen().
(cherry picked from commit 541679d651)
2011-01-16 21:06:00 -02:00
Marcelo Roberto Jimenez
60c9e95637 Fix for UpnpFileInfo_get_LastModified() in http_MakeMessage().
UpnpFileInfo_get_LastModified() returns time_t, and http_MakeMessage()
takes a "time_t *". Thanks to Chandra Penke for pointing the bug.
2011-01-16 15:09:01 -02:00
Chandra Penke
1e2172819d Fixes chunked transfer encoding in HTTP client API
(cherry picked from commit cb1188d2bc)
2011-01-15 21:14:00 -02:00
Marcelo Roberto Jimenez
6333504d45 Null termination of strndup() implementation on systems missing it.
Also, implementation of strnlen() on systems missing it.
(cherry picked from commit 189ce59dbe)
2011-01-14 22:06:26 -02:00
Marcelo Roberto Jimenez
1232119540 Doxygen on membuffer.
(cherry picked from commit 4815e52586)
2011-01-14 10:28:29 -02:00
Marcelo Roberto Jimenez
9d667685ec Minor change in membuffer.c to include "membuffer.h"
...without looking in the standard header path. This allows pupnp
to build in xcode.
(cherry picked from commit 9051731a93)
2011-01-14 10:28:23 -02:00
Marcelo Roberto Jimenez
82207a3e92 Leave just one call to gmtime() in http_MakeMessage().
(cherry picked from commit 39fd869db8)
2011-01-02 22:37:25 -02:00
Marcelo Roberto Jimenez
8190adb3b9 Make sure va_end() is called in http_MakeMessage().
(cherry picked from commit 8997e7fff6)
2011-01-02 22:37:18 -02:00
Marcelo Roberto Jimenez
7ec5511a8d Fixes many problems in sample code.
In particular, undoes 25c908c558:
SF Patch Tracker [ 2836704 ] Search for nested serviceList (not
stopping at the first lis
Submitted By: zephyrus ( zephyrus00jp )

The original zephyrus' code is still #ifdef'd in the file, if someone
wishes to fix it, check for "#ifdef OLD_FIND_SERVICE_CODE".
(cherry picked from commit 7e8d1787c9)
2010-12-23 22:23:51 -02:00
Marcelo Roberto Jimenez
d4ef92e1bd Simplify code in SampleUtil_GetFirstDocumentItem().
(cherry picked from commit 70d2a7c9e7)
2010-12-23 22:17:52 -02:00
Marcelo Roberto Jimenez
3bf350cceb Doxygen and white spaces in samples. 2010-12-22 11:59:24 -02:00
Marcelo Roberto Jimenez
e07ba67188 Remove unnecessary inclusion of param.h.
(cherry picked from commit 4b0c8d52b8)
2010-12-22 11:56:38 -02:00
Marcelo Roberto Jimenez
e91e4bea0f Fix for segfault in sample code.
(cherry picked from commit c05bbec6ec)
2010-12-22 11:56:31 -02:00
Marcelo Roberto Jimenez
0679697ffd White spaces and some debugging information.
(cherry picked from commit c8af5ec806)
2010-12-22 10:00:32 -02:00
Marcelo Roberto Jimenez
3ec9b0c015 Ivan Romanov's system file inclusion patch for WIN32 (mingw).
(cherry picked from commit 1ee8cd9e1a)
2010-12-21 08:35:43 -02:00
Marcelo Roberto Jimenez
270160b644 Missed this inline in ssdplib.h.
(cherry picked from commit a0ebf23785)
2010-12-19 22:57:44 -02:00
Marcelo Roberto Jimenez
5ef17de780 Remove unused enum SsdpCmdType and unused typedef Event.
(cherry picked from commit cdf35baa34)
2010-12-19 22:55:41 -02:00
Marcelo Roberto Jimenez
408d65ecc8 White spaces.
(cherry picked from commit 6af93e6ca6)
2010-12-19 21:20:29 -02:00
Marcelo Roberto Jimenez
66bdf6effb Less include file mess and doxygenation. 2010-12-19 20:00:56 -02:00
Marcelo Roberto Jimenez
d6f1b5de59 Doxygenation of SSDP library. 2010-12-19 19:57:04 -02:00
Marcelo Roberto Jimenez
6d7b3e65f8 Doxygen. 2010-12-19 19:18:43 -02:00
Marcelo Roberto Jimenez
3ad98ad746 SF Tracker: Patches - Fedora mingw32 compilation - ID: 3138849
Details:
Hello. I trying compile libupnp-1.6.10 on the Fedora 14 MinGW
Environment and get many errors. I create patch to fix it. With this
patch i can get static library. This patch is very raw.

Submitted: Ivan Romanov (ivanromanov) - 2010-12-16 23:29:19 UTC
(cherry picked from commit b2a88aa70b)
2010-12-19 19:10:44 -02:00
Marcelo Roberto Jimenez
82738e3ea5 Get rid of useless integer typedefs.
Remove unsigned32, unsigned16 and unsigned8 references in the code.
(cherry picked from commit bb5a80c05b)
2010-12-19 19:10:23 -02:00
Marcelo Roberto Jimenez
2ccaf7fac8 Remove unnecessary header <sys/utsname.h> from upnpapi.c.
(cherry picked from commit 7e8e5621a8)
2010-12-19 19:10:09 -02:00
Marcelo Roberto Jimenez
b1ae4db35a Use the new include files UpnpIntTypes.h, UpnpStdInt.h and UpnpUniStd.h.
Trying to keep platform dependency on the headers and clean the main
code a little bit.
2010-12-19 19:09:35 -02:00
Marcelo Roberto Jimenez
dd75baab6b White spaces.
(cherry picked from commit d6418b3e17)
2010-12-19 19:07:18 -02:00
Marcelo Roberto Jimenez
59c70e2a0e Doxygen.
(cherry picked from commit e8106e4f05)
2010-12-19 19:07:03 -02:00
Marcelo Roberto Jimenez
72233660b7 Fixes a bug introduced in a previous commit in http_SendMessage.
The variable num_read was beeing used without beeing initialized.

Also, clean up the function return path and make sure va_end()
is beeing called.
(cherry picked from commit 9a28fcc95b)
2010-11-24 12:33:53 -02:00
Marcelo Roberto Jimenez
3bf6f90751 Reformat calls to http_SendMessage().
(cherry picked from commit bfbd07cb40)
2010-11-24 12:33:52 -02:00
Marcelo Roberto Jimenez
0977f8864d soap_device: Doxygen and code reformat. 2010-11-24 12:33:52 -02:00
Fabrice Fontaine
57e9584f4e Major bug fix in http_SendMessage.
Currently, http_SendMessage was not able to write to write a buffer
due to a bad use of file_buf instead of buf. This bug was introduced by
the 0197-Doxygen-reformating-compiler-warnings patch.
(cherry picked from commit 2c3bce13bd)
2010-11-24 11:54:54 -02:00
Fabrice Fontaine
86783f0329 Returning the SID in Upnp_Event_Subscribe.
Currently, Upnp_Event_Subscribe always contains an empty chain in the
Sid parameter. This patch now saves the client Subscription ID in this
parameter so Control Points can see and use the same SID in the
Upnp_Event_Subscribe and in the Upnp_Event structures.
2010-11-24 11:54:24 -02:00
Juergen Lock
25641ac51a Two fixes from Juergen Lock <nox(at)jelal.kn-bremen.de>:
1. varargs:  pass size of CRLF as size_t not as int:

--- upnp/src/gena/gena_device.c.orig
+++ upnp/src/gena/gena_device.c
@@ -225,7 +225,7 @@ static UPNP_INLINE int notify_send_and_r
		"bbb",
		start_msg.buf, start_msg.length,
		propertySet, strlen(propertySet),
-		"\r\n", 2);
+		"\r\n", sizeof "\r\n" - 1);
	if (ret_code) {
		membuffer_destroy(&start_msg);
		sock_destroy(&info, SD_BOTH);

2. Remove "b" arg here, there is no buffer passed:  (this caused a pointer
to be interpreted as a buffer size to be alloc'd/copied, hence the 32 GB.)

--- upnp/src/genlib/net/http/webserver.c.orig
+++ upnp/src/genlib/net/http/webserver.c
@@ -1262,7 +1262,7 @@ static int process_request(
			// Content-Range: bytes 222-3333/4000  HTTP_PARTIAL_CONTENT
			// Transfer-Encoding: chunked
			if (http_MakeMessage(headers, resp_major, resp_minor,
-				"R" "TLD" "s" "tcS" "b" "Xc" "sCc",
+				"R" "TLD" "s" "tcS" "Xc" "sCc",
				HTTP_OK,    // status code
				finfo.content_type, // content type
				RespInstr,  // language info
(cherry picked from commit ed0ebe1588)
2010-11-22 23:29:28 -02:00
Marcelo Roberto Jimenez
252a25af32 White spaces.
(cherry picked from commit d057b2f82a11f4f4d5b9a7524e96348ad3c16106)
2010-11-22 13:21:12 -02:00
Marcelo Roberto Jimenez
f260a0e9d6 Template object for ssdp_ResultData. 2010-11-22 10:22:06 -02:00
Marcelo Roberto Jimenez
9181020d3b Fix for compiler warning about conversion to off_t. 2010-11-22 10:21:28 -02:00
Marcelo Roberto Jimenez
1316c82d04 Remove the "xboolean" typedef from the code base.
(cherry picked from commit 6e7a2bb2dc)
2010-11-22 09:29:02 -02:00
Marcelo Roberto Jimenez
9e7e7e3b89 Doxygen, reformating, compiler warnings. 2010-11-21 22:36:14 -02:00
Marcelo Roberto Jimenez
978f10449f ssdp, soap, genlib: fix compiler warnings. 2010-11-21 22:33:05 -02:00
Marcelo Roberto Jimenez
2685b5bb65 gena: fix several compiler warnings. 2010-11-20 14:19:09 -02:00
Marcelo Roberto Jimenez
5bb8ee4b02 uuid.c: fix compiler warnings.
(cherry picked from commit 09f2b6ca30)
2010-11-20 13:50:28 -02:00
Marcelo Roberto Jimenez
c45640f619 upnp: fix for compiler warnings.
(cherry picked from commit 9b3a0999a9)
2010-11-18 15:12:18 -02:00
Marcelo Roberto Jimenez
ec0035ca83 upnp: fix for compiler warnings and incorrect API. 2010-11-18 15:12:18 -02:00
Marcelo Roberto Jimenez
4c2aa70a3a samples: One more code reorganization.
(cherry picked from commit 6bee05a517)
2010-11-18 15:12:18 -02:00
Marcelo Roberto Jimenez
838a8fea28 samples: fix compiler warnings.
(cherry picked from commit 2e96edcbc5)
2010-11-18 15:12:18 -02:00
Marcelo Roberto Jimenez
f088f94803 samples: More code reorganization.
(cherry picked from commit ef0aa38958)
2010-11-18 12:04:02 -02:00
Marcelo Roberto Jimenez
b3fdad3988 samples: Put more data in common_data.h.
(cherry picked from commit 86159bc2a6)
2010-11-18 01:08:12 -02:00
Marcelo Roberto Jimenez
60279a57cc samples: Unified sample code.
This patch removes duplicated code in samples.
2010-11-18 01:07:20 -02:00
Marcelo Roberto Jimenez
f9d9091a94 Remove "upnp_" prefix from samples. 2010-11-17 23:35:07 -02:00
Marcelo Roberto Jimenez
57b1169850 samples: Fix compiler warnings. 2010-11-17 12:01:04 -02:00
Marcelo Roberto Jimenez
4d2f1f7ba6 Fix some compiler warnings and some Doxygen. 2010-11-17 01:33:57 -02:00
Marcelo Roberto Jimenez
d5fa48bd37 Some Doxygen in upnp_tv_device. 2010-11-16 23:19:33 -02:00
Marcelo Roberto Jimenez
0d625bd2e1 Some Doxygen on sample_util. 2010-11-16 22:47:22 -02:00
Marcelo Roberto Jimenez
bc8eebf6f8 Deal with -ansi in list.h. 2010-11-16 22:11:03 -02:00
Marcelo Roberto Jimenez
ab27615855 Removes C++ style comments. 2010-11-16 11:57:37 -02:00
Marcelo Roberto Jimenez
a15d46e142 Deal with "inline" when "-ansi" compiler option is active.
This mode can be recognized by the macro __STRICT_ANSI__.

From man gcc:

-ansi
 In C mode, this is equivalent to -std=c89. In C++ mode, it is equivalent to
-std=c++98.

 This turns off certain features of GCC that are incompatible with ISO C90
(when compiling C code), or of standard (when compiling code), such as the
asm and typeof keywords, and predefined macros such as unix and vax that
identify the type of system you are using. It also enables the undesirable
and rarely used ISO trigraph feature. For the C compiler, it disables
recognition of style // comments as well as the inline keyword.

 The alternate keywords _ _asm_ _, _ _extension_ _, _ _inline_ _ and
_ _typeof_ _ continue to work despite -ansi. You would not want to use them
in an ISO C program, of course, but it is useful to put them in header files
that might be included in compilations done with -ansi. Alternate predefined
macros such as _ _unix_ _ and _ _vax_ _ are also available, with or without
-ansi.

 The -ansi option does not cause non-ISO programs to be rejected gratuitously.
For that, -pedantic is required in addition to -ansi.

 The macro _ _STRICT_ANSI_ _ is predefined when the -ansi option is used.
Some header files may notice this macro and refrain from declaring certain
functions or defining certain macros that the ISO standard doesn't call for;
this is to avoid interfering with any programs that might use these names for
other things.

 Functions that would normally be built in but do not have semantics defined
by ISO C (such as alloca and ffs) are not built-in functions when -ansi is
used.
(cherry picked from commit da7f3bf1c1)
2010-11-16 03:15:42 -02:00
Marcelo Roberto Jimenez
dd2624ebfe Added the convenience function UpnpResolveURL2() to upnptools.c.
This function avoids some unecessary memory allocation.
The memory alloc'd by this function must be freed later by the caller.
(cherry picked from commit 8651174861)
2010-11-15 01:02:07 -02:00
Marcelo Roberto Jimenez
5c8d118899 Fixes for list.h and poison.h to be used in C++ code.
- Add list.h and poison.h to Makefile.am;
- list.h cannot use the C++ reserved keyword new;
- Cast void pointers to the proper type;
- Proper C++ pointer arithmetic on poison.h.
2010-11-15 00:07:14 -02:00
Marcelo Roberto Jimenez
eb5db65692 ReadResponseLineAndHeaders() is static. 2010-11-11 21:59:39 -02:00
Fabrice Fontaine
b0cab00ca3 Add GENA_NOTIFICATION_xxx_TIMEOUT variable.
Currently, in notify_send_and_recv function, pupnp waits for
HTTP_DEFAULT_TIMEOUT seconds when trying to send a GENA notification.
When there is a lot of notifications with CPs which was disconnected
without unsusbcribing, all the pupnp threads are blocked on this
timeout. To correct, this issue, this patch adds a new variable,
GENA_NOTIFICATION_SENDING_TIMEOUT, which can be used to lower the
timeout so GENA threads return quickly when writing is impossible. By
the same mean, pupnp waits the CP's answer to the NOTIFY for
HTTP_DEFAULT_TIMEOUT seconds, so this patch adds a new variable,
GENA_NOTIFICATION_ANSWERING_TIMEOUT, to customize this value.
(cherry picked from commit e6c548f57a)
2010-11-11 21:44:10 -02:00
Fabrice Fontaine
8811bf7ede Add --disable-blocking-tcp-connections flag.
Currently, pupnp is using a blocking connect to sends GENA
notifications. As a result, when there is a lot of notifications with
CPs which were disconnected without unsusbcribing, all the pupnp
threads are blocked for 20s (timeout). To correct this issue, this
patch replace the call to connect with a call to private_connect and add
a compilation flag to disable blocking TCP connections, so if we are not
able to connect to the CP, the notification is lost.
(cherry picked from commit 32cffb5bb5)
2010-11-11 21:43:55 -02:00
Marcelo Roberto Jimenez
02d0a48609 Remove commented old code from webserver.c.
(cherry picked from commit 2b30575ca5)
2010-11-11 21:33:58 -02:00
Fabrice Fontaine
6c64b7eeb5 Support for "polling" select in sock_read_write.
Currently, in sock_read_write function, if the timeout is 0, pupnp
realizes a "blocking" select (with an infinite timeout). With this
patch, if timeout is set to 0, pupnp will realize a "polling" select
and returns immediately if it can not read or write on the socket. This
is very useful for GENA notifications when pupnp is trying to send
events to a disconnected Control Point. "Blocking" select can now be
done by putting a negative timeout value.
2010-11-11 21:24:49 -02:00
Stefan Sommerfeld
8418b06bf1 Fixed a typo in upnp/inc/ActionComplete.h. 2010-11-07 19:01:30 -02:00
Stefan Sommerfeld
7b212cadc8 Fix for size_t in template. 2010-11-07 19:01:30 -02:00
Stefan Sommerfeld
818d61abc7 Fixed some typos.
(cherry picked from commit 508b782c79)
2010-11-07 18:59:53 -02:00
Stefan Sommerfeld
a0b0ca1434 Add a simple strndup() implementation for win32.
(cherry picked from commit 38d5e58e22)
2010-11-07 18:59:53 -02:00
Stefan Sommerfeld
7d3fc74ff7 Fix for size_t in UpnpString.
(cherry picked from commit ee5bd670d4)
2010-11-07 18:59:53 -02:00
Stefan Sommerfeld
51bf17911a Fix for size_t related warnings.
(cherry picked from commit fcb5e7c438)
2010-11-07 18:59:52 -02:00
Stefan Sommerfeld
d4358a82c5 Fix for inline usage.
(cherry picked from commit 243cd41974)
2010-11-07 18:59:52 -02:00
Marcelo Roberto Jimenez
09ede373c2 Remove unused parameter bufferLen from GetDescDocumentAndURL().
(cherry picked from commit 853cd32cfe)
2010-11-07 18:59:52 -02:00
Marcelo Roberto Jimenez
127b123c2c Consistent usage of win32 INVALID_SOCKET and SOCKET_ERROR.
On win32 socket() returns INVALID_SOCKET, which is unsigned,
on error, not -1.

Also, most network functions return SOCKET_ERROR.

This patch tries to make the usage consistent.
(cherry picked from commit f384e54fc6)
2010-11-07 18:59:52 -02:00
Stefan Sommerfeld
4da4ea639f Fixed server port definition.
(cherry picked from commit 9e12768cdb)
2010-11-07 18:59:52 -02:00
Stefan Sommerfeld
0c1ea1e61a Fix for mixed usage of SOCKET and int.
(cherry picked from commit 4b47e6a51d)
2010-11-07 18:59:52 -02:00
Stefan Sommerfeld
23b05a7f90 Make notify_send_and_recv() return the appropriate error code.
notify_send_and_recv() was returning the connection fd.
(cherry picked from commit a5fb5edfc9)
2010-11-07 18:59:52 -02:00
Marcelo Roberto Jimenez
c683bd90d6 Proper inclusion of inet_pton.h for win32.
(cherry picked from commit 8bd32d330b)
2010-11-07 18:59:52 -02:00
Stefan Sommerfeld
bb48d48977 fixed wrong declaration of inet_ntop4
(cherry picked from commit 00eb52cc85)
2010-11-07 18:59:52 -02:00
Marcelo Roberto Jimenez
a6c021226a Fix broken Makefile.am and remove unused file utilall.h.
(cherry picked from commit 9052ca95be)
2010-11-06 19:42:59 -02:00
Marcelo Roberto Jimenez
b59ec7d838 Fix for "SampleUtil_Initialize was called multiple times!" bug.
Fix for bug introduced in samples code in svn revision 502, commit
git:25c908c558c8e60eb386c155a6b93add447ffec0

Sample device and combo were aborting with the message:
"***** SampleUtil_Initialize was called multiple times!"
(cherry picked from commit ef7edf6cf8)
2010-11-06 00:46:58 -02:00
Fabrice Fontaine
8e0c92a52a Make multiple SSDP advertisements faster.
Put the loop to send multiple copies of each SSDP advertisements in
ssdp_server.c instead of ssdp_device.c so we have only one call to
imillisleep ( SSDP_PAUSE ) to speed up advertisements.
(cherry picked from commit c65ec8a720)
2010-11-05 23:54:04 -02:00
Fabrice Fontaine
56e0fdd438 Removing unused NUM_COPY variable.
Previously, NUM_COPY was used in ssdp_device.c to send multiple copies
of each advertisements but also multiple replies to each M-SEARCH
request. As sending multiple replies is not compliant with HTTPU/MU
spec, NUM_COPY has been set to 1 in an older patch. However, as this
variable is not needed and has been replaced with SSDP_COPY, it has
been removed.
(cherry picked from commit 2d22e997e1)
2010-11-05 23:53:55 -02:00
Fabrice Fontaine
b8b5f6a0ef Use SSDP_COPY to send multiple SSDP advertisements.
Currently, SSDP_COPY is used only to send multiple M-SEARCH requests (in
ssdp_ctrlpt.c). With this patch, SSDP_COPY is also used to send multiple
copies of each advertisements packets (in ssdp_device.c).
(cherry picked from commit 96dc968f18)
2010-11-05 13:29:35 -02:00
Carl Benson
4d37927c64 patch for taking notice of UPNP_USE_RWLOCK flag in threadutil
By "Carl Benson" <carl.benson@windriver.com>:

I had to do some modifications myself though, because the Android
build system insists on having a file named "util.h" taking precedence
in its include path, libupnp gets confused because of the same filename
in upnp/src/inc/util.h

(hand cherry picked from commit 8e846368e0)
2010-11-01 01:11:21 -02:00