interface

Nikos Mavroyanopoulos nmav@hellug.gr
Sat, 26 Feb 2000 22:43:26 +0200


On Sat, Feb 26, 2000 at 01:39:59PM +0530, Tarun Upadhyaya wrote:


> however, an init function should be used anyway as GNUTLS_STATE could be
> initialized to different values based on client's environment params,
> preferences for this session etc. (or will this be handled by the
> gnutls_init later down with other initializations?)
Well, i agree that gnutls_init should handle all these. So lets remove that malloc.
> > [in case we support session resuming:
> > GNUTLS_SESSIONS *sessions=malloc(20*SIZEOF_SESSION);
> > /* keep a buffer of the last 20 sessions. A single session should
> > * have a timestamp, so it will expire in a few hours
> > *
> > * in case of client:
> > GNUTLS_SESSIONS *session=malloc(1*SIZEOF_SESSION);
> I am not very experienced but 20 sessions looks like an overkill to me
> in most cases. Can we replace that with a sorted list or something?
Well i do not think that it is really needed. The server may do after every session: i++; sessions=realloc(sessions, i*SIZEOF_SESSION); in order to fit all sessions he needs. We may also add the functions: int gnutls_how_many_expired_sessions(GNUTLS_SESSIONS * sessions); int gnutls_strip_expired_sessions(GNUTLS_SESSIONS* old_sessions, GNUTLS_SESSIONS* new_sessions); which will copy old_sessions to new sessions removing the expired sessions. so the user can: new_sessions=malloc( (current_session_num-gnutls_how_many_expired_sessions(sessions)) * SIZEOF_SESSION); gnutls_strip_expired_sessions(sessions, new_sessions); We can however make gnutls_clear_expired_sessions() to automatically allocate the space it needs, but i do not think that calling malloc() in a library function is a good idea. If you have any other idea one these functions, i'd like to hear... I do not like them:)
> Also, why should client keep only one session? I dont know but are there
> absolutely no circumstances when client would like to revert to a
> previously negotiated session?
This is one the client implementation side. It has nothing to do with the library. The client can hold as many sessions as it likes.
> with warm regards
> tarun
-- Nikos Mavroyanopoulos mailto:nmav@hellug.gr