]> git.evergreen-ils.org Git - Evergreen.git/blob - OpenSRF/src/libstack/osrf_system.c
memory leak cleaning, more to come.
[Evergreen.git] / OpenSRF / src / libstack / osrf_system.c
1 #include "opensrf/osrf_system.h"
2
3 transport_client* global_client;
4
5 transport_client* osrf_system_get_transport_client() {
6         return global_client;
7 }
8
9 int osrf_system_bootstrap_client( char* config_file ) {
10         if( config_file == NULL )
11                 fatal_handler("No Config File Specified\n" );
12
13         config_reader_init( "opensrf.bootstrap", config_file ); 
14         char* log_file          = config_value( "opensrf.bootstrap", "//logs/client" );
15         char* log_level = config_value( "opensrf.bootstrap", "//bootstrap/debug" );
16         char* domain            = config_value( "opensrf.bootstrap", "//bootstrap/domains/domain1" ); /* just the first for now */
17         char* username          = config_value( "opensrf.bootstrap", "//bootstrap/username" );
18         char* password          = config_value( "opensrf.bootstrap", "//bootstrap/passwd" );
19         char* port                      = config_value( "opensrf.bootstrap", "//bootstrap/port" );
20         int llevel = 0;
21         int iport = atoi(port);
22
23         if                      (!strcmp(log_level, "ERROR"))   llevel = LOG_ERROR;
24         else if (!strcmp(log_level, "WARN"))    llevel = LOG_WARNING;
25         else if (!strcmp(log_level, "INFO"))    llevel = LOG_INFO;
26         else if (!strcmp(log_level, "DEBUG"))   llevel = LOG_DEBUG;
27
28         log_init( llevel, log_file );
29
30         // XXX config values 
31         transport_client* client = client_init( domain, iport, 0 );
32         char buf[256];
33         memset(buf,0,256);
34         char* host = getenv("HOSTNAME");
35         sprintf(buf, "client_%s_%d", host, getpid() );
36
37         if(client_connect( client, username, password, buf, 10, AUTH_DIGEST )) {
38                 global_client = client;
39         }
40
41         free(log_level);
42         free(log_file);
43         free(domain);
44         free(username);
45         free(password);
46         free(port);
47
48         if(global_client)
49                 return 1;
50
51         return 0;
52 }
53
54 int osrf_system_shutdown() {
55         config_reader_free();
56         log_free();
57         client_disconnect( global_client );
58         client_free( global_client );
59         global_client = NULL;
60         return 1;
61 }
62
63
64
65