--- ssl_sess.c.orig 2009-05-18 17:05:24.000000000 +0300 +++ ssl_sess.c 2009-05-18 17:54:39.000000000 +0300 @@ -379,6 +379,10 @@ /* Now ret is non-NULL, and we own one of its reference counts. */ + fprintf(stderr, "CACHE ret-len: %u, s-len: %u\n", ret->sid_ctx_length, s->sid_ctx_length); + fprintf(stderr, "CACHE ret-str: %s, s-str: %s\n", ret->sid_ctx, s->sid_ctx); + fflush(stderr); + if (ret->sid_ctx_length != s->sid_ctx_length || memcmp(ret->sid_ctx,s->sid_ctx,ret->sid_ctx_length)) { @@ -390,6 +394,7 @@ SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT); #endif + fprintf(stderr, "1\n");fflush(stderr); goto err; /* treat like cache miss */ } @@ -407,14 +412,17 @@ SSLerr(SSL_F_SSL_GET_PREV_SESSION,SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED); fatal = 1; + fprintf(stderr, "2\n");fflush(stderr); goto err; } + fprintf(stderr, "3\n"); fflush(stderr); if (ret->cipher == NULL) { unsigned char buf[5],*p; unsigned long l; + fprintf(stderr, "4\n");fflush(stderr); p=buf; l=ret->cipher_id; l2n(l,p); @@ -436,8 +444,11 @@ CRYPTO_add(&ret->references,1,CRYPTO_LOCK_SSL_SESSION); #endif + + fprintf(stderr, "5\n"); fflush(stderr); if (ret->timeout < (long)(time(NULL) - ret->time)) /* timeout */ { + fprintf(stderr, "6\n"); fflush(stderr); s->ctx->stats.sess_timeout++; /* remove it from the cache */ SSL_CTX_remove_session(s->ctx,ret); @@ -450,6 +461,7 @@ /* again, just leave the session * if it is the same session, we have just incremented and * then decremented the reference count :-) */ + fprintf(stderr, "7\n"); fflush(stderr); if (s->session != NULL) SSL_SESSION_free(s->session); s->session=ret; @@ -457,12 +469,17 @@ return(1); err: + fprintf(stderr, "8\n"); fflush(stderr); if (ret != NULL) SSL_SESSION_free(ret); - if (fatal) + if (fatal) { + fprintf(stderr, "9\n"); fflush(stderr); return -1; - else + } + else { + fprintf(stderr, "10\n");fflush(stderr); return 0; + } } int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c)