diff --git a/require-ess/src/require.c b/require-ess/src/require.c index 1478780489b69c55362bf6e6421fbd4f82205723..b91e88400505596eec5c42db918c2236bf9f1c0f 100644 --- a/require-ess/src/require.c +++ b/require-ess/src/require.c @@ -352,6 +352,8 @@ char *realpathSeparator(const char *location) { return buffer; } +int isModuleLoaded(const char *libname); + static int setupDbPath(const char *module, const char *dbdir) { char *absdir = realpathSeparator(dbdir); /* so we can change directory later safely */ @@ -373,6 +375,9 @@ static int setupDbPath(const char *module, const char *dbdir) { putenvprintf("%s_DB=%s", module, absdir); putenvprintf("TEMPLATES=%s", absdir); + if (isModuleLoaded("stream")) { + pathAdd("STREAM_PROTOCOL_PATH", absdir); + } pathAdd("EPICS_DB_INCLUDE_PATH", absdir); free(absdir); return 0; @@ -727,6 +732,16 @@ const char *getLibLocation(const char *libname) { return NULL; } +int isModuleLoaded(const char *libname) { + moduleitem *m; + + for (m = loadedModules; m; m = m->next) { + if (strcmp(m->content, libname) == 0) + return TRUE; + } + return FALSE; +} + int libversionShow(const char *outfile) { moduleitem *m; size_t lm, lv;