From f4c97790c8a379ff18b2488ceda302f05f6ad820 Mon Sep 17 00:00:00 2001 From: lilo_booter Date: Sun, 19 Sep 2004 09:31:49 +0000 Subject: [PATCH] Extending miracles functionality git-svn-id: https://mlt.svn.sourceforge.net/svnroot/mlt/trunk/mlt@428 d19143bc-622f-0410-bfdd-b5b2a6649095 --- src/miracle/miracle.c | 3 +++ src/miracle/miracle_server.c | 14 ++++++++++++-- src/miracle/miracle_server.h | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/miracle/miracle.c b/src/miracle/miracle.c index e3d26f4..2e09830 100644 --- a/src/miracle/miracle.c +++ b/src/miracle/miracle.c @@ -97,6 +97,9 @@ int main( int argc, char **argv ) atexit( main_cleanup ); + /* Set the config script */ + miracle_server_set_config( server, "/etc/miracle.conf" ); + /* Execute the server */ error = miracle_server_execute( server ); diff --git a/src/miracle/miracle_server.c b/src/miracle/miracle_server.c index 3c82c33..50d5bf0 100644 --- a/src/miracle/miracle_server.c +++ b/src/miracle/miracle_server.c @@ -62,6 +62,15 @@ miracle_server miracle_server_init( char *id ) return server; } +void miracle_server_set_config( miracle_server server, char *config ) +{ + if ( server != NULL ) + { + free( server->config ); + server->config = config != NULL ? strdup( config ) : NULL; + } +} + /** Set the port of the server. */ @@ -209,10 +218,10 @@ int miracle_server_execute( miracle_server server ) if ( response != NULL && valerie_response_get_error_code( response ) == 100 ) { /* read configuration file */ - if ( response != NULL && !server->proxy ) + if ( response != NULL && !server->proxy && server->config != NULL ) { valerie_response_close( response ); - response = valerie_parser_run( server->parser, "/etc/miracle.conf" ); + response = valerie_parser_run( server->parser, server->config ); if ( valerie_response_count( response ) > 1 ) { @@ -267,6 +276,7 @@ void miracle_server_shutdown( miracle_server server ) server->shutdown = 1; pthread_join( server->thread, NULL ); valerie_parser_close( server->parser ); + miracle_server_set_config( server, NULL ); close( server->socket ); } } diff --git a/src/miracle/miracle_server.h b/src/miracle/miracle_server.h index 95dfb52..d79b987 100644 --- a/src/miracle/miracle_server.h +++ b/src/miracle/miracle_server.h @@ -51,6 +51,7 @@ typedef struct int proxy; char remote_server[ 50 ]; int remote_port; + char *config; } *miracle_server, miracle_server_t; @@ -58,6 +59,7 @@ typedef struct */ extern miracle_server miracle_server_init( char * ); +extern void miracle_server_set_config( miracle_server, char * ); extern void miracle_server_set_port( miracle_server, int ); extern void miracle_server_set_proxy( miracle_server, char * ); extern int miracle_server_execute( miracle_server ); -- 1.7.4.4