Skip to content

Commit 3693a13

Browse files
authored
enum compatibility fix for apidefs in 10.2.0 (#12630)
Four new enum values (TS_CONFIG_HTTP_NEGATIVE_CACHING_LIST, TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE, TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST, and TS_CONFIG_HTTP_CACHE_POST_METHOD) were incorrectly added in the middle of the TSOverridableConfigKey enum rather than at the end. This shifts all subsequent enum values, breaking binary compatibility with plugins compiled against 10.1.0. When such plugins are loaded into 10.2.0, they reference incorrect configuration keys, leading to unexpected behavior or crashes. This fix moves the four new enum values to the end of the enum (before TS_CONFIG_LAST_ENTRY) to preserve the numeric values of all existing enum entries and maintain backward compatibility with existing plugins.
1 parent 6a63675 commit 3693a13

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

include/ts/apidefs.h.in

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,6 @@ enum TSOverridableConfigKey {
777777
TS_CONFIG_HTTP_CHUNKING_ENABLED,
778778
TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED,
779779
TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME,
780-
TS_CONFIG_HTTP_NEGATIVE_CACHING_LIST,
781780
TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE,
782781
TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN,
783782
TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT,
@@ -821,7 +820,6 @@ enum TSOverridableConfigKey {
821820
TS_CONFIG_HTTP_CONNECT_ATTEMPTS_MAX_RETRIES_DOWN_SERVER,
822821
TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES,
823822
TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT,
824-
TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE,
825823
TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME,
826824
TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS,
827825
TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT,
@@ -842,7 +840,6 @@ enum TSOverridableConfigKey {
842840
TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE,
843841
TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED,
844842
TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME,
845-
TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST,
846843
TS_CONFIG_SSL_HSTS_MAX_AGE,
847844
TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS,
848845
TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME,
@@ -906,8 +903,11 @@ enum TSOverridableConfigKey {
906903
TS_CONFIG_HTTP_NO_DNS_JUST_FORWARD_TO_PARENT,
907904
TS_CONFIG_HTTP_CACHE_IGNORE_QUERY,
908905
TS_CONFIG_HTTP_DROP_CHUNKED_TRAILERS,
909-
TS_CONFIG_HTTP_CACHE_POST_METHOD,
910906
TS_CONFIG_HTTP_STRICT_CHUNK_PARSING,
907+
TS_CONFIG_HTTP_NEGATIVE_CACHING_LIST,
908+
TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE,
909+
TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST,
910+
TS_CONFIG_HTTP_CACHE_POST_METHOD,
911911
TS_CONFIG_LAST_ENTRY,
912912
};
913913

plugins/lua/ts_lua_http_config.cc

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ typedef enum {
2424
TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED = TS_CONFIG_HTTP_CHUNKING_ENABLED,
2525
TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED = TS_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED,
2626
TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME = TS_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME,
27-
TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIST = TS_CONFIG_HTTP_NEGATIVE_CACHING_LIST,
2827
TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE = TS_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE,
2928
TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN = TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN,
3029
TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT = TS_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT,
@@ -74,7 +73,6 @@ typedef enum {
7473
TS_LUA_CONFIG_HTTP_CONNECT_DOWN_POLICY = TS_CONFIG_HTTP_CONNECT_DOWN_POLICY,
7574
TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES = TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES,
7675
TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT = TS_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT,
77-
TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE = TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE,
7876
TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME = TS_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME,
7977
TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS = TS_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS,
8078
TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT = TS_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT,
@@ -97,7 +95,6 @@ typedef enum {
9795
TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE = TS_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE,
9896
TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED = TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED,
9997
TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME = TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME,
100-
TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST = TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST,
10198
TS_LUA_CONFIG_SSL_HSTS_MAX_AGE = TS_CONFIG_SSL_HSTS_MAX_AGE,
10299
TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS = TS_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS,
103100
TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME = TS_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME,
@@ -152,8 +149,11 @@ typedef enum {
152149
TS_LUA_CONFIG_NET_DEFAULT_INACTIVITY_TIMEOUT = TS_CONFIG_NET_DEFAULT_INACTIVITY_TIMEOUT,
153150
TS_LUA_CONFIG_HTTP_NO_DNS_JUST_FORWARD_TO_PARENT = TS_CONFIG_HTTP_NO_DNS_JUST_FORWARD_TO_PARENT,
154151
TS_LUA_CONFIG_HTTP_CACHE_IGNORE_QUERY = TS_CONFIG_HTTP_CACHE_IGNORE_QUERY,
155-
TS_LUA_CONFIG_HTTP_CACHE_POST_METHOD = TS_CONFIG_HTTP_CACHE_POST_METHOD,
156152
TS_LUA_CONFIG_HTTP_STRICT_CHUNK_PARSING = TS_CONFIG_HTTP_STRICT_CHUNK_PARSING,
153+
TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIST = TS_CONFIG_HTTP_NEGATIVE_CACHING_LIST,
154+
TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE = TS_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE,
155+
TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST = TS_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST,
156+
TS_LUA_CONFIG_HTTP_CACHE_POST_METHOD = TS_CONFIG_HTTP_CACHE_POST_METHOD,
157157
TS_LUA_CONFIG_LAST_ENTRY = TS_CONFIG_LAST_ENTRY,
158158
} TSLuaOverridableConfigKey;
159159

@@ -169,7 +169,6 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
169169
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CHUNKING_ENABLED),
170170
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_ENABLED),
171171
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIFETIME),
172-
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIST),
173172
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_WHEN_TO_REVALIDATE),
174173
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_IN),
175174
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_KEEP_ALIVE_ENABLED_OUT),
@@ -216,7 +215,6 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
216215
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_DOWN_POLICY),
217216
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RR_RETRIES),
218217
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_TIMEOUT),
219-
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE),
220218
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOWN_SERVER_CACHE_TIME),
221219
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_DOC_IN_CACHE_SKIP_DNS),
222220
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_BACKGROUND_FILL_ACTIVE_TIMEOUT),
@@ -239,7 +237,6 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
239237
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_RESPONSE_HEADER_MAX_SIZE),
240238
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_ENABLED),
241239
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIFETIME),
242-
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST),
243240
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_MAX_AGE),
244241
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_SSL_HSTS_INCLUDE_SUBDOMAINS),
245242
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_OPEN_READ_RETRY_TIME),
@@ -297,8 +294,11 @@ ts_lua_var_item ts_lua_http_config_vars[] = {
297294
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_NET_DEFAULT_INACTIVITY_TIMEOUT),
298295
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NO_DNS_JUST_FORWARD_TO_PARENT),
299296
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_IGNORE_QUERY),
300-
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_POST_METHOD),
301297
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_STRICT_CHUNK_PARSING),
298+
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_CACHING_LIST),
299+
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CONNECT_ATTEMPTS_RETRY_BACKOFF_BASE),
300+
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_NEGATIVE_REVALIDATING_LIST),
301+
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_HTTP_CACHE_POST_METHOD),
302302
TS_LUA_MAKE_VAR_ITEM(TS_LUA_CONFIG_LAST_ENTRY),
303303
};
304304

