Merge of trunk into branch-1.6.x.

git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/branches/branch-1.6.x@327 119443c7-1b9e-41f8-b6fc-b9c35fce742c
This commit is contained in:
Marcelo Roberto Jimenez 2008-02-22 04:48:10 +00:00
parent f812b124d7
commit cc0c2ffc50
2 changed files with 21 additions and 13 deletions

View File

@ -2,6 +2,9 @@
Version 1.6.6 Version 1.6.6
******************************************************************************* *******************************************************************************
2008-02-22 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* No longer ignore "upnp:rootdevice" advertisement. Thanks to Bob Ciora.
2008-02-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net> 2008-02-10 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
* Changed "sys_errlist[errno]", which is deprecated, by * Changed "sys_errlist[errno]", which is deprecated, by
"strerror_r()", which is thread safe. "strerror_r()", which is thread safe.

View File

@ -442,20 +442,18 @@ Make_Socket_NoBlocking( int sock )
* Returns: int * Returns: int
* 0 if successful else -1 * 0 if successful else -1
***************************************************************************/ ***************************************************************************/
int int unique_service_name(IN char *cmd, IN SsdpEvent *Evt)
unique_service_name( IN char *cmd,
IN SsdpEvent * Evt )
{ {
char *TempPtr, char TempBuf[COMMAND_LEN];
TempBuf[COMMAND_LEN], char *TempPtr = NULL;
*Ptr, char *Ptr = NULL;
*ptr1, char *ptr1 = NULL;
*ptr2, char *ptr2 = NULL;
*ptr3; char *ptr3 = NULL;
int CommandFound = 0; int CommandFound = 0;
int length = 0;
if( ( TempPtr = strstr( cmd, "uuid:schemas" ) ) != NULL ) { if( ( TempPtr = strstr( cmd, "uuid:schemas" ) ) != NULL ) {
ptr1 = strstr( cmd, ":device" ); ptr1 = strstr( cmd, ":device" );
if( ptr1 != NULL ) { if( ptr1 != NULL ) {
ptr2 = strstr( ptr1 + 1, ":" ); ptr2 = strstr( ptr1 + 1, ":" );
@ -487,7 +485,6 @@ unique_service_name( IN char *cmd,
} }
if( ( TempPtr = strstr( cmd, "uuid" ) ) != NULL ) { if( ( TempPtr = strstr( cmd, "uuid" ) ) != NULL ) {
//printf("cmd = %s\n",cmd);
if( ( Ptr = strstr( cmd, "::" ) ) != NULL ) { if( ( Ptr = strstr( cmd, "::" ) ) != NULL ) {
strncpy( Evt->UDN, TempPtr, Ptr - TempPtr ); strncpy( Evt->UDN, TempPtr, Ptr - TempPtr );
Evt->UDN[Ptr - TempPtr] = '\0'; Evt->UDN[Ptr - TempPtr] = '\0';
@ -499,7 +496,6 @@ unique_service_name( IN char *cmd,
if( strstr( cmd, "urn:" ) != NULL if( strstr( cmd, "urn:" ) != NULL
&& strstr( cmd, ":service:" ) != NULL ) { && strstr( cmd, ":service:" ) != NULL ) {
if( ( TempPtr = strstr( cmd, "urn" ) ) != NULL ) { if( ( TempPtr = strstr( cmd, "urn" ) ) != NULL ) {
strcpy( Evt->ServiceType, TempPtr ); strcpy( Evt->ServiceType, TempPtr );
CommandFound = 1; CommandFound = 1;
@ -514,8 +510,17 @@ unique_service_name( IN char *cmd,
} }
} }
if( ( TempPtr = strstr( cmd, "::upnp:rootdevice" ) ) != NULL ) {
/* Everything before "::upnp::rootdevice" is the UDN. */
if( TempPtr != cmd ) {
length = TempPtr - cmd;
strncpy(Evt->UDN, cmd, length);
Evt->UDN[length] = 0;
CommandFound = 1;
}
}
if( CommandFound == 0 ) { if( CommandFound == 0 ) {
return -1; return -1;
} }