Global state (was: I am back)

Werner Koch wk@gnupg.org
Tue, 16 May 2000 11:30:17 +0200


On Tue, 16 May 2000, Nikos Mavroyanopoulos wrote:


> Since we have a global state, all these functions do use the global
> variables to determine what to send. Eg gnutls_send_hello() does not require
> any parameters, and will determine from the state an from the available
Although I have not lloked at the code for a while, I have one suggestion: Do not use global variables, but pass a handle to a structure which actually is a pointer to an allocated structure carrying the "global" state. This greatly helps to make the lib reentrant. You either need an extra function to create a handle or you imlicitly create the handle by assuming that a handle pointing to NULL has to be initialized - however, you need a function to release the handle anyway (using reference counting is somewhat complicated) and therefore 2 functions would be better. Werner -- Werner Koch OpenPGP key 621CC013 OpenIT GmbH tel +49 211 239577-0 Birkenstr. 12 email wk@OpenIT.de D-40233 Duesseldorf http://www.OpenIT.de