2006/unicorn/src/org/w3c/unicorn/action ObserveAction.java,1.26,1.27

Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/action
In directory hutz:/tmp/cvs-serv18631/src/org/w3c/unicorn/action

Modified Files:
	ObserveAction.java 
Log Message:
do not add http:// if protocol already specified.
+ url syntax verification authorizes local addresses like http://localhost:80
+ new error message if unsupported protocol (supported protocols being specified in the url verification regex)

Index: ObserveAction.java
===================================================================
RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/action/ObserveAction.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- ObserveAction.java	10 Sep 2009 15:54:42 -0000	1.26
+++ ObserveAction.java	14 Sep 2009 10:19:03 -0000	1.27
@@ -163,11 +163,17 @@
 						createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter);
 						return;
 					}
-					Pattern urlPattern = Pattern.compile("^(https?|ftp|rmtp|mms)://(([A-Z0-9][A-Z0-9_-]*)(\\.[A-Z0-9][A-Z0-9_-]*)+)(:(\\d+))?([/#]\\p{ASCII}*)?", Pattern.CASE_INSENSITIVE);
+					Pattern urlPattern = Pattern.compile("^(https?|ftp|rmtp|mms)://([A-Z0-9][A-Z0-9_-]*)(:(\\d+))?([/#]\\p{ASCII}*)?", Pattern.CASE_INSENSITIVE);
 					if (!urlPattern.matcher(uri).matches()) {
 						if (uri.equals(""))
 							continue;
-						uri = "http://" + uri;
+						if (!uri.contains("://")) {
+							uri = "http://" + uri;
+						} else {
+							Message mess = new Message(Message.Level.ERROR, "Unicorn does not support " + uri.split("://")[0] + " protocol.", null);
+							createError(req, resp, reqParams, mess, mapOfSpecificParameter, mapOfOutputParameter);
+							return;
+						}
 						reqParams.put(key, uri);
 						if (!urlPattern.matcher(uri).matches()) {
 							Message mess = new Message(Message.Level.ERROR, "$message_invalid_url_syntax " + uri, null);

Received on Monday, 14 September 2009 10:23:58 UTC