Changeset: 556ed49e2bdc for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=556ed49e2bdc
Modified Files:
monetdb5/modules/atoms/url.c
sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
Branch: Jan2014
Log Message:
Fix some url manipulation functions.
Don't include queries or tags in domain names.
diffs (72 lines):
diff --git a/monetdb5/modules/atoms/url.c b/monetdb5/modules/atoms/url.c
--- a/monetdb5/modules/atoms/url.c
+++ b/monetdb5/modules/atoms/url.c
@@ -229,11 +229,9 @@ URLgetDomain(str *retval, str *u)
t++;
b = buf;
d = 0;
- for (; *t && *t != '/'; t++) {
+ for (; *t && *t != '/' && *t != ':' && *t != '?' && *t != '#'; t++) {
if (*t == '.')
d = b;
- if (*t == ':')
- break;
*b++ = *t;
if (i++ == 1023)
throw(PARSE, "url.getDomain", "server name too long\n");
@@ -319,7 +317,7 @@ url_getHost(str *retval, url t)
t++;
b = buf;
s = buf;
- for (; *t && *t != '/'; t++) {
+ for (; *t && *t != '/' && *t != ':' && *t != '?' && *t != '#'; t++) {
*b++ = *t;
if (i++ == 1023)
throw(PARSE, "url.getHost", "server name too long");
@@ -487,7 +485,7 @@ url_getRobotURL(str *retval, /* put stri
if (*t != '/')
goto getRobot_done;
*b++ = *t++;
- for (; *t && *t != '/'; t++) {
+ for (; *t && *t && *t != '/' && *t != '?' && *t != '#'; t++) {
*b++ = *t;
if (i++ == 1000)
throw(PARSE, "url.getRobotURL", "server name too long");
diff --git a/sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
b/sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
--- a/sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
+++ b/sql/test/BugTracker-2012/Tests/url_script_test.Bug-2972.stable.out
@@ -79,9 +79,9 @@ Ready.
% sys.L # table_name
% getdomain_u # name
% clob # type
-% 7 # length
+% 3 # length
[ "nl" ]
-[ "com?x=2" ]
+[ "com" ]
[ "org" ]
#select getExtension(u) from t2972;
% sys.L # table_name
@@ -103,10 +103,10 @@ Ready.
% sys.L # table_name
% gethost_u # name
% clob # type
-% 20 # length
+% 15 # length
[ "www.cwi.nl" ]
-[ "www.monetdb.com?x=2" ]
-[ "www.monetdb.org:8080" ]
+[ "www.monetdb.com" ]
+[ "www.monetdb.org" ]
#select getPort(u) from t2972;
% sys.L # table_name
% getport_u # name
@@ -137,7 +137,7 @@ Ready.
% clob # type
% 38 # length
[ "http://www.cwi.nl/robots.txt" ]
-[ "http://www.monetdb.com?x=2/robots.txt" ]
+[ "http://www.monetdb.com/robots.txt" ]
[ "http://www.monetdb.org:8080/robots.txt" ]
#select isaURL(u) from t2972;
% sys.L # table_name
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list