if (protect_args && !local_server) /* unprotected args stop here */
args[ac++] = NULL;
- if (do_stats)
- args[ac++] = "--stats";
-
if (list_only > 1)
args[ac++] = "--list-only";
args[ac++] = "--super";
if (size_only)
args[ac++] = "--size-only";
+ if (do_stats)
+ args[ac++] = "--stats";
} else {
if (skip_compress) {
if (asprintf(&arg, "--skip-compress=%s", skip_compress) < 0)
* (required for parsing) [ and ] chars elided from the returned string. */
static char *parse_hostspec(char *str, char **path_start_ptr, int *port_ptr)
{
- char *s = str;
- char *host_start = str;
+ char *s, *host_start = str;
int hostlen = 0, userlen = 0;
char *ret;
- for ( ; ; s++) {
+ for (s = str; ; s++) {
if (!*s) {
/* It is only OK if we run out of string with rsync:// */
- if (port_ptr)
- break;
- return NULL;
+ if (!port_ptr)
+ return NULL;
+ if (!hostlen)
+ hostlen = s - host_start;
+ break;
}
if (*s == ':' || *s == '/') {
if (!hostlen)
} else if (port_ptr) {
*port_ptr = atoi(s);
while (isDigit(s)) s++;
- if (*s++ != '/')
+ if (*s && *s++ != '/')
return NULL;
}
break;