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
|
||||
name: 'install nghttp2'
|
||||
|
||||
- run: |
|
||||
git clone --quiet --depth=1 -b master https://github.com/icing/mod_h2
|
||||
- name: cache 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
|
||||
autoreconf -fi
|
||||
./configure
|
||||
make
|
||||
name: 'build mod_h2'
|
||||
|
||||
- run: |
|
||||
cd $HOME/mod_h2
|
||||
sudo make install
|
||||
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,
|
||||
* headers and/or request body completely out to the network */
|
||||
result = proxy_h2_progress_egress(cf, data);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user