KSSL session reuse bugs

Stefan Rompf srompf at isg.de
Thu Nov 13 17:39:20 GMT 2003


Hi,

first my apologies that I took two and a half weeks to produce these patches, 
I've been out of time lately.

I've done the following changes, patches are attached.

1. client side SSL session cache for kssl, consisting of a class 
KSSLCSessionCache with static methods only. It caches sessions addressed by 
URL per application. The header file should not be installed to make this 
class kdelibs private.

2. support in SimpleJob to set ssl_session_id, and in TransferJob, ListJob and 
StatJob to receive it. We've discussed the complicated implementation because 
of binary compatiblity.

3. last but not least: If SimpleJob handles SSL sessions, the code in 
KHTMLPart can be removed.

Advantages of this approach over the implementation in KHTMLPart:

-All KDE applications use SSL sessions transparently, current implementation 
worked for HTML pages only, but did not include images that were part of the 
page.
-It stores more than one session, very useful if you have tabs/frames to 
different SSL servers

I must admit that there are some rough edges left:

-Once the cache is filled for the first time, it will be queried for non-SSL-
URLs, too, because SimpleJob::start() does not know how the connection will 
be created. I've done some tests with negative caching, but they seem to 
pollute the cache too much. IMHO it's ok like that.
-may there should be a timeout
-the HTTP io-slave handles redirections very transparent, code is needed to 
discard a session when following the redirection. This is on my todo list, 
and current implementation suffers from it, too

Anyway, the at least TransferJob is stable in everyday's use, so I post my 
patches to review for 3.2.

Stefan
-- 
"doesn't work" is not a magic word to explain everything.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: khtml.diff
Type: text/x-diff
Size: 5538 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031113/b5b5a6f4/attachment.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kio.diff
Type: text/x-diff
Size: 3993 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031113/b5b5a6f4/attachment-0001.diff>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ksslcsessioncache.cc
Type: text/x-c++src
Size: 3241 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031113/b5b5a6f4/attachment.cc>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ksslcsessioncache.h
Type: text/x-chdr
Size: 1501 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20031113/b5b5a6f4/attachment.h>


More information about the kde-core-devel mailing list