]> git.evergreen-ils.org Git - OpenSRF.git/blob - src/libstack/osrf_system.c
moved router, gateways to a single config file opensrf_core.xml
[OpenSRF.git] / 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, char* contextnode ) {
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         osrf_config_context = contextnode;
17
18         char* log_file          = config_value( "opensrf.bootstrap", "//%s/logfile", contextnode );
19         char* log_level = config_value( "opensrf.bootstrap", "//%s/loglevel", contextnode );
20         char* domain            = config_value( "opensrf.bootstrap", "//%s/domains/domain1", contextnode ); /* just the first for now */
21         char* username          = config_value( "opensrf.bootstrap", "//%s/username", contextnode );
22         char* password          = config_value( "opensrf.bootstrap", "//%s/passwd", contextnode );
23         char* port                      = config_value( "opensrf.bootstrap", "//%s/port", contextnode );
24         char* unixpath          = config_value( "opensrf.bootstrap", "//%s/unixpath", contextnode );
25
26         int llevel = 0;
27         int iport = 0;
28         if(port) iport = atoi(port);
29         if(log_level) llevel = atoi(log_level);
30
31         log_init( llevel, log_file );
32
33         info_handler("Bootstrapping system with domain %s, port %d, and unixpath %s", domain, iport, unixpath );
34
35         transport_client* client = client_init( domain, iport, unixpath, 0 );
36         char buf[256];
37         memset(buf,0,256);
38         char* host = getenv("HOSTNAME");
39         sprintf(buf, "client_%s_%d", host, getpid() );
40
41         if(client_connect( client, username, password, buf, 10, AUTH_DIGEST )) {
42                 global_client = client;
43         }
44
45         free(log_level);
46         free(log_file);
47         free(domain);
48         free(username);
49         free(password);
50         free(port);     
51         free(unixpath);
52
53         if(global_client)
54                 return 1;
55
56         return 0;
57 }
58
59 int osrf_system_shutdown() {
60         config_reader_free();
61         log_free();
62         client_disconnect( global_client );
63         client_free( global_client );
64         global_client = NULL;
65         return 1;
66 }
67
68
69
70