http2: move the init too for when its actually needed
authorDaniel Stenberg <daniel@haxx.se>
Mon, 23 Mar 2015 09:25:18 +0000 (10:25 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 23 Mar 2015 09:26:04 +0000 (10:26 +0100)
... it would otherwise lead to memory leakage if we never actually do
the switch.

lib/http2.c

index 4c9d9f7601513dc79a17333b0b38b16c74416117..f6dbd80691d52c97d0c18a38bd6d8415a1da8640 100644 (file)
@@ -636,10 +636,6 @@ CURLcode Curl_http2_request_upgrade(Curl_send_buffer *req,
   struct SingleRequest *k = &conn->data->req;
   uint8_t *binsettings = conn->proto.httpc.binsettings;
 
-  result = Curl_http2_init(conn);
-  if(result)
-    return result;
-
   /* As long as we have a fixed set of settings, we don't have to dynamically
    * figure out the base64 strings since it'll always be the same. However,
    * the settings will likely not be fixed every time in the future.
@@ -974,12 +970,17 @@ static ssize_t http2_send(struct connectdata *conn, int sockindex,
 
 CURLcode Curl_http2_setup(struct connectdata *conn)
 {
+  CURLcode result;
   struct http_conn *httpc = &conn->proto.httpc;
   if(conn->handler->flags & PROTOPT_SSL)
     conn->handler = &Curl_handler_http2_ssl;
   else
     conn->handler = &Curl_handler_http2;
 
+  result = Curl_http2_init(conn);
+  if(result)
+    return result;
+
   infof(conn->data, "Using HTTP2\n");
   httpc->bodystarted = FALSE;
   httpc->error_code = NGHTTP2_NO_ERROR;
@@ -996,7 +997,7 @@ CURLcode Curl_http2_setup(struct connectdata *conn)
 
   conn->httpversion = 20;
 
-  return 0;
+  return CURLE_OK;
 }
 
 CURLcode Curl_http2_switched(struct connectdata *conn,