diff --git a/configure b/configure index 0b4da648..a88112d2 100755 --- a/configure +++ b/configure @@ -16713,7 +16713,7 @@ fi if test "${with_default_local_prefix+set}" = set; then : withval=$with_default_local_prefix; SPINDLE_LOCAL_PREFIX=${withval} else - SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX:$COMMPATHS" + SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX" fi diff --git a/configure.common.ac b/configure.common.ac index 88e33663..ea8f9539 100644 --- a/configure.common.ac +++ b/configure.common.ac @@ -40,7 +40,7 @@ AC_ARG_WITH(commpath, AC_ARG_WITH(default-local-prefix, [AS_HELP_STRING([--with-default-local-prefix=DIRS],[Colon-seperated list of directories that Spindle will not cache files out of])], [SPINDLE_LOCAL_PREFIX=${withval}], - [SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX:$COMMPATHS"]) + [SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX"]) AC_DEFINE_UNQUOTED([SPINDLE_PORT],[$SPINDLE_PORT],[The default port for Spindle]) AC_DEFINE_UNQUOTED([NUM_COBO_PORTS],[$NUM_COBO_PORTS],[Number of ports for COBO to search for an open port]) AC_DEFINE_UNQUOTED([SPINDLE_MAX_PORT],[$(($SPINDLE_PORT + $NUM_COBO_PORTS - 1))],[The maximum port value]) diff --git a/src/client/configure b/src/client/configure index cd790db9..63f1a2a1 100755 --- a/src/client/configure +++ b/src/client/configure @@ -12638,7 +12638,7 @@ fi if test "${with_default_local_prefix+set}" = set; then : withval=$with_default_local_prefix; SPINDLE_LOCAL_PREFIX=${withval} else - SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX:$COMMPATHS" + SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX" fi diff --git a/src/fe/configure b/src/fe/configure index 380b4e70..48561b8f 100755 --- a/src/fe/configure +++ b/src/fe/configure @@ -16488,7 +16488,7 @@ fi if test "${with_default_local_prefix+set}" = set; then : withval=$with_default_local_prefix; SPINDLE_LOCAL_PREFIX=${withval} else - SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX:$COMMPATHS" + SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX" fi diff --git a/src/server/auditserver/ldcs_audit_server_handlers.c b/src/server/auditserver/ldcs_audit_server_handlers.c index c7e73e6b..a37262fa 100644 --- a/src/server/auditserver/ldcs_audit_server_handlers.c +++ b/src/server/auditserver/ldcs_audit_server_handlers.c @@ -3020,6 +3020,38 @@ int handle_cachepath_consensus(ldcs_process_data_t *procdata) debug_printf2( "The commpath is: %s\n", procdata->commpath ); } + /* Append the final cachepath and commpath to local-prefix so we don't try to + * cache files that are already in the cache or communication directories */ + if (procdata->localprefix && (procdata->cachepath || procdata->commpath)) { + size_t old_len = strlen(procdata->localprefix); + size_t cache_len = procdata->cachepath ? strlen(procdata->cachepath) : 0; + size_t comm_len = procdata->commpath ? strlen(procdata->commpath) : 0; + // Calculate space needed: old + ':' + cachepath + ':' + commpath + '\0' + size_t colons = 0; + if (old_len > 0 && cache_len > 0) colons++; + if ((old_len > 0 || cache_len > 0) && comm_len > 0) colons++; + + char *new_localprefix = (char*)malloc(old_len + colons + cache_len + comm_len + 1); + if (new_localprefix) { + new_localprefix[0] = '\0'; + if (old_len > 0) { + strcpy(new_localprefix, procdata->localprefix); + } + if (procdata->cachepath) { + if (strlen(new_localprefix) > 0) strcat(new_localprefix, ":"); + strcat(new_localprefix, procdata->cachepath); + } + if (procdata->commpath) { + if (strlen(new_localprefix) > 0) strcat(new_localprefix, ":"); + strcat(new_localprefix, procdata->commpath); + } + procdata->localprefix = new_localprefix; + debug_printf2("Updated local-prefix to include cachepath and commpath: %s\n", procdata->localprefix); + } else { + err_printf("Failed to allocate memory for updated local-prefix\n"); + } + } + ldcs_audit_server_filemngt_init(procdata->cachepath, procdata->commpath); test_printf(" cachepath=%s\n", procdata->cachepath); diff --git a/src/server/configure b/src/server/configure index 335362c8..318303eb 100755 --- a/src/server/configure +++ b/src/server/configure @@ -16486,7 +16486,7 @@ fi if test "${with_default_local_prefix+set}" = set; then : withval=$with_default_local_prefix; SPINDLE_LOCAL_PREFIX=${withval} else - SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX:$COMMPATHS" + SPINDLE_LOCAL_PREFIX="$DEFAULT_LOCAL_PREFIX" fi