diff options
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htnet/HtCookie.h')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htnet/HtCookie.h | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htnet/HtCookie.h b/debian/htdig/htdig-3.2.0b6/htnet/HtCookie.h new file mode 100644 index 00000000..934600d8 --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/htnet/HtCookie.h @@ -0,0 +1,145 @@ +// +// HtCookie.h +// +// HtCookie: Class for cookies +// +// by Robert La Ferla. Started 12/5/2000. +// Reviewed by G.Bartolini - since 24 Feb 2001 +// Cookies input file by G.Bartolini - since 27 Jan 2003 +// +//////////////////////////////////////////////////////////// +// +// The HtCookie class represents a single HTTP cookie. +// +// See "PERSISTENT CLIENT STATE HTTP COOKIES" Specification +// at http://www.netscape.com/newsref/std/cookie_spec.html +// Modified according to RFC2109 (max age and version attributes) +// +// This class also manages the creation of a cookie from a line +// of a cookie file format, which is a text file as proposed by Netscape; +// each line contains a name-value pair for a cookie. +// Fields within a single line are separated by the 'tab' character; +// +/////// +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Part of the ht://Check package <http://htcheck.sourceforge.net/> +// Copyright (c) 2001-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: HtCookie.h,v 1.10 2004/05/28 13:15:23 lha Exp $ +// + +#ifndef _HTCOOKIE_H +#define _HTCOOKIE_H + +#ifdef HAVE_CONFIG_H +#include "htconfig.h" +#endif + +#include "Object.h" +#include "htString.h" +#include "HtDateTime.h" + +class HtCookie : public Object +{ + public: + + /////// + // Construction/Destruction + /////// + + HtCookie(); // default constructor + HtCookie(const String &setCookieLine, const String& aURL); + HtCookie(const String &aName, const String &aValue, const String& aURL); + HtCookie(const String &line); // From a line of cookie file + HtCookie(const HtCookie& rhs); // default constructor + + ~HtCookie(); // Destructor + + /////// + // Public Interface + /////// + + void SetName(const String &aName) { name = aName; } + void SetValue(const String &aValue) { value = aValue; } + void SetPath(const String &aPath) { path = aPath; } + void SetDomain(const String &aDomain) { domain = aDomain; } + void SetExpires(const HtDateTime *aDateTime); + void SetIsSecure(const bool flag) { isSecure = flag; } + void SetIsDomainValid(const bool flag) { isDomainValid = flag; } + void SetSrcURL(const String &aURL) { srcURL = aURL; } + void SetMaxAge(const int ma) { max_age = ma; } + void SetVersion(const int vs) { rfc_version = vs; } + + const String &GetName() const { return name; } + const String &GetValue()const { return value; } + const String &GetPath()const { return path; } + const String &GetDomain()const { return domain; } + const HtDateTime *GetExpires() const { return expires; } + const bool getIsSecure() const { return isSecure; } + const bool getIsDomainValid() const { return isDomainValid; } + const String &GetSrcURL()const { return srcURL; } + const int GetMaxAge()const { return max_age; } + const HtDateTime &GetIssueTime() const { return issue_time; } + const int GetVersion() const { return rfc_version; } + + // Print debug info +#ifndef _MSC_VER /* _WIN32 */ + virtual ostream &printDebug(ostream &out = std::cout); +#else + virtual ostream &printDebug(ostream &out = cout); +#endif + + // Set the debug level + static void SetDebugLevel (int d) { debug=d;} + + // Copy operator overload + const HtCookie &operator = (const HtCookie &rhs); + + protected: + + /////// + // Date formats enumeration + /////// + + enum DateFormat + { + DateFormat_RFC1123, + DateFormat_RFC850, + DateFormat_AscTime, + DateFormat_NotRecognized + }; + + /////// + // Protected methods + /////// + + char * stripAllWhitespace(const char * str); + int SetDate(const char * datestring, HtDateTime &dt); + DateFormat RecognizeDateFormat(const char * datestring); + + String name; + String value; + String path; + String domain; + HtDateTime * expires; + bool isSecure; + bool isDomainValid; + String srcURL; + HtDateTime issue_time; // When the cookie has been created + int max_age; // rfc2109: lifetime of the cookie, in seconds + int rfc_version; + + /////// + // Debug level + /////// + + static int debug; + +}; + +#endif + |