/* Commands sent to File daemon */
static char restorecmd[] = "restore replace=%c prelinks=%d where=%s\n";
-static char restorecmdR[] = "restore replace=%c prelinks=%d rwhere=%s\n";
+static char restorecmdR[] = "restore replace=%c prelinks=%d regexwhere=%s\n";
static char storaddr[] = "storage address=%s port=%d ssl=0\n";
/* Responses received from File daemon */
}
/* Send restore command */
- char replace, *where, *cmd;
+ char replace, *where, *cmd=NULL;
char empty = '\0';
if (jcr->replace != 0) {
} else {
replace = REPLACE_ALWAYS; /* always replace */
}
- if (jcr->where) {
+
+ where = ∅ /* default */
+
+ if (jcr->RegexWhere) {
+ where = jcr->RegexWhere; /* override */
+ cmd = restorecmdR;
+ } else if (jcr->job->RegexWhere) {
+ where = jcr->job->RegexWhere; /* no override take from job */
+ cmd = restorecmdR;
+
+ } else if (jcr->where) {
where = jcr->where; /* override */
+ cmd = restorecmd;
} else if (jcr->job->RestoreWhere) {
where = jcr->job->RestoreWhere; /* no override take from job */
- } else {
- where = ∅ /* None */
- }
+ cmd = restorecmd;
+ }
jcr->prefix_links = jcr->job->PrefixLinks;
- if (jcr->where_use_regexp) {
- cmd = restorecmdR;
- } else {
- cmd = restorecmd;
- }
-
bash_spaces(where);
bnet_fsend(fd, cmd, replace, jcr->prefix_links, where);
unbash_spaces(where);