Remove the type variable

The SSL structure contained a "type" variable that was set to either
SSL_ST_ACCEPT or SSL_ST_CONNECT depending on whether we are the server or
the client. This duplicates the capability of the "server" variable and was
actually rarely used.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
diff --git a/ssl/s3_both.c b/ssl/s3_both.c
index db0197d..6c51474 100644
--- a/ssl/s3_both.c
+++ b/ssl/s3_both.c
@@ -176,7 +176,7 @@
     /*
      * Copy the finished so we can use it for renegotiation checks
      */
-    if (s->type == SSL_ST_CONNECT) {
+    if (!s->server) {
         OPENSSL_assert(i <= EVP_MAX_MD_SIZE);
         memcpy(s->s3->previous_client_finished, s->s3->tmp.finish_md, i);
         s->s3->previous_client_finished_len = i;
@@ -319,7 +319,7 @@
     /*
      * Copy the finished so we can use it for renegotiation checks
      */
-    if (s->type == SSL_ST_ACCEPT) {
+    if (s->server) {
         OPENSSL_assert(i <= EVP_MAX_MD_SIZE);
         memcpy(s->s3->previous_client_finished, s->s3->tmp.peer_finish_md, i);
         s->s3->previous_client_finished_len = i;
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 1caa3c8..3304a1d 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -625,7 +625,7 @@
 
 STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s)
 {
-    if (s->type == SSL_ST_CONNECT) { /* we are in the client */
+    if (!s->server) { /* we are in the client */
         if (((s->version >> 8) == SSL3_VERSION_MAJOR) && (s->s3 != NULL))
             return (s->s3->tmp.ca_names);
         else
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 0aef51f..cb303c4 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -215,8 +215,6 @@
         return 0;
     }
 
-    s->type = 0;
-
     statem_clear(s);
 
     s->version = s->method->version;
@@ -2469,7 +2467,6 @@
         return (NULL);
 
     ret->version = s->version;
-    ret->type = s->type;
     ret->method = s->method;
 
     if (s->session != NULL) {
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h
index aebd3af..e7d2862 100644
--- a/ssl/ssl_locl.h
+++ b/ssl/ssl_locl.h
@@ -1050,8 +1050,7 @@
      * DTLS1_VERSION)
      */
     int version;
-    /* SSL_ST_CONNECT or SSL_ST_ACCEPT */
-    int type;
+
     /* SSLv3 */
     const SSL_METHOD *method;
     /*
@@ -1080,7 +1079,7 @@
      * handshake_func is == 0 until then, we use this test instead of an
      * "init" member.
      */
-    /* are we the server side? - mostly used by SSL_clear */
+    /* are we the server side? */
     int server;
     /*
      * Generate a new session or reuse an old one.
diff --git a/ssl/statem.c b/ssl/statem.c
index 34d55cb..ad44c5f 100644
--- a/ssl/statem.c
+++ b/ssl/statem.c
@@ -356,11 +356,6 @@
             }
         }
 
-        if (server)
-            s->type = SSL_ST_ACCEPT;
-        else
-            s->type = SSL_ST_CONNECT;
-
         if (s->init_buf == NULL) {
             if ((buf = BUF_MEM_new()) == NULL) {
                 goto end;