X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmiracle%2Fmiracle_server.c;h=50d5bf046bb147c4814ea3afd88698475bd6f7fd;hb=f4c97790c8a379ff18b2488ceda302f05f6ad820;hp=3c82c3387af4f49bf473a26f59f6a8af54ec5c37;hpb=9390e8b584f3f717f0a326893c0e37cf187a0a51;p=melted 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 ); } }