From bf5394a1ea56f72a278d3ad6fedf3c715f1fa8da Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 21 Feb 2007 21:46:22 +0000 Subject: [PATCH] moved the idl file fetching logic directly into oils_utils git-svn-id: svn://svn.open-ils.org/ILS/trunk@6979 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/c-apps/Makefile | 2 +- Open-ILS/src/c-apps/oils_auth.c | 5 ++--- Open-ILS/src/c-apps/oils_cstore.c | 9 +-------- Open-ILS/src/c-apps/oils_utils.c | 12 ++++++++++-- Open-ILS/src/c-apps/oils_utils.h | 7 ++++--- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/Open-ILS/src/c-apps/Makefile b/Open-ILS/src/c-apps/Makefile index 4ebbbd1915..3ecbe0e929 100644 --- a/Open-ILS/src/c-apps/Makefile +++ b/Open-ILS/src/c-apps/Makefile @@ -19,7 +19,7 @@ oils_dataloader: oils_dataloader.o oils_cstore.so: oils_cstore.o liboils_utils.so liboils_idl.so @echo $@ $(CC) -shared -W1 -L/usr/local/lib/dbd \ - $(LDLIBS) $(LDFLAGS) -loils_idl -ldbi -ldbdpgsql oils_cstore.o -o $(TMPDIR)/$@ + $(LDLIBS) $(LDFLAGS) -loils_idl -ldbi -loils_utils -ldbdpgsql oils_cstore.o -o $(TMPDIR)/$@ oils_rstore.o: oils_cstore.c oils_utils.h $(CC) $(CFLAGS) -I$(TMPDIR) -I$(TMPDIR)/opensrf/ -DRSTORE -c -o $@ oils_cstore.c diff --git a/Open-ILS/src/c-apps/oils_auth.c b/Open-ILS/src/c-apps/oils_auth.c index cb0bf0c92e..ad3fb3dcfb 100644 --- a/Open-ILS/src/c-apps/oils_auth.c +++ b/Open-ILS/src/c-apps/oils_auth.c @@ -27,9 +27,8 @@ int osrfAppInitialize() { osrfLogInfo(OSRF_LOG_MARK, "Initializing Auth Server..."); - char* idl_filename = osrf_settings_host_value("/IDL"); - if (!oilsInitIDL( idl_filename )) exit(1); - free(idl_filename); + /* load and parse the IDL */ + if (!oilsInitIDL(NULL)) return 1; /* return non-zero to indicate error */ osrfAppRegisterMethod( MODULENAME, diff --git a/Open-ILS/src/c-apps/oils_cstore.c b/Open-ILS/src/c-apps/oils_cstore.c index 7cc33abda3..72983a4b83 100644 --- a/Open-ILS/src/c-apps/oils_cstore.c +++ b/Open-ILS/src/c-apps/oils_cstore.c @@ -89,14 +89,7 @@ int osrfAppInitialize() { osrfLogInfo(OSRF_LOG_MARK, "Initializing the CStore Server..."); osrfLogInfo(OSRF_LOG_MARK, "Finding XML file..."); - char* idl_filename = osrf_settings_host_value("/IDL", MODULENAME); - osrfLogInfo(OSRF_LOG_MARK, "Found file:"); - osrfLogInfo(OSRF_LOG_MARK, idl_filename); - - if (!oilsIDLInit( idl_filename )) { - osrfLogError(OSRF_LOG_MARK, "Problem loading the IDL. Seacrest out!"); - exit(1); - } + if (!oilsInitIDL(NULL)) return 1; /* return non-zero to indicate error */ // Generic search thingy method_name = buffer_init(64); diff --git a/Open-ILS/src/c-apps/oils_utils.c b/Open-ILS/src/c-apps/oils_utils.c index 74fa652dfa..845a657fb5 100644 --- a/Open-ILS/src/c-apps/oils_utils.c +++ b/Open-ILS/src/c-apps/oils_utils.c @@ -1,19 +1,27 @@ #include "oils_utils.h" #include "oils_idl.h" -// XXX this is entirely untested!!! osrfHash* oilsInitIDL(char* idl_filename) { + int freeme = 0; + if(!idl_filename) { + idl_filename = osrf_settings_host_value("/IDL"); + freeme = 1; + } + if (!idl_filename) { - osrfLogError(OSRF_LOG_MARK, "At least give me a file to try!"); + osrfLogError(OSRF_LOG_MARK, "No settings config for '/IDL'"); return NULL; } + osrfLogInfo(OSRF_LOG_MARK, "Parsing IDL %s", idl_filename); + if (!oilsIDLInit( idl_filename )) { osrfLogError(OSRF_LOG_MARK, "Problem loading IDL file [%s]!", idl_filename); return NULL; } + if(freeme) free(idl_filename); return oilsIDL(); } diff --git a/Open-ILS/src/c-apps/oils_utils.h b/Open-ILS/src/c-apps/oils_utils.h index 590ff1da7d..3e134d5d24 100644 --- a/Open-ILS/src/c-apps/oils_utils.h +++ b/Open-ILS/src/c-apps/oils_utils.h @@ -12,11 +12,12 @@ #include "opensrf/osrf_settings.h" /** - An entirely untested IDL initializer. Returns NULL on failure + Loads the IDL. Returns NULL on failure or a pointer to the IDL data structure on success. - @param idl_filename The file to load the IDL from. + @param idl_filename If not provided, we'll fetch the + filename from the settings server */ -osrfHash* oilsInitIDL(char* idl_filename); +osrfHash* oilsInitIDL( char* idl_filename ); /** Returns the string value for field 'field' in the given object. -- 2.11.0