• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • tdeioslave/http
 

tdeioslave/http

  • tdeioslave
  • http
  • kcookiejar
kcookiejar.h
1 /*
2  This file is part of the KDE File Manager
3 
4  Copyright (C) 1998 Waldo Bastian (bastian@kde.org)
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public License
8  version 2 as published by the Free Software Foundation.
9 
10  This software is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this library; see the file COPYING. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 //----------------------------------------------------------------------------
21 //
22 // KDE File Manager -- HTTP Cookies
23 // $Id$
24 
25 #ifndef KCOOKIEJAR_H
26 #define KCOOKIEJAR_H
27 
28 #include <tqstring.h>
29 #include <tqstringlist.h>
30 #include <tqdict.h>
31 #include <tqptrlist.h>
32 #include <time.h>
33 
34 class TDEConfig;
35 class KCookieJar;
36 class KHttpCookie;
37 class KHttpCookieList;
38 
39 typedef KHttpCookie *KHttpCookiePtr;
40 
41 enum KCookieAdvice
42 {
43  KCookieDunno=0,
44  KCookieAccept,
45  KCookieReject,
46  KCookieAsk
47 };
48 
49 class KHttpCookie
50 {
51  friend class KCookieJar;
52  friend class KHttpCookieList;
53 
54 protected:
55  TQString mHost;
56  TQString mDomain;
57  TQString mPath;
58  TQString mName;
59  TQString mValue;
60  time_t mExpireDate;
61  int mProtocolVersion;
62  bool mSecure;
63  bool mCrossDomain;
64  bool mHttpOnly;
65  bool mExplicitPath;
66  TQValueList<long> mWindowIds;
67 
68  TQString cookieStr(bool useDOMFormat);
69 
70 public:
71  KHttpCookie(const TQString &_host=TQString::null,
72  const TQString &_domain=TQString::null,
73  const TQString &_path=TQString::null,
74  const TQString &_name=TQString::null,
75  const TQString &_value=TQString::null,
76  time_t _expireDate=0,
77  int _protocolVersion=0,
78  bool _secure = false,
79  bool _httpOnly = false,
80  bool _explicitPath = false);
81 
82  TQString domain(void) { return mDomain; }
83  TQString host(void) { return mHost; }
84  TQString path(void) { return mPath; }
85  TQString name(void) { return mName; }
86  TQString value(void) { return mValue; }
87  TQValueList<long> &windowIds(void) { return mWindowIds; }
88  void fixDomain(const TQString &domain) { mDomain = domain; }
89  time_t expireDate(void) { return mExpireDate; }
90  int protocolVersion(void) { return mProtocolVersion; }
91  bool isSecure(void) { return mSecure; }
92  bool isExpired(time_t currentDate);
93  bool isCrossDomain(void) { return mCrossDomain; }
94  bool isHttpOnly(void) { return mHttpOnly; }
95  bool hasExplicitPath(void) { return mExplicitPath; }
96  bool match(const TQString &fqdn, const TQStringList &domainList, const TQString &path);
97 };
98 
99 class KHttpCookieList : public TQPtrList<KHttpCookie>
100 {
101 public:
102  KHttpCookieList() : TQPtrList<KHttpCookie>(), advice( KCookieDunno )
103  { }
104  virtual ~KHttpCookieList() { }
105 
106  virtual int compareItems( void * item1, void * item2);
107  KCookieAdvice getAdvice(void) { return advice; }
108  void setAdvice(KCookieAdvice _advice) { advice = _advice; }
109 
110 private:
111  KCookieAdvice advice;
112 };
113 
114 class KCookieJar
115 {
116 public:
122  KCookieJar();
123 
129  ~KCookieJar();
130 
134  bool changed() const { return m_cookiesChanged || m_configChanged; }
135 
139  bool saveCookies(const TQString &_filename);
140 
144  bool loadCookies(const TQString &_filename);
145 
149  void saveConfig(TDEConfig *_config);
150 
154  void loadConfig(TDEConfig *_config, bool reparse = false);
155 
167  TQString findCookies(const TQString &_url, bool useDOMFormat, long windowId, KHttpCookieList *pendingCookies=0);
168 
177  KHttpCookieList makeCookies(const TQString &_url, const TQCString &cookie_headers, long windowId);
178 
187  KHttpCookieList makeDOMCookies(const TQString &_url, const TQCString &cookie_domstr, long windowId);
188 
194  void addCookie(KHttpCookiePtr &cookiePtr);
195 
205  KCookieAdvice cookieAdvice(KHttpCookiePtr cookiePtr);
206 
216  KCookieAdvice getDomainAdvice(const TQString &_domain);
217 
228  void setDomainAdvice(const TQString &_domain, KCookieAdvice _advice);
229 
240  void setDomainAdvice(KHttpCookiePtr _cookie, KCookieAdvice _advice);
241 
252  KCookieAdvice getGlobalAdvice() { return m_globalAdvice; }
253 
264  void setGlobalAdvice(KCookieAdvice _advice);
265 
272  const TQStringList& getDomainList();
273 
277  const KHttpCookieList *getCookieList(const TQString & _domain,
278  const TQString& _fqdn );
279 
287  void eatCookie(KHttpCookiePtr cookiePtr);
288 
292  void eatCookiesForDomain(const TQString &domain);
293 
297  void eatAllCookies();
298 
303  void eatSessionCookies( long windowId );
304 
309  void eatSessionCookies( const TQString& fqdn, long windowId, bool isFQDN = true );
310 
314  static bool parseURL(const TQString &_url,
315  TQString &_fqdn,
316  TQString &_path);
317 
323  void extractDomains(const TQString &_fqdn,
324  TQStringList &_domainList);
325 
326  static TQString adviceToStr(KCookieAdvice _advice);
327  static KCookieAdvice strToAdvice(const TQString &_str);
328 
330  int preferredDefaultPolicy() const { return m_preferredPolicy; }
331 
333  bool showCookieDetails () const { return m_showCookieDetails; }
334 
338  void setPreferredDefaultPolicy (int value) { m_preferredPolicy = value; }
339 
344  void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
345 
346 protected:
347  void stripDomain(const TQString &_fqdn, TQString &_domain);
348  TQString stripDomain( KHttpCookiePtr cookiePtr);
349 
350 protected:
351  TQStringList m_domainList;
352  KCookieAdvice m_globalAdvice;
353  TQDict<KHttpCookieList> m_cookieDomains;
354  TQDict<int> m_twoLevelTLD;
355 
356  bool m_configChanged;
357  bool m_cookiesChanged;
358  bool m_showCookieDetails;
359  bool m_rejectCrossDomainCookies;
360  bool m_autoAcceptSessionCookies;
361  bool m_ignoreCookieExpirationDate;
362 
363  int m_preferredPolicy;
364 };
365 #endif

tdeioslave/http

Skip menu "tdeioslave/http"
  • Main Page
  • Alphabetical List
  • Class List
  • File List

tdeioslave/http

Skip menu "tdeioslave/http"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for tdeioslave/http by doxygen 1.9.1
This website is maintained by Timothy Pearson.