1 #include "osrf_system.h"
3 transport_client* global_client;
4 char* system_config = NULL;
6 transport_client* osrf_system_get_transport_client() {
10 int osrf_system_bootstrap_client( char* config_file, char* contextnode ) {
12 if( !config_file || !contextnode )
13 fatal_handler("No Config File Specified\n" );
16 free(osrf_config_context);
17 system_config = strdup(config_file);
18 osrf_config_context = strdup(contextnode);
20 config_reader_init( "opensrf.bootstrap", config_file );
22 char* log_file = config_value( "opensrf.bootstrap", "//%s/logfile", contextnode );
23 char* log_level = config_value( "opensrf.bootstrap", "//%s/loglevel", contextnode );
24 char* domain = config_value( "opensrf.bootstrap", "//%s/domains/domain1", contextnode ); /* just the first for now */
25 char* username = config_value( "opensrf.bootstrap", "//%s/username", contextnode );
26 char* password = config_value( "opensrf.bootstrap", "//%s/passwd", contextnode );
27 char* port = config_value( "opensrf.bootstrap", "//%s/port", contextnode );
28 char* unixpath = config_value( "opensrf.bootstrap", "//%s/unixpath", contextnode );
32 if(port) iport = atoi(port);
33 if(log_level) llevel = atoi(log_level);
35 log_init( llevel, log_file );
37 info_handler("Bootstrapping system with domain %s, port %d, and unixpath %s", domain, iport, unixpath );
39 transport_client* client = client_init( domain, iport, unixpath, 0 );
43 char* host = getenv("HOSTNAME");
44 sprintf(buf, "client_%s_%d", host, getpid() );
46 if(client_connect( client, username, password, buf, 10, AUTH_DIGEST )) {
47 global_client = client;
64 int osrf_system_disconnect_client() {
65 client_disconnect( global_client );
66 client_free( global_client );
71 int osrf_system_shutdown() {
73 osrf_system_disconnect_client();
75 free(osrf_config_context);
76 osrf_settings_free_host_config(NULL);