@@ -5001,6 +5001,24 @@ TSHttpTxnNextHopStrategyGet(TSHttpTxn txnp)
50015001 return static_cast <void *>(sm->t_state .next_hop_strategy );
50025002}
50035003
5004+ void const *
5005+ TSHttpTxnNextHopStrategyFindByName (TSHttpTxn txnp, const char *name)
5006+ {
5007+ sdk_assert (sdk_sanity_check_txn (txnp) == TS_SUCCESS);
5008+ sdk_assert (sdk_sanity_check_null_ptr ((void *)name) == TS_SUCCESS);
5009+
5010+ auto sm = reinterpret_cast <HttpSM const *>(txnp);
5011+
5012+ sdk_assert (sdk_sanity_check_null_ptr ((void *)sm->m_remap ) == TS_SUCCESS);
5013+ sdk_assert (sdk_sanity_check_null_ptr ((void *)sm->m_remap ->strategyFactory ) == TS_SUCCESS);
5014+
5015+ // HttpSM has a reference count handle to UrlRewrite which has a
5016+ // pointer to NextHopStrategyFactory
5017+ NextHopSelectionStrategy const *const strategy = sm->m_remap ->strategyFactory ->strategyInstance (name);
5018+
5019+ return static_cast <void const *>(strategy);
5020+ }
5021+
50045022void
50055023TSHttpTxnNextHopStrategySet (TSHttpTxn txnp, void const *stratptr)
50065024{
@@ -5014,53 +5032,49 @@ TSHttpTxnNextHopStrategySet(TSHttpTxn txnp, void const *stratptr)
50145032 sm->t_state .next_hop_strategy = const_cast <NextHopSelectionStrategy *>(strategy);
50155033}
50165034
5017- char const *
5018- TSHttpNextHopStrategyNameGet (void const *stratptr)
5019- {
5020- char const *name = nullptr ;
5021- if (nullptr != stratptr) {
5022- auto strategy = reinterpret_cast <NextHopSelectionStrategy const *>(stratptr);
5023- name = strategy->strategy_name .c_str ();
5024- }
5025-
5026- return name;
5027- }
5028-
50295035void const *
5030- TSHttpTxnNextHopNamedStrategyGet (TSHttpTxn txnp, const char *name)
5036+ TSRemapNextHopStrategyFindByName ( const char *name)
50315037{
5032- sdk_assert ( sdk_sanity_check_txn (txnp) == TS_SUCCESS) ;
5033- sdk_assert (sdk_sanity_check_null_ptr ((void *)name ) == TS_SUCCESS);
5038+ auto const um = url_mapping::instance ;
5039+ sdk_assert (sdk_sanity_check_null_ptr ((void *)um ) == TS_SUCCESS);
50345040
5035- auto sm = reinterpret_cast <HttpSM const *>(txnp) ;
5041+ NextHopSelectionStrategy const *strategy = nullptr ;
50365042
5037- sdk_assert (sdk_sanity_check_null_ptr ((void *)sm->m_remap ) == TS_SUCCESS);
5038- sdk_assert (sdk_sanity_check_null_ptr ((void *)sm->m_remap ->strategyFactory ) == TS_SUCCESS);
5043+ if (nullptr != um->strategyFactory ) {
5044+ // HttpSM has a reference count handle to UrlRewrite which manages
5045+ // the NextHopStrategyFactory pointer.
5046+ strategy = um->strategyFactory ->strategyInstance (name);
5047+ }
50395048
5040- // HttpSM has a reference count handle to UrlRewrite which has a
5041- // pointer to NextHopStrategyFactory
5042- NextHopSelectionStrategy const *const strat = sm->m_remap ->strategyFactory ->strategyInstance (name);
5049+ return static_cast <void const *>(strategy);
5050+ }
50435051
5044- return static_cast <void const *>(strat);
5052+ void
5053+ TSRemapNextHopStrategySet (void const *stratptr)
5054+ {
5055+ auto const um = url_mapping::instance;
5056+ sdk_assert (sdk_sanity_check_null_ptr ((void *)um) == TS_SUCCESS);
5057+ um->strategy = static_cast <NextHopSelectionStrategy *>(const_cast <void *>(stratptr));
50455058}
50465059
50475060void const *
5048- TSHttpInitNextHopNamedStrategyGet ( const char *name )
5061+ TSRemapNextHopStrategyGet ( )
50495062{
5050- auto const bt = BUILD_TABLE_INFO::instance;
5051-
5052- sdk_assert (sdk_sanity_check_null_ptr ((void *)bt) == TS_SUCCESS);
5053- sdk_assert (sdk_sanity_check_null_ptr ((void *)bt->rewrite ) == TS_SUCCESS);
5054-
5055- NextHopSelectionStrategy const *strat = nullptr ;
5063+ auto const um = url_mapping::instance;
5064+ sdk_assert (sdk_sanity_check_null_ptr ((void *)um) == TS_SUCCESS);
5065+ return static_cast <void *>(um->strategy );
5066+ }
50565067
5057- if (nullptr != bt->rewrite ->strategyFactory ) {
5058- // HttpSM has a reference count handle to UrlRewrite which manages
5059- // the NextHopStrategyFactory pointer.
5060- strat = bt->rewrite ->strategyFactory ->strategyInstance (name);
5068+ char const *
5069+ TSNextHopStrategyNameGet (void const *stratptr)
5070+ {
5071+ char const *name = nullptr ;
5072+ if (nullptr != stratptr) {
5073+ auto strategy = reinterpret_cast <NextHopSelectionStrategy const *>(stratptr);
5074+ name = strategy->strategy_name .c_str ();
50615075 }
50625076
5063- return static_cast < void const *>(strat) ;
5077+ return name ;
50645078}
50655079
50665080TSReturnCode
0 commit comments