Plugin Registration and Version Checking
If you need you make a plugin that will load against multiple versions of Traffic Server, you can check the API version at both compilation time and run time.
Use the following interfaces:
The plugin registers the plugin and ensures it’s running with a compatible version of Traffic Server.
#include <stdio.h>#include <ts/ts.h>voidTSPluginInit(int argc, const char *argv[]){(void)argc; // unused(void)argv; // unused// Get the version:const char *ts_version = TSTrafficServerVersionGet();if (!ts_version) {TSError("[version] Can't get Traffic Server verion.\n");return;}// Split it in major, minor, patch:int major_ts_version = 0;int minor_ts_version = 0;int patch_ts_version = 0;if (sscanf(ts_version, "%d.%d.%d", &major_ts_version, &minor_ts_version, &patch_ts_version) != 3) {TSError("[version] Can't extract verions.\n");return;}TSPluginRegistrationInfo info;info.plugin_name = "version-plugin";info.vendor_name = "MyCompany";info.support_email = "ts-api-support@MyCompany.com";// partial compilation#if (TS_VERSION_NUMBER < 3000000)if (TSPluginRegister(TS_SDK_VERSION_2_0, &info) != TS_SUCCESS) {#elif (TS_VERSION_NUMBER < 6000000)if (TSPluginRegister(TS_SDK_VERSION_3_0, &info) != TS_SUCCESS) {#elseif (TSPluginRegister(&info) != TS_SUCCESS) {#endifTSError("[version] Plugin registration failed. \n");}TSDebug("debug-version-plugin", "Running in Apache Traffic Server: v%d.%d.%d", major_ts_version, minor_ts_version,patch_ts_version);}
