http2: fix in h2 proxy tunnel: progress in ingress on sending
- depending on what is tunneled, the proxy may never get invoked for receiving data explicitly. Not progressing ingress may lead to stalls due to missed WINDOW_UPDATEs. CI: - add a chache for building mod_h2 Closes #11527
This commit is contained in:
parent
3f518ce4b1
commit
a05cce74f9
19
.github/workflows/ngtcp2-linux.yml
vendored
19
.github/workflows/ngtcp2-linux.yml
vendored
@ -158,12 +158,27 @@ jobs:
|
|||||||
make install
|
make install
|
||||||
name: 'install nghttp2'
|
name: 'install nghttp2'
|
||||||
|
|
||||||
- run: |
|
- name: cache mod_h2
|
||||||
git clone --quiet --depth=1 -b master https://github.com/icing/mod_h2
|
uses: actions/cache@v3
|
||||||
|
id: cache-mod_h2
|
||||||
|
env:
|
||||||
|
cache-name: cache-mod_h2
|
||||||
|
with:
|
||||||
|
path: /home/runner/mod_h2
|
||||||
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.mod_h2-version }}
|
||||||
|
|
||||||
|
- if: steps.cache-mod_h2.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
cd $HOME
|
||||||
|
git clone --quiet --depth=1 -b ${{ env.mod_h2-version }} https://github.com/icing/mod_h2
|
||||||
cd mod_h2
|
cd mod_h2
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
./configure
|
./configure
|
||||||
make
|
make
|
||||||
|
name: 'build mod_h2'
|
||||||
|
|
||||||
|
- run: |
|
||||||
|
cd $HOME/mod_h2
|
||||||
sudo make install
|
sudo make install
|
||||||
name: 'install mod_h2'
|
name: 'install mod_h2'
|
||||||
|
|
||||||
|
|||||||
@ -1309,6 +1309,13 @@ static ssize_t cf_h2_proxy_send(struct Curl_cfilter *cf,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = proxy_h2_progress_ingress(cf, data);
|
||||||
|
if(result) {
|
||||||
|
*err = result;
|
||||||
|
nwritten = -1;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
/* Call the nghttp2 send loop and flush to write ALL buffered data,
|
/* Call the nghttp2 send loop and flush to write ALL buffered data,
|
||||||
* headers and/or request body completely out to the network */
|
* headers and/or request body completely out to the network */
|
||||||
result = proxy_h2_progress_egress(cf, data);
|
result = proxy_h2_progress_egress(cf, data);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user