Fix for the ithread_mutex_unlock() logic in UpnpInit().
Thanks for Nicholas Kraft. git-svn-id: https://pupnp.svn.sourceforge.net/svnroot/pupnp/trunk@499 119443c7-1b9e-41f8-b6fc-b9c35fce742c
This commit is contained in:
parent
82a3114379
commit
b80e888ae2
@ -2,6 +2,10 @@
|
|||||||
Version 1.8.0
|
Version 1.8.0
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
|
|
||||||
|
2010-03-16 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
|
* Fix for the ithread_mutex_unlock() logic in UpnpInit().
|
||||||
|
Thanks for Nicholas Kraft.
|
||||||
|
|
||||||
2010-03-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
2010-03-15 Marcelo Jimenez <mroberto(at)users.sourceforge.net>
|
||||||
* SF Patch Tracker [ 2962606 ] Autorenewal errors: invalid SID,
|
* SF Patch Tracker [ 2962606 ] Autorenewal errors: invalid SID,
|
||||||
too-short renewal interval
|
too-short renewal interval
|
||||||
|
@ -201,54 +201,54 @@ static int GetDescDocumentAndURL(
|
|||||||
|
|
||||||
int UpnpInit(const char *HostIP, unsigned short DestPort)
|
int UpnpInit(const char *HostIP, unsigned short DestPort)
|
||||||
{
|
{
|
||||||
int retVal;
|
int retVal = UPNP_E_SUCCESS;
|
||||||
|
|
||||||
ithread_mutex_lock(&gSDKInitMutex);
|
ithread_mutex_lock(&gSDKInitMutex);
|
||||||
|
|
||||||
// Check if we're already initialized.
|
/* Check if we're already initialized. */
|
||||||
if( UpnpSdkInit == 1 ) {
|
if (UpnpSdkInit == 1) {
|
||||||
ithread_mutex_unlock(&gSDKInitMutex);
|
retval = UPNP_E_INIT;
|
||||||
return UPNP_E_INIT;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform initialization preamble.
|
/* Perform initialization preamble. */
|
||||||
retVal = UpnpInitPreamble();
|
retVal = UpnpInitPreamble();
|
||||||
if( retVal != UPNP_E_SUCCESS ) {
|
if (retVal != UPNP_E_SUCCESS) {
|
||||||
ithread_mutex_unlock(&gSDKInitMutex);
|
goto exit_function;
|
||||||
return retVal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"UpnpInit with HostIP=%s, DestPort=%d.\n",
|
"UpnpInit with HostIP=%s, DestPort=%d.\n",
|
||||||
HostIP ? HostIP : "", DestPort );
|
HostIP ? HostIP : "", DestPort);
|
||||||
|
|
||||||
// Verify HostIP, if provided, or find it ourselves.
|
/* Verify HostIP, if provided, or find it ourselves. */
|
||||||
if( HostIP != NULL ) {
|
if (HostIP != NULL) {
|
||||||
strncpy( gIF_IPV4, HostIP, sizeof(gIF_IPV4) );
|
strncpy(gIF_IPV4, HostIP, sizeof(gIF_IPV4));
|
||||||
} else {
|
} else {
|
||||||
if( getlocalhostname( gIF_IPV4, sizeof(gIF_IPV4) ) != UPNP_E_SUCCESS ) {
|
if( getlocalhostname( gIF_IPV4, sizeof(gIF_IPV4) ) != UPNP_E_SUCCESS ) {
|
||||||
return UPNP_E_INIT_FAILED;
|
retval = UPNP_E_INIT_FAILED;
|
||||||
|
goto exit_function;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the UpnpSdkInit flag to 1 to indicate we're sucessfully initialized.
|
/* Set the UpnpSdkInit flag to 1 to indicate we're sucessfully initialized. */
|
||||||
UpnpSdkInit = 1;
|
UpnpSdkInit = 1;
|
||||||
|
|
||||||
// Finish initializing the SDK.
|
/* Finish initializing the SDK. */
|
||||||
retVal = UpnpInitStartServers( DestPort );
|
retVal = UpnpInitStartServers(DestPort);
|
||||||
if( retVal != UPNP_E_SUCCESS ) {
|
if (retVal != UPNP_E_SUCCESS) {
|
||||||
UpnpSdkInit = 0;
|
UpnpSdkInit = 0;
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
goto exit_function;
|
||||||
return retVal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"Host Ip: %s Host Port: %d\n", gIF_IPV4,
|
"Host Ip: %s Host Port: %d\n", gIF_IPV4,
|
||||||
LOCAL_PORT_V4 );
|
LOCAL_PORT_V4);
|
||||||
|
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
exit_function:
|
||||||
|
ithread_mutex_unlock(&gSDKInitMutex);
|
||||||
|
|
||||||
return UPNP_E_SUCCESS;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -256,44 +256,42 @@ int UpnpInit2(const char *IfName, unsigned short DestPort)
|
|||||||
{
|
{
|
||||||
int retVal;
|
int retVal;
|
||||||
|
|
||||||
ithread_mutex_lock( &gSDKInitMutex );
|
ithread_mutex_lock(&gSDKInitMutex);
|
||||||
|
|
||||||
// Check if we're already initialized.
|
/* Check if we're already initialized. */
|
||||||
if( UpnpSdkInit == 1 ) {
|
if (UpnpSdkInit == 1) {
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
retVal = UPNP_E_INIT;
|
||||||
return UPNP_E_INIT;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform initialization preamble.
|
/* Perform initialization preamble. */
|
||||||
retVal = UpnpInitPreamble();
|
retVal = UpnpInitPreamble();
|
||||||
if( retVal != UPNP_E_SUCCESS ) {
|
if (retVal != UPNP_E_SUCCESS) {
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
goto exit_function;
|
||||||
return retVal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpnpPrintf( UPNP_INFO, API, __FILE__, __LINE__,
|
UpnpPrintf(UPNP_INFO, API, __FILE__, __LINE__,
|
||||||
"UpnpInit2 with IfName=%s, DestPort=%d.\n",
|
"UpnpInit2 with IfName=%s, DestPort=%d.\n",
|
||||||
IfName ? IfName : "", DestPort );
|
IfName ? IfName : "", DestPort);
|
||||||
|
|
||||||
// Retrieve interface information (Addresses, index, etc).
|
/* Retrieve interface information (Addresses, index, etc). */
|
||||||
retVal = UpnpGetIfInfo( IfName );
|
retVal = UpnpGetIfInfo( IfName );
|
||||||
if( retVal != UPNP_E_SUCCESS ) {
|
if (retVal != UPNP_E_SUCCESS) {
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
goto exit_function;
|
||||||
return retVal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the UpnpSdkInit flag to 1 to indicate we're sucessfully initialized.
|
/* Set the UpnpSdkInit flag to 1 to indicate we're sucessfully initialized. */
|
||||||
UpnpSdkInit = 1;
|
UpnpSdkInit = 1;
|
||||||
|
|
||||||
// Finish initializing the SDK.
|
/* Finish initializing the SDK. */
|
||||||
retVal = UpnpInitStartServers( DestPort );
|
retVal = UpnpInitStartServers(DestPort);
|
||||||
if( retVal != UPNP_E_SUCCESS ) {
|
if (retVal != UPNP_E_SUCCESS) {
|
||||||
UpnpSdkInit = 0;
|
UpnpSdkInit = 0;
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
goto exit_function;
|
||||||
return retVal;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ithread_mutex_unlock( &gSDKInitMutex );
|
exit_function:
|
||||||
|
ithread_mutex_unlock(&gSDKInitMutex);
|
||||||
|
|
||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
}
|
}
|
||||||
@ -310,7 +308,7 @@ int UpnpFinish(void)
|
|||||||
struct Handle_Info *temp;
|
struct Handle_Info *temp;
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
// WSACleanup();
|
/*WSACleanup();*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( UpnpSdkInit != 1 ) {
|
if( UpnpSdkInit != 1 ) {
|
||||||
@ -549,7 +547,7 @@ exit_function:
|
|||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_DEVICE_APIS
|
#endif /* INCLUDE_DEVICE_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_DEVICE_APIS
|
#ifdef INCLUDE_DEVICE_APIS
|
||||||
@ -679,7 +677,7 @@ exit_function:
|
|||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_DEVICE_APIS
|
#endif /* INCLUDE_DEVICE_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_DEVICE_APIS
|
#ifdef INCLUDE_DEVICE_APIS
|
||||||
@ -879,7 +877,7 @@ int UpnpUnRegisterRootDevice(UpnpDevice_Handle Hnd)
|
|||||||
return retVal;
|
return retVal;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_DEVICE_APIS
|
#endif /* INCLUDE_DEVICE_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_CLIENT_APIS
|
#ifdef INCLUDE_CLIENT_APIS
|
||||||
@ -936,7 +934,7 @@ int UpnpRegisterClient(
|
|||||||
|
|
||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_CLIENT_APIS
|
#endif /* INCLUDE_CLIENT_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_CLIENT_APIS
|
#ifdef INCLUDE_CLIENT_APIS
|
||||||
@ -968,7 +966,7 @@ int UpnpUnRegisterClient(UpnpClient_Handle Hnd)
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
return UPNP_E_INVALID_HANDLE;
|
return UPNP_E_INVALID_HANDLE;
|
||||||
}
|
}
|
||||||
//clean up search list
|
/* clean up search list */
|
||||||
node = ListHead( &HInfo->SsdpSearchList );
|
node = ListHead( &HInfo->SsdpSearchList );
|
||||||
while( node != NULL ) {
|
while( node != NULL ) {
|
||||||
searchArg = ( SsdpSearchArg * ) node->item;
|
searchArg = ( SsdpSearchArg * ) node->item;
|
||||||
@ -989,7 +987,7 @@ int UpnpUnRegisterClient(UpnpClient_Handle Hnd)
|
|||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_CLIENT_APIS
|
#endif /* INCLUDE_CLIENT_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_DEVICE_APIS
|
#ifdef INCLUDE_DEVICE_APIS
|
||||||
@ -1350,15 +1348,13 @@ int UpnpSearchAsync(
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
SearchByTarget( Mx, Target, ( void * )Cookie_const );
|
SearchByTarget( Mx, Target, ( void * )Cookie_const );
|
||||||
|
|
||||||
//HandleUnlock();
|
|
||||||
|
|
||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"Exiting UpnpSearchAsync \n" );
|
"Exiting UpnpSearchAsync \n" );
|
||||||
|
|
||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_CLIENT_APIS
|
#endif /* INCLUDE_CLIENT_APIS */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -1400,7 +1396,7 @@ int UpnpSetMaxSubscriptions(
|
|||||||
return UPNP_E_SUCCESS;
|
return UPNP_E_SUCCESS;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_DEVICE_APIS
|
#endif /* INCLUDE_DEVICE_APIS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef INCLUDE_DEVICE_APIS
|
#ifdef INCLUDE_DEVICE_APIS
|
||||||
@ -1913,7 +1909,7 @@ int UpnpAcceptSubscription(
|
|||||||
if (UpnpSdkInit != 1) {
|
if (UpnpSdkInit != 1) {
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_FINISH;
|
ret = UPNP_E_FINISH;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
HandleReadLock();
|
HandleReadLock();
|
||||||
@ -1922,25 +1918,25 @@ int UpnpAcceptSubscription(
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_HANDLE;
|
ret = UPNP_E_INVALID_HANDLE;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (DevID == NULL) {
|
if (DevID == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (ServName == NULL) {
|
if (ServName == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (SubsId == NULL) {
|
if (SubsId == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
/* Now accepts an empty state list, so the code below is commented out */
|
/* Now accepts an empty state list, so the code below is commented out */
|
||||||
#if 0
|
#if 0
|
||||||
@ -1948,7 +1944,7 @@ int UpnpAcceptSubscription(
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -1958,7 +1954,7 @@ int UpnpAcceptSubscription(
|
|||||||
ret = genaInitNotify(
|
ret = genaInitNotify(
|
||||||
Hnd, DevID, ServName, VarName, NewVal, cVariables, SubsId);
|
Hnd, DevID, ServName, VarName, NewVal, cVariables, SubsId);
|
||||||
|
|
||||||
ExitFunction:
|
exit_function:
|
||||||
UpnpPrintf(UPNP_ALL, API, __FILE__, line,
|
UpnpPrintf(UPNP_ALL, API, __FILE__, line,
|
||||||
"Exiting UpnpAcceptSubscription, ret = %d\n", ret);
|
"Exiting UpnpAcceptSubscription, ret = %d\n", ret);
|
||||||
|
|
||||||
@ -1985,7 +1981,7 @@ int UpnpAcceptSubscriptionExt(
|
|||||||
if (UpnpSdkInit != 1) {
|
if (UpnpSdkInit != 1) {
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_FINISH;
|
ret = UPNP_E_FINISH;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
HandleReadLock();
|
HandleReadLock();
|
||||||
@ -1994,25 +1990,25 @@ int UpnpAcceptSubscriptionExt(
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_HANDLE;
|
ret = UPNP_E_INVALID_HANDLE;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (DevID == NULL) {
|
if (DevID == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (ServName == NULL) {
|
if (ServName == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
if (SubsId == NULL) {
|
if (SubsId == NULL) {
|
||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
/* Now accepts an empty state list, so the code below is commented out */
|
/* Now accepts an empty state list, so the code below is commented out */
|
||||||
#if 0
|
#if 0
|
||||||
@ -2020,7 +2016,7 @@ int UpnpAcceptSubscriptionExt(
|
|||||||
HandleUnlock();
|
HandleUnlock();
|
||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = UPNP_E_INVALID_PARAM;
|
ret = UPNP_E_INVALID_PARAM;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2029,7 +2025,7 @@ int UpnpAcceptSubscriptionExt(
|
|||||||
line = __LINE__;
|
line = __LINE__;
|
||||||
ret = genaInitNotifyExt(Hnd, DevID, ServName, PropSet, SubsId);
|
ret = genaInitNotifyExt(Hnd, DevID, ServName, PropSet, SubsId);
|
||||||
|
|
||||||
ExitFunction:
|
exit_function:
|
||||||
UpnpPrintf(UPNP_ALL, API, __FILE__, line,
|
UpnpPrintf(UPNP_ALL, API, __FILE__, line,
|
||||||
"Exiting UpnpAcceptSubscription, ret = %d.\n", ret);
|
"Exiting UpnpAcceptSubscription, ret = %d.\n", ret);
|
||||||
|
|
||||||
@ -2645,11 +2641,12 @@ int UpnpDownloadXmlDoc(const char *url, IXML_Document **xmlDoc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
//
|
*
|
||||||
// UPNP-API Internal function implementation
|
* UPNP-API Internal function implementation
|
||||||
//
|
*
|
||||||
//----------------------------------------------------------------------------
|
*----------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
@ -2661,7 +2658,7 @@ int WinsockInit()
|
|||||||
|
|
||||||
wVersionRequested = MAKEWORD( 2, 2 );
|
wVersionRequested = MAKEWORD( 2, 2 );
|
||||||
|
|
||||||
err = WSAStartup( wVersionRequested, &wsaData );
|
err = WSAStartup(wVersionRequested, &wsaData);
|
||||||
if ( err != 0 ) {
|
if ( err != 0 ) {
|
||||||
/* Tell the user that we could not find a usable */
|
/* Tell the user that we could not find a usable */
|
||||||
/* WinSock DLL. */
|
/* WinSock DLL. */
|
||||||
@ -2788,20 +2785,20 @@ int UpnpInitThreadPools()
|
|||||||
|
|
||||||
if (ThreadPoolInit(&gSendThreadPool, &attr) != UPNP_E_SUCCESS) {
|
if (ThreadPoolInit(&gSendThreadPool, &attr) != UPNP_E_SUCCESS) {
|
||||||
ret = UPNP_E_INIT_FAILED;
|
ret = UPNP_E_INIT_FAILED;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ThreadPoolInit(&gRecvThreadPool, &attr) != UPNP_E_SUCCESS) {
|
if (ThreadPoolInit(&gRecvThreadPool, &attr) != UPNP_E_SUCCESS) {
|
||||||
ret = UPNP_E_INIT_FAILED;
|
ret = UPNP_E_INIT_FAILED;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ThreadPoolInit(&gMiniServerThreadPool, &attr) != UPNP_E_SUCCESS) {
|
if (ThreadPoolInit(&gMiniServerThreadPool, &attr) != UPNP_E_SUCCESS) {
|
||||||
ret = UPNP_E_INIT_FAILED;
|
ret = UPNP_E_INIT_FAILED;
|
||||||
goto ExitFunction;
|
goto exit_function;
|
||||||
}
|
}
|
||||||
|
|
||||||
ExitFunction:
|
exit_function:
|
||||||
if (ret != UPNP_E_SUCCESS) {
|
if (ret != UPNP_E_SUCCESS) {
|
||||||
UpnpSdkInit = 0;
|
UpnpSdkInit = 0;
|
||||||
UpnpFinish();
|
UpnpFinish();
|
||||||
@ -3262,16 +3259,16 @@ void UpnpThreadDistribution(struct UpnpNonblockParam *Param)
|
|||||||
UpnpStateVarComplete_delete(Evt);
|
UpnpStateVarComplete_delete(Evt);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif // EXCLUDE_SOAP == 0
|
#endif /* EXCLUDE_SOAP == 0 */
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
} // end of switch(Param->FunName)
|
} /* end of switch(Param->FunName) */
|
||||||
|
|
||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"Exiting UpnpThreadDistribution \n" );
|
"Exiting UpnpThreadDistribution \n" );
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // INCLUDE_CLIENT_APIS
|
#endif /* INCLUDE_CLIENT_APIS */
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -3339,14 +3336,14 @@ Upnp_Handle_Type GetDeviceHandleInfo(
|
|||||||
UpnpDevice_Handle *device_handle_out,
|
UpnpDevice_Handle *device_handle_out,
|
||||||
struct Handle_Info **HndInfo)
|
struct Handle_Info **HndInfo)
|
||||||
{
|
{
|
||||||
// Check if we've got a registered device of the address family specified.
|
/* Check if we've got a registered device of the address family specified. */
|
||||||
if ((AddressFamily == AF_INET && UpnpSdkDeviceRegisteredV4 == 0) ||
|
if ((AddressFamily == AF_INET && UpnpSdkDeviceRegisteredV4 == 0) ||
|
||||||
(AddressFamily == AF_INET6 && UpnpSdkDeviceregisteredV6 == 0)) {
|
(AddressFamily == AF_INET6 && UpnpSdkDeviceregisteredV6 == 0)) {
|
||||||
*device_handle_out = -1;
|
*device_handle_out = -1;
|
||||||
return HND_INVALID;
|
return HND_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find it.
|
/* Find it. */
|
||||||
for (*device_handle_out=1; *device_handle_out < NUM_HANDLE; (*device_handle_out)++) {
|
for (*device_handle_out=1; *device_handle_out < NUM_HANDLE; (*device_handle_out)++) {
|
||||||
if (GetHandleInfo(*device_handle_out, HndInfo) == HND_DEVICE) {
|
if (GetHandleInfo(*device_handle_out, HndInfo) == HND_DEVICE) {
|
||||||
if ((*HndInfo)->DeviceAf == AddressFamily) {
|
if ((*HndInfo)->DeviceAf == AddressFamily) {
|
||||||
@ -3428,7 +3425,7 @@ int PrintHandleInfo(UpnpClient_Handle Hnd)
|
|||||||
if(HndInfo->HType != HND_CLIENT)
|
if(HndInfo->HType != HND_CLIENT)
|
||||||
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,
|
||||||
"DescURL_%s\n", HndInfo->DescURL );
|
"DescURL_%s\n", HndInfo->DescURL );
|
||||||
#endif
|
#endif /* INCLUDE_DEVICE_APIS */
|
||||||
} else {
|
} else {
|
||||||
return UPNP_E_INVALID_HANDLE;
|
return UPNP_E_INVALID_HANDLE;
|
||||||
}
|
}
|
||||||
@ -3798,7 +3795,7 @@ int UpnpEnableWebserver(int enable)
|
|||||||
bWebServerState = WEB_SERVER_DISABLED;
|
bWebServerState = WEB_SERVER_DISABLED;
|
||||||
SetHTTPGetCallback( NULL );
|
SetHTTPGetCallback( NULL );
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif /* INTERNAL_WEB_SERVER */
|
||||||
default:
|
default:
|
||||||
return UPNP_E_INVALID_PARAM;
|
return UPNP_E_INVALID_PARAM;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user