take port numbers into account when finding a previous session from the
authorDaniel Stenberg <daniel@haxx.se>
Wed, 29 Aug 2001 09:36:41 +0000 (09:36 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 29 Aug 2001 09:36:41 +0000 (09:36 +0000)
cache

lib/ssluse.c
lib/urldata.h

index b8d91d59d3623ce114deb24435f0b72846a1f621..730ae41d3c97365fe7d686a4acee068e858960f1 100644 (file)
@@ -371,7 +371,8 @@ static int Get_SSL_Session(struct connectdata *conn,
     if(!check->sessionid)
       /* not session ID means blank entry */
       continue;
-    if(strequal(conn->name, check->name)) {
+    if(strequal(conn->name, check->name) &&
+       (conn->remote_port == check->remote_port) ) {
       /* yes, we have a session ID! */
       data->ssl.sessionage++;            /* increase general age */
       check->age = data->ssl.sessionage; /* set this as used in this age */
@@ -457,8 +458,9 @@ static int Store_SSL_Session(struct connectdata *conn)
   
   /* now init the session struct wisely */
   store->sessionid = ssl_sessionid;
-  store->age = data->ssl.sessionage; /* set current age */
-  store->name = strdup(conn->name);   /* clone host name */
+  store->age = data->ssl.sessionage;      /* set current age */
+  store->name = strdup(conn->name);       /* clone host name */
+  store->remote_port = conn->remote_port; /* port number */
 
   return 0;
 }
index 8f155e394016b6a0caa83c30c809e91e2ad8b9e9..72e288142251d13038b68bcc1880e4340313a151 100644 (file)
@@ -130,6 +130,7 @@ struct curl_ssl_session {
   char *name;       /* host name for which this ID was used */
   void *sessionid;  /* as returned from the SSL layer */
   long age;         /* just a number, the higher the more recent */
+  unsigned short remote_port; /* remote port to connect to */
 };
 
 struct ssl_config_data {