Home

Traffic Server Software Developers Kit

Plugin Registration and Version Checking

You need to make sure that the functions in your plugin are supported in your version of Traffic Server.

[Important] Important

Throughout this manual, previous versions of Traffic Server may be referred to as: Traffic Server, Traffic Server 3.0, Traffic Server 3.5, and Traffic Server 5.2. For version checking purposes, Traffic Server 1.5 is equivalent to Traffic Server 5.5.

Use the following interfaces:

The following version of hello-world registers the plugin and ensures it's running with a compatible version of Traffic Server.

#include <stdio.h>
#include "InkAPI.h"
int
check_ts_version() {
 const char* ts_version = INKTrafficServerVersionGet();
 int result = 0;

   if (ts_version) {
    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) {
      return 0;
  }

  /* Since this is an TS-SDK 2.0 plugin, we need at
     least Traffic Server 3.5.2 to run */

   if (major_ts_version > 3) {
      result = 1;
   } else if (major_ts_version == 3) {
         if (minor_ts_version > 5) {
             result = 1;
   } else if (minor_ts_version == 5) {
         if (patch_ts_version >= 2) {
          result = 1;
         }
       }
     }
   }
   return result;
}

void
INKPluginInit (int argc, const char *argv[])
{

      INKPluginRegistrationInfo info;

      info.plugin_name = "hello-world";
      info.vendor_name = "MyCompany";
      info.support_email = "ts-api-support@MyCompany.com";

      if (!INKPluginRegister (INK_SDK_VERSION_2_0 , &info)) {
         INKError ("Plugin registration failed. \n");
      }

      if (!check_ts_version()) {
         INKError ("Plugin requires Traffic Server 3.5.2 or later\n");
         return;
      }

      INKDebug ("debug-hello", "Hello World!\n");
}