cfg.port = 22;
}
- if (portnumber)
- cfg.port = portnumber;
-
/* Set username */
if (user != NULL && user[0] != '\0') {
strncpy(cfg.username, user, sizeof(cfg.username)-1);
cfg.username[sizeof(cfg.username)-1] = '\0';
- cfg.port = 22;
} else if (cfg.username[0] == '\0') {
bump("Empty user name");
}
if (cfg.protocol != PROT_SSH)
cfg.port = 22;
+ if (portnumber)
+ cfg.port = portnumber;
+
err = ssh_init(cfg.host, cfg.port, cmd, &realhost);
if (err != NULL)
bump("ssh_init: %s", err);
}
if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
- if (recursive)
- rsource(src);
- else
+ if (recursive) {
+ /*
+ * Avoid . and .. directories.
+ */
+ char *p;
+ p = strrchr(src, '/');
+ if (!p)
+ p = strrchr(src, '\\');
+ if (!p)
+ p = src;
+ else
+ p++;
+ if (!strcmp(p, ".") || !strcmp(p, ".."))
+ /* skip . and .. */;
+ else
+ rsource(src);
+ } else {
run_err("%s: not a regular file", src);
+ }
return;
}