Revamped debug initialisation and config loading.

git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@1208 e3e1d417-86f3-4887-817a-d78f3d33393f
This commit is contained in:
stan 2005-01-15 17:45:51 +00:00
parent 5ed307f0c5
commit dc3b3691a0
9 changed files with 64 additions and 72 deletions

View File

@ -60,6 +60,7 @@ void zmLoadConfig()
}
}
fclose( cfg);
zmDbConnect();
config.Load();
}

View File

@ -36,12 +36,13 @@ static const char *zm_dbg_file;
static int zm_dbg_line;
static int zm_dbg_code;
static char zm_dbg_class[4];
const char *zm_dbg_name = "";
int zm_dbg_pid = -1;
static int zm_dbg_switched_on = FALSE;
char zm_dbg_name[64];
char zm_dbg_id[64];
int zm_dbg_level = 0;
char zm_dbg_log[128] = "";
int zm_dbg_pid = -1;
char zm_dbg_log[PATH_MAX] = "";
FILE *zm_dbg_log_fd = (FILE *)NULL;
int zm_dbg_print = FALSE;
int zm_dbg_flush = FALSE;
@ -55,7 +56,6 @@ void zmUsrHandler( int sig )
{
if( sig == SIGUSR1)
{
zm_dbg_switched_on = TRUE;
if ( zm_dbg_level < 9 )
{
zm_dbg_level++;
@ -71,7 +71,7 @@ void zmUsrHandler( int sig )
Info(( "Debug Level Changed to %d", zm_dbg_level ));
}
int zmGetDebugEnv( const char * const command )
int zmGetDebugEnv()
{
char buffer[128];
char *env_ptr;
@ -109,14 +109,37 @@ int zmGetDebugEnv( const char * const command )
zm_dbg_runtime = atoi( env_ptr );
}
sprintf(buffer,"ZM_DBG_LEVEL_%s",command);
env_ptr = NULL;
sprintf(buffer,"ZM_DBG_LEVEL_%s_%s",zm_dbg_name,zm_dbg_id);
env_ptr = getenv(buffer);
if( env_ptr != (char *)NULL )
if ( env_ptr == (char *)NULL )
{
sprintf(buffer,"ZM_DBG_LEVEL_%s",zm_dbg_name);
env_ptr = getenv(buffer);
if ( env_ptr == (char *)NULL )
{
sprintf(buffer,"ZM_DBG_LEVEL");
env_ptr = getenv(buffer);
}
}
if ( env_ptr != (char *)NULL )
{
zm_dbg_level = atoi(env_ptr);
}
snprintf( buffer, sizeof(buffer), "ZM_DBG_LOG_%s", command );
env_ptr = getenv( buffer );
env_ptr = NULL;
sprintf(buffer,"ZM_DBG_LOG_%s_%s",zm_dbg_name,zm_dbg_id);
env_ptr = getenv(buffer);
if ( env_ptr == (char *)NULL )
{
sprintf(buffer,"ZM_DBG_LOG_%s",zm_dbg_name);
env_ptr = getenv(buffer);
if ( env_ptr == (char *)NULL )
{
sprintf(buffer,"ZM_DBG_LOG");
env_ptr = getenv(buffer);
}
}
if ( env_ptr != (char *)NULL )
{
/* If we do not want to add a pid to the debug logs
@ -138,10 +161,10 @@ int zmGetDebugEnv( const char * const command )
}
}
return(0);
return( 0 );
}
int zmDebugInitialise()
int zmDebugInitialise( const char *name, const char *id, int level )
{
FILE *tmp_fp;
@ -153,6 +176,10 @@ int zmDebugInitialise()
Debug(1,("Initialising Debug"));
strncpy( zm_dbg_name, name, sizeof(zm_dbg_name) );
strncpy( zm_dbg_id, id, sizeof(zm_dbg_id) );
zm_dbg_level = level;
/* Now set up the syslog stuff */
(void) openlog( zm_dbg_name, LOG_PID|LOG_NDELAY, LOG_LOCAL1 );
@ -161,7 +188,7 @@ int zmDebugInitialise()
zm_dbg_pid = getpid();
zm_dbg_log_fd = (FILE *)NULL;
if( (status = zmGetDebugEnv(zm_dbg_name) ) < 0)
if( (status = zmGetDebugEnv() ) < 0)
{
Error(("Debug Environment Error, status = %d",status));
return(ZM_DBG_ERROR);
@ -208,9 +235,9 @@ int zmDebugInitialise()
return(ZM_DBG_OK);
}
int zmDbgInit()
int zmDbgInit( const char *name, const char *id, int level )
{
return((zmDebugInitialise() == ZM_DBG_OK ? 0 : 1));
return((zmDebugInitialise( name, id, level ) == ZM_DBG_OK ? 0 : 1));
}
int zmDebugTerminate()

View File

@ -18,6 +18,7 @@
*/
#include <sys/types.h>
#include <limits.h>
#ifndef TRUE
#define TRUE 1
@ -96,14 +97,14 @@ extern "C" {
/* function declarations */
void zmUsrHandler( int sig );
int zmGetDebugEnv( const char * const command );
int zmDebugInitialise( void );
int zmGetDebugEnv( void );
int zmDebugInitialise( const char *name, const char *id, int level );
int zmDebugTerminate( void );
void zmDbgSubtractTime( struct timeval * const tp1, struct timeval * const tp2 );
#if defined(__STDC__) || defined(__cplusplus)
int zmDbgInit(void);
int zmDbgInit( const char *name, const char *id, int level );
int zmDbgTerm(void);
int zmDbgPrepare(const char * const file,const int line, const int code);
int zmDbgOutput(const char *fstring, ... ) __attribute__ ((format(printf, 1, 2)));
@ -121,7 +122,8 @@ extern char zm_dbg_log[];
#include <stdio.h>
#endif
extern FILE *zm_dbg_log_fd;
extern const char *zm_dbg_name;
extern char zm_dbg_name[];
extern char zm_dbg_id[];
extern int zm_dbg_print;
extern int zm_dbg_flush;
extern int zm_dbg_add_log_id;
@ -145,7 +147,7 @@ extern int zm_dbg_add_log_id;
#define Enter()
#define Exit()
#define zmDbgInit()
#define zmDbgInit(name,id,level)
#define zmDbgTerm()
#endif /* !ZM_DBG_OFF */

View File

@ -118,18 +118,13 @@ int main( int argc, char *argv[] )
exit( 0 );
}
char dbg_name_string[16];
snprintf( dbg_name_string, sizeof(dbg_name_string), "zma-m%d", id );
zm_dbg_name = dbg_name_string;
//snprintf( zm_dbg_log, sizeof(zm_dbg_log), "/tmp/zma-%d.log", id );
//zm_dbg_level = 1;
char dbg_id_string[16];
snprintf( dbg_id_string, sizeof(dbg_id_string), "m%d", id );
zmDbgInit();
zmDbgInit( "zma", dbg_id_string, 0 );
zmLoadConfig();
zmDbConnect();
Monitor *monitor = Monitor::Load( id, true, Monitor::ANALYSIS );
if ( monitor )

View File

@ -125,29 +125,24 @@ int main( int argc, char *argv[] )
exit( 0 );
}
zm_dbg_name = "zmc";
char dbg_name_string[16];
char dbg_id_string[16];
if ( device >= 0 )
{
snprintf( dbg_name_string, sizeof(dbg_name_string), "zmc-d%d", device );
snprintf( dbg_id_string, sizeof(dbg_id_string), "d%d", device );
}
else if ( host[0] )
{
snprintf( dbg_name_string, sizeof(dbg_name_string), "zmc-h%s", host );
snprintf( dbg_id_string, sizeof(dbg_id_string), "h%s", host );
}
else
{
snprintf( dbg_name_string, sizeof(dbg_name_string), "zmc-m%d", monitor_id );
snprintf( dbg_id_string, sizeof(dbg_id_string), "m%d", monitor_id );
}
zm_dbg_name = dbg_name_string;
zmDbgInit();
zmDbgInit( "zmc", dbg_id_string, 0 );
zmLoadConfig();
zmDbConnect();
Monitor **monitors = 0;
int n_monitors = 0;
if ( device >= 0 )

View File

@ -185,18 +185,13 @@ int main( int argc, char *argv[] )
exit( 0 );
}
char dbg_name_string[16];
snprintf( dbg_name_string, sizeof(dbg_name_string), "zmf-m%d", id );
zm_dbg_name = dbg_name_string;
//snprintf( zm_dbg_log, sizeof(zm_dbg_log), "/tmp/zmf-%d.log", id );
//zm_dbg_level = 1;
char dbg_id_string[16];
snprintf( dbg_id_string, sizeof(dbg_id_string), "m%d", id );
zmDbgInit();
zmDbgInit( "zmf", dbg_id_string, 0 );
zmLoadConfig();
zmDbConnect();
Monitor *monitor = Monitor::Load( id, false );
if ( !monitor )

View File

@ -89,10 +89,7 @@ bool fixVideoDevice( int device )
int main( int argc, char *argv[] )
{
char dbg_name_string[16] = "zmfix";
zm_dbg_name = dbg_name_string;
zmDbgInit();
zmDbgInit( "zmfix", "", -1 );
zmLoadConfig();
@ -110,8 +107,6 @@ int main( int argc, char *argv[] )
else
{
// Only do registered devices
zmDbConnect();
static char sql[BUFSIZ];
//snprintf( sql, sizeof(sql), "select distinct Device from Monitors where Function != 'None' and Type = 'Local'" );
snprintf( sql, sizeof(sql), "select distinct Device from Monitors where Type = 'Local'" );

View File

@ -135,32 +135,18 @@ int main( int argc, const char *argv[] )
char auth[64] = "";
char user[64] = "";
zm_dbg_name = "zms";
bool nph = false;
const char *basename = strrchr( argv[0], '/' );
const char *nph_prefix = "nph-";
if ( basename && !strncmp( basename+1, nph_prefix, strlen(nph_prefix) ) )
{
zm_dbg_name = "nph-zms";
nph = true;
}
//extern char **environ;
//char **env_ptr = environ;
//while ( *env_ptr )
//{
//printf( "X-Env: %s\n", *env_ptr );
//env_ptr++;
//}
//exit( 0 );
zmDbgInit();
zmDbgInit( "zms", "", 0 );
zmLoadConfig();
zmDbConnect();
const char *query = getenv( "QUERY_STRING" );
if ( query )
{

View File

@ -347,13 +347,9 @@ int main( int argc, char *argv[] )
}
//printf( "Monitor %d, Function %d\n", mon_id, function );
zm_dbg_name = "zmu";
zm_dbg_level = -1;
zmDbgInit();
zmDbgInit( "zmu", "", -1 );
zmLoadConfig();
zmDbConnect();
ValidateAccess( username, password, mon_id, function );