libUPnP  1.6.17
Defines | Functions
upnpdebug.h File Reference
#include "ThreadPool.h"
#include "upnpconfig.h"
#include "UpnpGlobal.h"
#include <stdio.h>
Include dependency graph for upnpdebug.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define UPNP_DEFAULT_LOG_LEVEL   UPNP_ALL

Functions

int UpnpInitLog (void)
 Initialize the log files.
void UpnpSetLogLevel (Upnp_LogLevel log_level)
 Set the log level (see Upnp_LogLevel).
void UpnpCloseLog (void)
 Closes the log files.
void UpnpSetLogFileNames (const char *ErrFileName, const char *InfoFileName)
 Set the name for error and information files, respectively.
FILE * UpnpGetDebugFile (Upnp_LogLevel level, Dbg_Module module)
 Check if the module is turned on for debug and returns the file descriptor corresponding to the debug level.
int DebugAtThisLevel (Upnp_LogLevel DLevel, Dbg_Module Module)
 Returns true if debug output should be done in this module.
void UpnpPrintf (Upnp_LogLevel DLevel, Dbg_Module Module, const char *DbgFileName, int DbgLineNo, const char *FmtStr,...)
 Prints the debug statement either on the standard output or log file along with the information from where this debug statement is coming.
void UpnpDisplayFileAndLine (FILE *fd, const char *DbgFileName, int DbgLineNo)
 Writes the file name and file number from where debug statement is coming to the log file.
void UpnpDisplayBanner (FILE *fd, const char **lines, size_t size, size_t starlength)
 Writes the buffer in the file as per the requested banner.

Upnp_LogLevel

The user has the option to select 4 different types of debugging levels, see UpnpSetLogLevel. The critical level will show only those messages which can halt the normal processing of the library, like memory allocation errors. The remaining three levels are just for debugging purposes. Packet level will display all the incoming and outgoing packets that are flowing between the control point and the device. Info Level displays the other important operational information regarding the working of the library. If the user selects All, then the library displays all the debugging information that it has.

  • UPNP_CRITICAL [0]
  • UPNP_PACKET [1]
  • UPNP_INFO [2]
  • UPNP_ALL [3]
enum  Upnp_Module {
  SSDP, SOAP, GENA, TPOOL,
  MSERV, DOM, API, HTTP
}
enum  Upnp_LogLevel_e { UPNP_CRITICAL, UPNP_PACKET, UPNP_INFO, UPNP_ALL }
typedef enum Upnp_Module Dbg_Module
typedef enum Upnp_LogLevel_e Upnp_LogLevel

Detailed Description


Define Documentation

#define UPNP_DEFAULT_LOG_LEVEL   UPNP_ALL

Default log level : see Upnp_LogLevel


Function Documentation

int DebugAtThisLevel ( Upnp_LogLevel  DLevel,
Dbg_Module  Module 
)

Returns true if debug output should be done in this module.

Returns:
Nonzero value if true, zero if false.
Parameters:
[in]DLevelThe level of the debug logging. It will decide whether debug statement will go to standard output, or any of the log files.
[in]ModuleDebug will go in the name of this module.

References g_log_level.

Referenced by UpnpGetDebugFile(), and UpnpPrintf().

void UpnpCloseLog ( void  )

Closes the log files.

References ErrFileHnd, GlobalDebugMutex, and InfoFileHnd.

Referenced by UpnpFinish().

void UpnpDisplayBanner ( FILE *  fd,
const char **  lines,
size_t  size,
size_t  starlength 
)

Writes the buffer in the file as per the requested banner.

Parameters:
[in]fdfile descriptor where the banner will be written.
[in]linesThe buffer that will be written.
[in]sizeSize of the buffer.
[in]starlengthThis parameter provides the width of the banner.
void UpnpDisplayFileAndLine ( FILE *  fd,
const char *  DbgFileName,
int  DbgLineNo 
)

Writes the file name and file number from where debug statement is coming to the log file.

Parameters:
[in]fdFile descriptor where line number and file name will be written.
[in]DbgFileNameName of the file.
[in]DbgLineNoLine number of the file.

Referenced by UpnpPrintf().

FILE* UpnpGetDebugFile ( Upnp_LogLevel  level,
Dbg_Module  module 
)

Check if the module is turned on for debug and returns the file descriptor corresponding to the debug level.

