Skip to content

Conversation

@bneradt
Copy link
Contributor

@bneradt bneradt commented Apr 21, 2023

The Proxy Protocol outbound functionality broke with the HTTP/2 to origin merge (#9366). I didn't update the Proxy Protocol feature correctly with the merge and the CI's proxy_protocol.test.py was skipped because our CI system didn't have the new go-httpbin in the path. This fixes the outbound Proxy Protocol feature again.

The Proxy Protocol outbound functionality broke with the HTTP/2 to
origin merge (apache#9366). I didn't update the Proxy Protocol feature
correctly with the merge and the CI's proxy_protocol.test.py was skipped
because our CI system didn't have the new go-httpbin in the path. This
fixes the outbound Proxy Protocol feature again.
@bneradt bneradt added this to the 10.0.0 milestone Apr 21, 2023
@bneradt bneradt self-assigned this Apr 21, 2023
int64_t nbytes = 1;
if (is_no_plugin_tunnel && prime_connect_sm->t_state.txn_conf->proxy_protocol_out >= 0) {
nbytes = do_outbound_proxy_protocol(_netvc_reader->mbuf, vc, ua_txn->get_netvc(),
prime_connect_sm->t_state.txn_conf->proxy_protocol_out);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we need to move the outbound proxy protocol processing here so we set the initial write request to the correct length? If we wait until the EVENT_TXN is received by the state_http_server_open, the write operation will already have been set.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, empirically anyway that's what I observe. By the time the EVENT_TXN is done (where it was before), it seems too late to add the Proxy Protocol header because no header is emitted if we attempt to add it there.

@bneradt bneradt merged commit de4eb57 into apache:master Apr 24, 2023
@bneradt bneradt deleted the fix_proxy_protocol_post_h22o branch April 24, 2023 16:25
cmcfarlen pushed a commit to cmcfarlen/trafficserver that referenced this pull request Jun 3, 2024
* asf/master: (40 commits)
  Change remap filter behavior to match ip_allow.yaml (apache#9631)
  Cleanup: Get rid of dead code from Cache (apache#9621)
  Replace obsolete Debug() macro with Dbg() in SocksProxy.cc. (apache#9613)
  Updates for the new go-httpbin v2.6.0 release. (apache#9633)
  Fix debian symbol not found for test_HttpTransact (apache#9617)
  add traffic_ctl to cmake (apache#9628)
  Fix Proxy Protocol outbound (apache#9632)
  DOC: Fix variable name `proxy.config.exec_thread.autoconfig.enabled`. (apache#9629)
  traffic_ctl: metric monitor. Handle SIGINT to drop collected stats. (apache#9570)
  traffic_ctl: plugin msg command, print out the response from server. (apache#9610)
  Doc: document IP allow filter for remap. (apache#9626)
  Cleanup: Rename d with vol (apache#9619)
  Ensure a reason phrase when sending an HTTP/1 response (apache#9615)
  Cmake plugins and install things (apache#9597)
  quic: Fix session cleanup assert. (apache#9622)
  Enables switching SSL certificates on QUIC with QUICHE (apache#9347)
  Use FetchSM for OCSP HTTP requests (apache#9591)
  Make a couple of the threads configs correct (apache#9604)
  Change submit_and_wait to take ink_hrtime. Fix test_AIO for io_uring. (apache#9555)
  Update build_h3_tools for mac (apache#9608)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants