Plugin DevelopmentPlugin Development Plugin Development Introduction RoadmapAsynchronous Event ModelNaming Conventions Getting Started A Simple PluginPlugin Registration and Version CheckingNaming ConventionsUnderstanding Traffic Server Plugins Building PluginsPlugin ConfigurationPlugin Management Settings and StatisticsLogging API Actions Hosts Lookup API Hooks and Transactions Adding HooksHTTP SessionsHTTP TransactionsIntercepting HTTP TransactionsInitiate HTTP ConnectionHTTP Alternate SelectionTLS User Agent HooksTLS Session Plugin APIUtility FunctionsExample Use CaseHooks Continuations Activating ContinuationsWriting Handler FunctionsMutexes and Data Mutexes Locking Global DataProtecting a Continuation’s DataHow to Associate a Continuation With Every HTTP TransactionHow to Add the New ContinuationHow to Store Data Specific to Each HTTP TransactionUsing LocksSpecial Case: Continuations Created for HTTP Transactions IO Net VconnectionsTransformationsVIOsIO BuffersCache APIVconnections HTTP Headers Traffic Server HTTP Header SystemHeader FunctionsMIME HeadersMarshal BuffersURLs HTTP Transformations Sample Null Transform PluginAppend Transform PluginSample Buffered Null Transform PluginWriting Content Transform Plugins New Protocol Plugins About the Sample ProtocolProtocol Plugin StructureContinuations in the Protocol PluginEvent FlowOne Way to Implement a Transaction State MachineProcessing a Typical Transaction Plugin Interfaces TSfopen FamilyMemory AllocationThread FunctionsDebugging Functions Adding StatisticsExample Plugins Basic Authorization PluginBlacklist PluginQuery Remap PluginTLS BridgeHeader-Based Plugin Examples