Returns:
NULL if the module is turn off for debug otheriwse returns the right file descriptor.
Parameters:
[in]levelThe level of the debug logging. It will decide whether debug statement will go to standard output, or any of the log files.
[in]moduledebug will go in the name of this module.

References DebugAtThisLevel(), ErrFileHnd, and InfoFileHnd.

int UpnpInitLog ( void  )

Initialize the log files.

Returns:
-1 if fails or UPNP_E_SUCCESS if succeeds.

References ErrFileHnd, errFileName, GlobalDebugMutex, InfoFileHnd, infoFileName, and UPNP_E_SUCCESS.

Referenced by UpnpInitPreamble().

void UpnpPrintf ( Upnp_LogLevel  DLevel,
Dbg_Module  Module,
const char *  DbgFileName,
int  DbgLineNo,
const char *  FmtStr,
  ... 
)

Prints the debug statement either on the standard output or log file along with the information from where this debug statement is coming.

Parameters:
[in]DLevelThe level of the debug logging. It will decide whether debug statement will go to standard output, or any of the log files.
[in]Moduledebug will go in the name of this module.
[in]DbgFileNameName of the file from where debug statement is coming.
[in]DbgLineNoLine number of the file from where debug statement is coming.
[in]FmtStrPrintf like format specification.

References DebugAtThisLevel(), ErrFileHnd, GlobalDebugMutex, InfoFileHnd, and UpnpDisplayFileAndLine().

Referenced by AdvertiseAndReply(), AllocGenaHeaders(), Check_Connect_And_Wait_Connection(), create_ssdp_sock_reqv4(), create_ssdp_sock_v4(), DeviceAdvertisement(), DeviceShutdown(), FreeHandle(), gena_process_subscription_renewal_request(), gena_process_subscription_request(), GenaAutoRenewSubscription(), genaInitNotify(), genaInitNotifyExt(), genaNotifyAll(), genaNotifyAllExt(), genaRenewSubscription(), genaSubscribe(), genaUnregisterDevice(), get_action_node(), get_file_info(), get_miniserver_stopsock(), get_port(), get_var_name(), GetHandleInfo(), getlocalhostname(), handle_invoke_action(), handle_query_variable(), http_RecvMessage(), http_RecvPostMessage(), http_SendMessage(), NewRequestHandler(), notify_send_and_recv(), Param_delete(), PrintHandleInfo(), printService(), printServiceList(), printServiceTable(), PrintThreadPoolStats(), readFromSSDPSocket(), remove_dots(), RunMiniServer(), SearchByTarget(), send_action_response(), ServiceAdvertisement(), ServiceShutdown(), sock_destroy(), ssdp_handle_device_request(), start_event_handler(), StopMiniServer(), UpnpAcceptSubscription(), UpnpAcceptSubscriptionExt(), UpnpDownloadXmlDoc(), UpnpFinish(), UpnpGetIfInfo(), UpnpGetServiceVarStatus(), UpnpGetServiceVarStatusAsync(), UpnpInit(), UpnpInitPreamble(), UpnpInitStartServers(), UpnpNotify(), UpnpNotifyExt(), UpnpRegisterClient(), UpnpRegisterRootDevice(), UpnpRegisterRootDevice2(), UpnpRegisterRootDevice3(), UpnpRegisterRootDevice4(), UpnpRenewSubscription(), UpnpRenewSubscriptionAsync(), UpnpSearchAsync(), UpnpSendAction(), UpnpSendActionAsync(), UpnpSendActionEx(), UpnpSendActionExAsync(), UpnpSendAdvertisement(), UpnpSendAdvertisementLowPower(), UpnpSetMaxSubscriptions(), UpnpSetMaxSubscriptionTimeOut(), UpnpSubscribe(), UpnpSubscribeAsync(), UpnpThreadDistribution(), UpnpUnRegisterClient(), UpnpUnRegisterRootDevice(), UpnpUnRegisterRootDeviceLowPower(), UpnpUnSubscribe(), UpnpUnSubscribeAsync(), and valid_ssdp_msg().

void UpnpSetLogFileNames ( const char *  ErrFileName,
const char *  InfoFileName 
)

Set the name for error and information files, respectively.

Parameters:
[in]ErrFileNameName of the error file.
[in]InfoFileNameName of the information file.

References errFileName, and infoFileName.

void UpnpSetLogLevel ( Upnp_LogLevel  log_level)

Set the log level (see Upnp_LogLevel).

Parameters:
[in]log_levelLog level.

References g_log_level.