src/api/InkAPITest.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8697,7 +8697,6 @@ std::array<std::string_view, TS_CONFIG_LAST_ENTRY> SDK_Overridable_Configs = {
86978697
"proxy.config.http.chunking_enabled",
86988698
"proxy.config.http.negative_caching_enabled",
86998699
"proxy.config.http.negative_caching_lifetime",
8700-
"proxy.config.http.negative_caching_list",
87018700
"proxy.config.http.cache.when_to_revalidate",
87028701
"proxy.config.http.keep_alive_enabled_in",
87038702
"proxy.config.http.keep_alive_enabled_out",
@@ -8741,7 +8740,6 @@ std::array<std::string_view, TS_CONFIG_LAST_ENTRY> SDK_Overridable_Configs = {
87418740
"proxy.config.http.connect_attempts_max_retries_down_server",
87428741
"proxy.config.http.connect_attempts_rr_retries",
87438742
"proxy.config.http.connect_attempts_timeout",
8744-
"proxy.config.http.connect_attempts_retry_backoff_base",
87458743
"proxy.config.http.down_server.cache_time",
87468744
"proxy.config.http.doc_in_cache_skip_dns",
87478745
"proxy.config.http.background_fill_active_timeout",
@@ -8762,7 +8760,6 @@ std::array<std::string_view, TS_CONFIG_LAST_ENTRY> SDK_Overridable_Configs = {
87628760
"proxy.config.http.response_header_max_size",
87638761
"proxy.config.http.negative_revalidating_enabled",
87648762
"proxy.config.http.negative_revalidating_lifetime",
8765-
"proxy.config.http.negative_revalidating_list",
87668763
"proxy.config.ssl.hsts_max_age",
87678764
"proxy.config.ssl.hsts_include_subdomains",
87688765
"proxy.config.http.cache.open_read_retry_time",
@@ -8825,8 +8822,11 @@ std::array<std::string_view, TS_CONFIG_LAST_ENTRY> SDK_Overridable_Configs = {
88258822
"proxy.config.http.no_dns_just_forward_to_parent",
88268823
"proxy.config.http.cache.ignore_query",
88278824
"proxy.config.http.drop_chunked_trailers",
8828-
"proxy.config.http.cache.post_method",
88298825
"proxy.config.http.strict_chunk_parsing",
8826+
"proxy.config.http.negative_caching_list",
8827+
"proxy.config.http.connect_attempts_retry_backoff_base",
8828+
"proxy.config.http.negative_revalidating_list",
8829+
"proxy.config.http.cache.post_method",
88308830
}
88318831
};
88328832
// clang-format on

0 commit comments

Comments
 (0)