-*- coding: utf-8 -*- Changes with Apache Traffic Server 2.1.5 *) The old logs.config custom log format is no longer supported. Only the XML custom logs are now supported. This eliminates the config proxy.config.log.xml_logs_config as well, since it's the only option for custom logs [TS-556]. *) All log configurations (and stats) are renamed from log2.* to log.*. This is to avoid confusion, since Apache Traffic Server never had the old (obsolete) log system. There's now only one log system, log [TS-555]. *) Many fixes and improvements on the Stats pages subsystem. This now properly supports (if configured) various internal URLs, like http://{net}, http://{hostdb} etc. [TS-554]. *) The NewCacheVC is removed [TS-551]. *) Support for the Alpha processor is eliminated [TS-552]. *) A number of unecessary memory allocations are removed, improving performance under heavy load. [TS-550, TS-549] *) All streaming media (MIXT) configurations are now properly removed from code and default configs [TS-544]. *) URL scheme was case sensitive in the cache key [TS-474]. *) Fixes for broken API signatures, additions / modifications to the following API: TSReturnCode TSHttpTxnArgSet(TSHttpTxn txnp, int arg_idx, void *arg); TSReturnCode TSHttpTxnArgGet(TSHttpTxn txnp, int arg_idx, void **argp); TSReturnCode TSHttpSsnArgSet(TSHttpSsn ssnp, int arg_idx, void *arg); TSReturnCode TSHttpSsnArgGet(TSHttpSsn ssnp, int arg_idx, void **argp); TSReturnCode TSHttpArgIndexReserve(const char* name, const char* description, int* arg_idx); TSReturnCode TSHttpArgIndexNameLookup(const char* name, int* arg_idx, const char** description); TSReturnCode TSHttpArgIndexLookup(int arg_idx, const char** name, const char** description); TSReturnCode TSHttpSsnTransactionCount(TSHttpSsn ssnp, int* count); This was all combine into [TS-504], but also see [TS-503]. *) Many fixes for broken regression tests! *) RNI is now completely cleaned out [TS-536]. *) Fixes for SplitDNS (co-author: mohan_zl) [TS-435]. *) HTTPS to origin servers, with Chunked responses, would hang [TS-540]. *) Mismatched APIs using "unsigned char*" [TS-458]. *) Rename / modify TSSetCacheUrl() API, the new prototype is TSReturnCode TSCacheUrlSet(TSHttpTxn txnp, const char *url, int length); If length == -1, then the API will calculate it using strlen() [TS-520]. *) All public APIs, structs and defines are now prefixed with "TS" instead of the old "INK". There are two exceptions, for the deprecated INKStats* and INKCoupledStats* APIs [TS-521]. *) The hooks around "remap" has been organized, and a new hook as been added (for post-remap). New / renamed hooks are TS_HTTP_PRE_REMAP_HOOK TS_HTTP_POST_REMAP_HOOK In addition, a new API was added, to allow a plugin to skip the remap phase completely: TSReturnCode TSSkipRemappingSet(TSHttpTxn txnp, int flag); These fixes went in with [TS-529] and [TS-530]. *) INKHttpTxnSetHttpRetStatus not honored when an API transaction is reenabled with INK_EVENT_HTTP_ERROR [TS-535]. *) Various defines for version identification has been moved to the public ts/ts.h include file, e.g. #define TS_VERSION_STRING "2.1.5-unstable" #define TS_VERSION_NUMBER 2001005 #define TS_VERSION_MAJOR 2 #define TS_VERSION_MINOR 1 #define TS_VERSION_MICRO 5 The intended use is for plugins to be able to verify available APIs at compile time (vs the existing runtime checks) [TS-534]. *) Traffic Server should now build on ARM processors. Commit message is appropriately describing the situation with this CPU: This is a sad day of defeat. Not my defeat, but more a collective human defeat. Question: "Chips fabricated today don't have 64bit atomic primitives?" Answer: "Be sad." The ARM box we're working on (armv5tejl) doesn't support any 64bit primitives. This means we need a method of using a global (yes, giant lock of death) to protect modifications of arbitrary 64bit integers in process space. We could make this less contentious by allocating pagesize/8 mutexs and then protecting an int64 based on its page offset. Instead, I think we should mobilize to burn these architectures to the ground and use public embarrassment to fix future instruction sets. If another platform has this issue, we'll want to change the define to: TS_ARCHITECTURE_LACKS_64BIT_INSTRUCTIONS and turn on the global death lock based on that. This does not change performance on any other platform -- it's compile time capital punishment. [TS-533] and [TS-135]. *) Very old APIs, that have been deprecated since long before the Apache Open Source project, are removed. Also, only three public include files are now available: ts/ts.h ts/experimental.h ts/remap.h Various other cleanup related to the APIs was also done [TS-522]. Changes with Apache Traffic Server 2.1.4 *) Fixes to clustering, that caused an assert to trigger after the stats changes [TS-519]. *) Make the checks when to honor the Content-Length: header less strict, against origins without Keep-Alive [TS-500]. *) Eliminate old ssl_ports feature, it's completely replaced with the connect_ports configuration [TS-517]. *) New script available to help build plugins, tsxs [TS-512]. *) Simple, brute force (and efficient) status code stats counters [TS-509]. *) Generalize RecDumpRecordsHt to use RecDumpRecords which is a callback/map pattern [TS-508]. *) Fix plugin APIs to be compatible with the 64-bit changes in the core. This is an incompatible change with previous releases [TS-14]. *) Fixes for stats around origin connection counters, used when allowing for origin connections to be reused between clients [TS-501]. *) Experimental supoprt for a dedicated DNS thread. This can be enabled with the records.config option CONFIG proxy.config.dns.dedicated_thread INT 1 This feature is possibly useful for very busy forward or transparent proxies [TS-307]. *) Accept threads can leak some amount of memory. This patch also supports multiple accept threads (very experimental!) [TS-496]. *) HttpSM has an assertion that checks the client URL against the cache URL, which breaks INKSetCacheUrl [TS-495]. *) Return value from pcre_exec tested incorrectly [TS-493]. *) Improved loop detection using the Via header [TS-490]. *) Fixes for Solaris build (yay, it builds!). *) Remove filter.config remnants [TS-486]. *) Cleanup in InkAPI [TS-485]. *) Move PKGSYSUSER to ink_config.h.in [TS-482]. *) Unresponsive server can stall ATS [TS-480]. *) UrlRewrite cleanup [TS-434]. *) Build TS with clang (author: Igor Galic) [TS-427]. *) Better support and handling of DNS round-robin options (author: Zhao Yongming) [TS-313]. *) Make it possible to "write" Content-Length headers > 2GB [TS-471]. *) Better support for Age: headers, and avoiding overflows [TS-470]. *) Added a configure option to size the API stats "slots". The new option is --with-max-api-stats= [TS-454]. *) In Cache.cc, make snprintf() around Debug statements conditional for performance [TS-459]. *) Cleanup / optimize Via: string generation [TS-460]. Also make the default for Via: on responses to be disabled (it can leak info). Changes with Apache Traffic Server 2.1.3 *) Removed the remnants of NCA from the source [TS-455]. *) New plugin APIs for stats, and making the "v2" (incomplete) stats experimental (no longer built by default) [TS-390]. See https://cwiki.apache.org/confluence/display/TS/NewStatsAPI for more details. *) Cleanup in duplicated configs, and obsoleted configs [TS-447] and [TS-451]. *) Remove some remnants of SNMP [TS-401]. *) Cleanup of MIX and LDAP/NTLM remnants [TS-443]. *) Make the target fragment size configurable for the disk cache. This adds a new option, proxy.config.cache.target_fragment_size [TS-445]. This should dramatically improve large file disk performance. *) Improve build include dependencies [TS-442]. *) Cleanup / fixes for remap plugin chaining [TS-224]. *) Support the rc/trafficserver script for FreeBSD [TS-211]. *) traffic_shell shows wrong RAM cache size > 2GB [TS-439]. *) Better warnings / errors when bad NIC is configured [TS-327]. *) Add support for hardware sector sizes 512 - 8192 bytes (e.g. 4096, the new standard). Autodetected for raw devices on Linux (no support for other OSes yet), and added a new configuration CONFIG proxy.config.cache.force_sector_size INT 4096 This change invalidates the entire cache as well, since it's no longer compatible [TS-43]. *) Added APIs to override the cacheablity of the response [TS-395]. *) Add OSX support to 'trafficserver' script (author: Dan Mercer) [TS-210]. *) Fix for (very) large buffers fed to the cache [TS-413]. *) Forward transparency is available on Linux kernels with TPROXY [TS-291]. *) Fix defaults / max for DNS retries [TS-424]. *) Improvements for Perl admin module (author: Adam Faris) [TS-418]. *) Problems with specifying separate config files for SSL certificates and keys [TS-405]. *) Logging: Default settings for diagnostic logging [TS-55]. *) Fixes to Debian layout (author: Igor Galić) [TS-415]. *) Remove DNS proxy support [TS-422]. *) rc/trafficserver start/stop quits with bogus status on success (author: Igor Galić) [TS-429]. *) Increase default max in-flight DNS queries [TS-423]. *) Update so the pristine URL will work for reverse and forward proxy. Also, clearing the url on transaction close (author: Wendy Huang) [TS-410]. *) TS fails to use user ID with user name > 8 characters (author: Yakov Markovitch) [TS-420]. *) Duplication of RAM cache hits and miss statistics (reading 2x) (author: John Plevyak) [TS-453]. Changes with Apache Traffic Server 2.1.2 *) Improvements in resilience against DNS poisoning and forging of response packets [TS-425] and [CVE-2010-2952]. *) Segmentation fault in INKError when error output is made both in error log and as debug messages (author: Yakov Markovitch) [TS-419]. *) Debian layout for config.layout (author: Igor Galic) [TS-415]. *) Eliminate extraneous stats thread [TS-411]. *) CACHE_FRAG_TYPE is now not a power of 2 [TS-76]. *) Remove unnecessary stats update [TS-390]. *) Get basic features to compile with Intel CC [TS-400]. *) More 64 bit issues, this time in the PluginVC code [TS-380]. *) Add configure option to enable detailed logging [TS-392]. *) Make sure to honor user settings for "dirs" (author: Theo Schlossnagle) [TS-399]. *) Errors on failing to bind / listen on a specified port [TS-247]. *) Exempt quick filter for 127.0.0.1 [TS-397]. *) Cleanup after "layout changes" (author: Zhao Yongming) [TS-389]. *) Fix remaining (non-API) INK64 etc. [TS-365]. *) Segfault when using show:network [TS-109]. *) Update all examples to use non-deprecated APIs [TS-266]. *) Do some cleanup on Connection::fast_connect and Connection::bind_connect (author: Alan M. Carrol) [TS-320]. *) Remove LLONG config option [Ts-364]. *) Cleanup some proxy/mgmt2/tools [TS-16]. *) Cleanup a little more of webui [TS-91]. *) TCL missing [TS-326]. *) logstats does not work with layout changes (author: Zhao Yongming) [TS-385]. *) Convert bogus IOCORE_MachineFatal and IOCORE_ProcessFatal to Warning and MachineFatal respectively based on review of the code and related uses [TS-144]. *) INKIOBufferReaderCopy, INKIOBufferWrite should take void * instead of char * [TS-67]. *) Adds APIs for aio disk read and writes using the internal aio support in iocore (author: Wendy Huang) [TS-387]. *) Solaris 10 (x86) 64-bit patch (author: Igor Brezac) [TS-388]. *) Fix for 64-bit conversion [TS-385]. *) Creating transaction specific 'to URL' in case of regex remap match [TS-384]. *) Backing out m_capacity_host changes [TS-383] *) Solaris 10 port work. Changes with Apache Traffic Server 2.1.1 *) Allow SI decimal multipliers for numeric configuration parameters [TS-361]. *) Standardize configure options by allowing to specify the location for any third-party library, and split library detection code into separate .m4 files [TS-345]. *) Reorganization of the path layout system. Add --enable-layout=LAYOUT configure option that can select layout from config.layout file [TS-280]. *) HTTP state machine is now 64-bit "clean", allowing for caching and proxying documents larger than 2GB [TS-34]. *) Fix for truncated Content-Type on TS-generated responses [TS-290]. *) Performance improvements on cache for larger(ish) objects. Changes with Apache Traffic Server 2.1.0 *) Support for many more platforms, including FreeBSD, MacOSX and Solaris. *) Code cleanup to get the ATS software into a distributable shape. This means that certain things are missing, or not functional (intentionally). *) Support for larger Cache Partitions up to .5 PB (Petabytes), reducing seeks/write. *) Reduced Cache miss latency (sub millesecond). *) RAM Cache pluggability, new algorithm (CLFUS) and optional compression. *) Support for TCL v8.6 and later [TS-246]. *) The cache is now 64-bit "clean". Changes with Apache Traffic Server 2.0.1 *) Port of CVE-2010-2952 for 2.0.x [TS-425]. *) Backport part of TS-322 that deals with indexing arrays with char (author: Marcus Ruckert) [TS-334]. *) Backport TS-336 to 2.0.x. Problems with make install DESTDIR=... Changes with Apache Traffic Server 2.0.0 *) Change SDK versioning schemes to 2.0 [TS-249). *) Minor additions to the SDK (see the docs for details). *) Support regexe_map rules in remap.config [TS-80] Changes with Apache Traffic Server 2.0.0-alpha *) Code cleanup to get the ATS software into a distributable shape. This means that certain things are missing, or not functional (intentionally). *) Ports available for most Linux distros, including 64-bit.