Fix rsync code to work with a username@ uri for bug #141185. Thanks to David-John...
authorZac Medico <zmedico@gentoo.org>
Sun, 6 Aug 2006 08:05:44 +0000 (08:05 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 6 Aug 2006 08:05:44 +0000 (08:05 -0000)
svn path=/main/trunk/; revision=4179

bin/emerge

index 4d1a3c38e9ffe17e102aa9d2bb97a31c7bf3f371..bc830fac8dcb0e079fdbc87b8f435321504684be 100755 (executable)
@@ -2654,9 +2654,12 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
                        maxretries=3 #default number of retries
 
                retries=0
-               hostname, port=re.split("rsync://([^:/]*)(:[0-9]+)?", syncuri)[1:3];
+               user_name, hostname, port = re.split(
+                       "rsync://([^:/]+@)?([^:/]*)(:[0-9]+)?", syncuri, maxsplit=3)[1:4]
                if port is None:
                        port=""
+               if user_name is None:
+                       user_name=""
                updatecache_flg=True
                all_rsync_opts = set(rsync_opts)
                all_rsync_opts.update(
@@ -2688,7 +2691,9 @@ def action_sync(settings, trees, mtimedb, myopts, myaction):
 
                        if ips:
                                try:
-                                       dosyncuri=string.replace(syncuri, "//"+hostname+port+"/", "//"+ips[0]+port+"/", 1)
+                                       dosyncuri = syncuri.replace(
+                                               "//" + user_name + hostname + port + "/",
+                                               "//" + user_name + ips[0] + port + "/", 1)
                                except SystemExit, e:
                                        raise # Needed else can't exit
                                except Exception, e: