summaryrefslogtreecommitdiffstats
path: root/debian/htdig/htdig-3.2.0b6/htcommon/URL.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htcommon/URL.h')
-rw-r--r--debian/htdig/htdig-3.2.0b6/htcommon/URL.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htcommon/URL.h b/debian/htdig/htdig-3.2.0b6/htcommon/URL.h
new file mode 100644
index 00000000..4cea16ee
--- /dev/null
+++ b/debian/htdig/htdig-3.2.0b6/htcommon/URL.h
@@ -0,0 +1,100 @@
+//
+// URL.h
+//
+// URL: A URL parsing class, implementing as closely as possible the standard
+// laid out in RFC2396 (e.g. http://www.faqs.org/rfcs/rfc2396.html)
+// including support for multiple schemes.
+//
+// Part of the ht://Dig package <http://www.htdig.org/>
+// Copyright (c) 1995-2004 The ht://Dig Group
+// For copyright details, see the file COPYING in your distribution
+// or the GNU Library General Public License (LGPL) version 2 or later
+// <http://www.gnu.org/copyleft/lgpl.html>
+//
+// $Id: URL.h,v 1.8 2004/05/28 13:15:12 lha Exp $
+//
+
+#ifndef _URL_h_
+#define _URL_h_
+
+#include "htString.h"
+
+class URL
+{
+public:
+ URL();
+ URL(const String &url);
+ URL(const URL& rhs);
+ URL(const String &ref, const URL &parent);
+
+ void parse(const String &url);
+
+ const String &host() const {return _host;}
+ void host(const String &h) {_host = h;}
+
+ int port() const {return _port;}
+ void port(const int p) {_port = p;}
+ int DefaultPort();
+
+ const String &service() const {return _service;}
+ void service(const String &s) {_service = s;}
+
+ const String &path() const {return _path;}
+ void path(const String &p);
+
+ int hopcount() const {return _hopcount;}
+ void hopcount(int h) {_hopcount = h;}
+
+ const String &user() const {return _user;}
+ void user(const String &u) {_user = u;}
+
+ const String &get() const {return _url;}
+ void dump();
+ void normalize();
+ void rewrite();
+ const String &signature();
+
+ const URL &operator = (const URL &rhs);
+
+private:
+ String _url;
+ String _path;
+ String _service;
+ String _host;
+ int _port;
+ int _normal;
+ int _hopcount;
+ String _signature;
+ String _user;
+
+ void removeIndex(String &, String &);
+ void normalizePath();
+ void ServerAlias();
+ void constructURL();
+ // Number of slashes following service specifier. eg service("http")=2
+ static int slashes(const String &);
+};
+
+
+// Unreserved punctuation allowed unencoded in URLs. We use a more restricted
+// list of unreserved characters than allowed by RFC 2396 (which revises and
+// replaces RFC 1738), because it can't hurt to encode any of these
+// characters, and they can pose problems in some contexts. RFC 2396 says
+// that only alphanumerics, the unreserved characters "-_.!~*'(),", and
+// reserved characters used for their reserved purposes may be used
+// unencoded within a URL. We encode reserved characters because we now
+// encode URL parameter values individually before piecing together the whole
+// query string using reserved characters.
+
+#define UNRESERVED "-_.!~*"
+
+//String &encodeURL(String &, char *valid = "?_@.=&/:");
+//String &encodeURL(String &, char *reserved = ";/?:@&=+$,");
+// char *unreserved = "-_.!~*'()");
+String &encodeURL(String &, char *valid = (char *)UNRESERVED);
+
+String &decodeURL(String &);
+
+#endif
+
+