-
Notifications
You must be signed in to change notification settings - Fork 841
Add to API to get a strategy during TSRemapNewInstance #12593
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
fd6730e to
7e032e6
Compare
ada93a4 to
00c8021
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR refactors the next-hop strategy API to separate transaction-level and remap-level strategy operations, introducing new TSRemap* functions for use during TSRemapNewInstance. The API functions have been renamed for consistency and clarity.
- Renamed
TSHttpNextHopStrategyNameGettoTSNextHopStrategyNameGet - Renamed
TSHttpTxnNextHopNamedStrategyGettoTSHttpTxnNextHopStrategyFind - Added new TSRemap* API functions for strategy operations during remap rule loading
Reviewed Changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/proxy/http/remap/RemapConfig.cc | Sets up url_mapping::instance for TSRemap* API access and assigns strategyFactory to new mappings |
| src/api/InkAPI.cc | Implements new TSRemap* functions and renames existing API functions |
| plugins/regex_remap/regex_remap.cc | Updates to use new TSRemapNextHopStrategyFind API during initialization |
| plugins/lua/ts_lua_http.cc | Updates function calls to use renamed API functions |
| plugins/header_rewrite/operators.h | Changes internal storage from Value to explicit strategy pointer |
| plugins/header_rewrite/operators.cc | Refactors to use TSRemapNextHopStrategyFind during initialization and removes runtime hook |
| plugins/header_rewrite/conditions.cc | Updates to use renamed TSNextHopStrategyNameGet function |
| include/ts/ts.h | Updates API documentation and function declarations |
| include/proxy/http/remap/UrlMapping.h | Adds strategyFactory pointer and static instance pointer to url_mapping |
| doc/developer-guide/api/functions/*.en.rst | Adds/updates documentation for new and renamed API functions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
61e5afe to
75510dd
Compare
6663eb1 to
0650be2
Compare
This gives the API access to the RemapConfig
url_mappingduring TSRemapNewInstance calls. This contains both the assigned stragies pointer and a pointer to the loaded strategy factory.This modifies the strategies ts API from the previous PR.
API is:
valid during TSRemapNewInstance:
valid during remap (the Find call is changed):
with utility function to get the strategy name (returns "null" if nullptr strategy):
The header_rewrite and regex_remap plugins are modified to look up named strategies during TSRemapNewInstance instead of performing strategy factory lookups during each transaction remap hook.