[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] ccvs/src ChangeLog root.c sanity.sh
From: |
Derek Robert Price |
Subject: |
[Cvs-cvs] ccvs/src ChangeLog root.c sanity.sh |
Date: |
Tue, 28 Feb 2006 13:10:12 +0000 |
CVSROOT: /cvsroot/cvs
Module name: ccvs
Branch:
Changes by: Derek Robert Price <address@hidden> 06/02/28 13:10:12
Modified files:
src : ChangeLog root.c sanity.sh
Log message:
* root.c: Interpret specs that look like @server:/hostname as :ext:.
* sanity.sh (parseroot2): Add a test for this.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/ChangeLog.diff?tr1=1.3353&tr2=1.3354&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/root.c.diff?tr1=1.123&tr2=1.124&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/sanity.sh.diff?tr1=1.1116&tr2=1.1117&r1=text&r2=text
Patches:
Index: ccvs/src/ChangeLog
diff -u ccvs/src/ChangeLog:1.3353 ccvs/src/ChangeLog:1.3354
--- ccvs/src/ChangeLog:1.3353 Tue Feb 28 03:25:00 2006
+++ ccvs/src/ChangeLog Tue Feb 28 13:10:11 2006
@@ -1,3 +1,8 @@
+2006-02-28 Derek Price <address@hidden>
+
+ * root.c: Interpret specs that look like @server:/hostname as :ext:.
+ * sanity.sh (parseroot2): Add a test for this.
+
2006-02-27 Derek Price <address@hidden>
* rcs.c (rcsbuf_cache_open): Back out potentially dangerous change
Index: ccvs/src/root.c
diff -u ccvs/src/root.c:1.123 ccvs/src/root.c:1.124
--- ccvs/src/root.c:1.123 Mon Feb 27 14:41:30 2006
+++ ccvs/src/root.c Tue Feb 28 13:10:11 2006
@@ -629,11 +629,32 @@
else
{
/* If the method isn't specified, assume LOCAL_METHOD unless the root
- * looks like server:/path. Then assume EXT_METHOD.
+ * looks like address@hidden:/path. Then assume EXT_METHOD.
*/
- size_t len = strspn (cvsroot_copy, FQDN_CHARS);
- if (len > 0 && cvsroot_copy[0] != '.' && cvsroot_copy[len] == ':')
- newroot->method = ext_method;
+ char *slash = strchr (cvsroot_copy, '/');
+
+ if (slash)
+ {
+ char *atchar;
+ char *p;
+ size_t len;
+
+ *slash = '\0';
+ atchar = strchr (cvsroot_copy, '@');
+ p = (atchar) ? ++atchar : cvsroot_copy;
+ len = strspn (p, FQDN_CHARS);
+
+ /* FQDN_CHARS allows '.' and '-', but RFC 1035 forbids these as the
+ * first character, and prohibits '-' as the last character. A
server
+ * name must be at least one character long.
+ */
+ if (len > 0 && p[0] != '.' && p[0] != '-' && p[len-1] != '-'
+ && p[len] == ':')
+ newroot->method = ext_method;
+ else
+ newroot->method = local_method;
+ *slash = '/';
+ }
else
newroot->method = local_method;
}
Index: ccvs/src/sanity.sh
diff -u ccvs/src/sanity.sh:1.1116 ccvs/src/sanity.sh:1.1117
--- ccvs/src/sanity.sh:1.1116 Mon Feb 27 22:30:49 2006
+++ ccvs/src/sanity.sh Tue Feb 28 13:10:11 2006
@@ -23654,18 +23654,28 @@
# A standard case, hostname:dirname.
mkdir parseroot2; cd parseroot2
+
+ mkdir 1; cd 1
save_CVSROOT=$CVSROOT
CVSROOT=$host:$CVSROOT_DIRNAME
dotest parseroot2-1 "$testcvs -Q co CVSROOT"
cd CVSROOT
dotest parseroot2-2 "$testcvs -Q up"
+ cd ../..
# parseroot2-3 & parseroot2-4 used to test the old degenerate case
# hostname/path, but CVS now interprets that as a relative path and
- # rejects it, as tested in crerepos-6a.
+ # rejects it, as tested in crerepos-6a. Instead, test the case of
+ # @hostname:/path, where CVS interprets the empty username as the
+ # default (current) username.
+ mkdir 2; cd 2
+ address@hidden:$CVSROOT_DIRNAME
+ dotest parseroot2-3 "$testcvs -Q co CVSROOT"
+ cd CVSROOT
+ dotest parseroot2-4 "$testcvs -Q up"
dokeep
- cd ../..
+ cd ../../..
CVSROOT=$save_CVSROOT
rm -r parseroot2
;;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Cvs-cvs] ccvs/src ChangeLog root.c sanity.sh,
Derek Robert Price <=