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
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,
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);
#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();
}
#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.