- Look for last '@' in a user@host spec.
authorWayne Davison <wayned@samba.org>
Tue, 1 Mar 2005 03:39:32 +0000 (03:39 +0000)
committerWayne Davison <wayned@samba.org>
Tue, 1 Mar 2005 03:39:32 +0000 (03:39 +0000)
clientserver.c
socket.c

index 0ed0514..531944a 100644 (file)
@@ -87,15 +87,12 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
                return -1;
        }
 
                return -1;
        }
 
-       if ((p = strchr(host, '@')) != NULL) {
+       if ((p = strrchr(host, '@')) != NULL) {
                user = host;
                host = p+1;
                *p = '\0';
        }
 
                user = host;
                host = p+1;
                *p = '\0';
        }
 
-       if (rsync_port == 0)
-               rsync_port = RSYNC_PORT;
-
        fd = open_socket_out_wrapped(host, rsync_port, bind_address,
                                     default_af_hint);
        if (fd == -1)
        fd = open_socket_out_wrapped(host, rsync_port, bind_address,
                                     default_af_hint);
        if (fd == -1)
index 4e6ef60..c6341ce 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -198,7 +198,7 @@ int open_socket_out(char *host, int port, const char *bind_address,
                strlcpy(buffer, h, sizeof buffer);
 
                /* Is the USER:PASS@ prefix present? */
                strlcpy(buffer, h, sizeof buffer);
 
                /* Is the USER:PASS@ prefix present? */
-               if ((cp = strchr(buffer, '@')) != NULL) {
+               if ((cp = strrchr(buffer, '@')) != NULL) {
                        *cp++ = '\0';
                        /* The remainder is the HOST:PORT part. */
                        h = cp;
                        *cp++ = '\0';
                        /* The remainder is the HOST:PORT part. */
                        h = cp;