Commit 8f281fb7 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

http2 push: add missing inits of new stream

- set the correct stream_id for pushed streams
- init maxdownload and size properly
parent 8cbd8068
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -329,12 +329,13 @@ static int push_promise(struct SessionHandle *data,
               frame->promised_stream_id));
  if(data->multi->push_cb) {
    struct HTTP *stream;
    struct HTTP *newstream;
    struct curl_pushheaders heads;
    CURLMcode rc;
    struct http_conn *httpc;
    size_t i;
    /* clone the parent */
    CURL *newhandle = duphandle(data);
    struct SessionHandle *newhandle = duphandle(data);
    if(!newhandle) {
      infof(data, "failed to duplicate handle\n");
      rv = 1; /* FAIL HARD */
@@ -369,6 +370,11 @@ static int push_promise(struct SessionHandle *data,
      goto fail;
    }

    newstream = newhandle->req.protop;
    newstream->stream_id = frame->promised_stream_id;
    newhandle->req.maxdownload = -1;
    newhandle->req.size = -1;

    /* approved, add to the multi handle and immediately switch to PERFORM
       state with the given connection !*/
    rc = Curl_multi_add_perform(data->multi, newhandle, conn);