• 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
34class TDEConfig;
35class KCookieJar;
36class KHttpCookie;
37class KHttpCookieList;
38
39typedef KHttpCookie *KHttpCookiePtr;
40
41enum KCookieAdvice
42{
43 KCookieDunno=0,
44 KCookieAccept,
45 KCookieReject,
46 KCookieAsk
47};
48
49class KHttpCookie
50{
51 friend class KCookieJar;
52 friend class KHttpCookieList;
53
54protected:
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
70public:
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
99class KHttpCookieList : public TQPtrList<KHttpCookie>
100{
101public:
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
110private:
111 KCookieAdvice advice;
112};
113
114class KCookieJar
115{
116public:
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
346protected:
347 void stripDomain(const TQString &_fqdn, TQString &_domain);
348 TQString stripDomain( KHttpCookiePtr cookiePtr);
349
350protected:
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.4
This website is maintained by Timothy Pearson.