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