From e90e549cbbd8778084d537151b8c7cb2259fdeb3 Mon Sep 17 00:00:00 2001 From: Marcelo Roberto Jimenez Date: Wed, 7 May 2008 21:56:49 +0000 Subject: [PATCH] Improoving debug code. git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/trunk@377 119443c7-1b9e-41f8-b6fc-b9c35fce742c --- upnp/src/api/upnpapi.c | 115 +++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 55 deletions(-) diff --git a/upnp/src/api/upnpapi.c b/upnp/src/api/upnpapi.c index b32b6e9..632880a 100644 --- a/upnp/src/api/upnpapi.c +++ b/upnp/src/api/upnpapi.c @@ -464,9 +464,11 @@ int UpnpRegisterRootDevice( retVal = UpnpDownloadXmlDoc(HInfo->DescURL, &(HInfo->DescDocument)); if (retVal != UPNP_E_SUCCESS) { + UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__, + "UpnpRegisterRootDevice: error downloading Document: %d\n", + retVal); CLIENTONLY( ListDestroy(&HInfo->SsdpSearchList, 0); ) - FreeHandle( *Hnd ); - retVal = retVal; + FreeHandle(*Hnd); goto exit_function; } UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__, @@ -846,7 +848,7 @@ int UpnpUnRegisterRootDevice(IN UpnpDevice_Handle Hnd) UpnpSdkDeviceregisteredV6 = 0; } - FreeHandle( Hnd ); + FreeHandle(Hnd); HandleUnlock(); UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__, @@ -959,7 +961,7 @@ int UpnpUnRegisterClient(IN UpnpClient_Handle Hnd) } ListDestroy( &HInfo->SsdpSearchList, 0 ); - FreeHandle( Hnd ); + FreeHandle(Hnd); UpnpSdkClientRegistered = 0; HandleUnlock(); UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, @@ -3144,62 +3146,64 @@ UpnpDownloadUrlItem( const char *url, * Return Values: int * UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/ -int -UpnpDownloadXmlDoc( const char *url, - IXML_Document ** xmlDoc ) +int UpnpDownloadXmlDoc(const char *url, IXML_Document **xmlDoc) { - int ret_code; - char *xml_buf; - char content_type[LINE_SIZE]; + int ret_code; + char *xml_buf; + char content_type[LINE_SIZE]; - if( url == NULL || xmlDoc == NULL ) { - return UPNP_E_INVALID_PARAM; - } + if (url == NULL || xmlDoc == NULL) { + return UPNP_E_INVALID_PARAM; + } - ret_code = UpnpDownloadUrlItem( url, &xml_buf, content_type ); - if( ret_code != UPNP_E_SUCCESS ) { - UpnpPrintf( UPNP_CRITICAL, API, __FILE__, __LINE__, - "retCode: %d\n", ret_code ); - return ret_code; - } + ret_code = UpnpDownloadUrlItem(url, &xml_buf, content_type); + if (ret_code != UPNP_E_SUCCESS) { + UpnpPrintf(UPNP_CRITICAL, API, __FILE__, __LINE__, + "Error downloading document, retCode: %d\n", ret_code); + return ret_code; + } - if( strncasecmp( content_type, "text/xml", strlen( "text/xml" ) ) ) { - UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__, "Not text/xml\n" ); - // Linksys WRT54G router returns - // "CONTENT-TYPE: application/octet-stream". - // Let's be nice to Linksys and try to parse document anyway. - // If the data sended is not a xml file, ixmlParseBufferEx - // will fail and the function will return UPNP_E_INVALID_DESC too. + if (strncasecmp(content_type, "text/xml", strlen("text/xml"))) { + UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__, "Not text/xml\n"); + // Linksys WRT54G router returns + // "CONTENT-TYPE: application/octet-stream". + // Let's be nice to Linksys and try to parse document anyway. + // If the data sended is not a xml file, ixmlParseBufferEx + // will fail and the function will return UPNP_E_INVALID_DESC too. #if 0 - free( xml_buf ); - return UPNP_E_INVALID_DESC; + free(xml_buf); + return UPNP_E_INVALID_DESC; #endif - } + } - ret_code = ixmlParseBufferEx( xml_buf, xmlDoc ); - free( xml_buf ); - - if( ret_code != IXML_SUCCESS ) { - UpnpPrintf( UPNP_CRITICAL, API, __FILE__, __LINE__, - "Invalid desc\n" ); - if( ret_code == IXML_INSUFFICIENT_MEMORY ) { - return UPNP_E_OUTOF_MEMORY; - } else { - return UPNP_E_INVALID_DESC; - } - } else { + ret_code = ixmlParseBufferEx(xml_buf, xmlDoc); + free(xml_buf); + if (ret_code != IXML_SUCCESS) { + if (ret_code == IXML_INSUFFICIENT_MEMORY) { + UpnpPrintf(UPNP_CRITICAL, API, __FILE__, __LINE__, + "Out of memory, ixml error code: %d\n", + ret_code); + return UPNP_E_OUTOF_MEMORY; + } else { + UpnpPrintf(UPNP_CRITICAL, API, __FILE__, __LINE__, + "Invalid Description, ixml error code: %d\n", + ret_code); + return UPNP_E_INVALID_DESC; + } + } else { #ifdef DEBUG - xml_buf = ixmlPrintNode( ( IXML_Node * ) * xmlDoc ); - UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, - "Printing the Parsed xml document \n %s\n", xml_buf ); - UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, - "****************** END OF Parsed XML Doc *****************\n" ); - ixmlFreeDOMString( xml_buf ); + xml_buf = ixmlPrintNode((IXML_Node *)*xmlDoc); + UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, + "Printing the Parsed xml document \n %s\n", xml_buf); + UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, + "****************** END OF Parsed XML Doc *****************\n"); + ixmlFreeDOMString(xml_buf); #endif - UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, - "Exiting UpnpDownloadXmlDoc\n" ); - return UPNP_E_SUCCESS; - } + UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__, + "Exiting UpnpDownloadXmlDoc\n"); + + return UPNP_E_SUCCESS; + } } //---------------------------------------------------------------------------- @@ -4121,15 +4125,15 @@ int FreeHandle(int Upnp_Handle) int ret = UPNP_E_INVALID_HANDLE; UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__, - "FreeHandleInfo: entering, Handle is %d\n", Upnp_Handle); + "FreeHandle: entering, Handle is %d\n", Upnp_Handle); if (Upnp_Handle < 1 || Upnp_Handle >= NUM_HANDLE) { UpnpPrintf(UPNP_CRITICAL, API, __FILE__, __LINE__, - "FreeHandleInfo: Handle %d is out of range\n", + "FreeHandle: Handle %d is out of range\n", Upnp_Handle); } else if (HandleTable[Upnp_Handle] == NULL) { UpnpPrintf(UPNP_CRITICAL, API, __FILE__, __LINE__, - "FreeHandleInfo: HandleTable[%d] is NULL\n", + "FreeHandle: HandleTable[%d] is NULL\n", Upnp_Handle); } else { free( HandleTable[Upnp_Handle] ); @@ -4137,7 +4141,8 @@ int FreeHandle(int Upnp_Handle) ret = UPNP_E_SUCCESS; } - UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__, "FreeHandleInfo: exiting\n"); + UpnpPrintf(UPNP_ALL, API, __FILE__, __LINE__, + "FreeHandle: exiting, ret = %d.\n", ret); return ret; }