static size_t to_client_len = 0;
#ifdef RANDOMIZE
-#define RETURN_RND_EAGAIN() \
+#define RETURN_RND_EAGAIN(session) \
static unsigned char rnd = 0; \
if (rnd++ % 2 == 0) \
{ \
- gnutls_transport_set_global_errno (EAGAIN); \
+ gnutls_transport_set_errno (session, EAGAIN); \
return -1; \
}
#else
-#define RETURN_RND_EAGAIN()
+#define RETURN_RND_EAGAIN(session)
#endif
static ssize_t
client_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
{
size_t newlen;
- RETURN_RND_EAGAIN();
+ RETURN_RND_EAGAIN(tr);
len = min(len, sizeof(to_server)-to_server_len);
static ssize_t
client_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
{
- RETURN_RND_EAGAIN();
+ RETURN_RND_EAGAIN(tr);
if (to_client_len == 0)
{
server_pull (gnutls_transport_ptr_t tr, void *data, size_t len)
{
//success ("server_pull len %d has %d\n", len, to_server_len);
- RETURN_RND_EAGAIN();
+ RETURN_RND_EAGAIN(tr);
if (to_server_len == 0)
{
server_push (gnutls_transport_ptr_t tr, const void *data, size_t len)
{
size_t newlen;
- RETURN_RND_EAGAIN();
+ RETURN_RND_EAGAIN(tr);
// hexprint (data, len);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
gnutls_transport_set_pull_timeout_function (server, server_pull_timeout_func);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_anon_allocate_client_credentials (&c_anoncred);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
gnutls_transport_set_pull_timeout_function (client, client_pull_timeout_func);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
handshake = 1;
HANDSHAKE(client, server);
gnutls_dh_set_prime_bits (server, 1024);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_anon_allocate_client_credentials (&c_anoncred);
gnutls_credentials_set (client, GNUTLS_CRD_ANON, c_anoncred);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
handshake = 1;
HANDSHAKE(client, server);
gnutls_dh_set_prime_bits (server, 1024);
gnutls_transport_set_push_function (server, server_push);
gnutls_transport_set_pull_function (server, server_pull);
+ gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server);
/* Init client */
gnutls_anon_allocate_client_credentials (&c_anoncred);
gnutls_credentials_set (client, GNUTLS_CRD_ANON, c_anoncred);
gnutls_transport_set_push_function (client, client_push);
gnutls_transport_set_pull_function (client, client_pull);
+ gnutls_transport_set_ptr (client, (gnutls_transport_ptr_t)client);
HANDSHAKE(client, server);