Repository: trafficserver
Updated Branches:
  refs/heads/master 00ce2f111 -> 2f85ef59a


TS-3842: Add stats for HTTP/2 errors


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/2f85ef59
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/2f85ef59
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/2f85ef59

Branch: refs/heads/master
Commit: 2f85ef59a04040808682f4c634a2b0cb7a718089
Parents: 00ce2f1
Author: Bryan Call <[email protected]>
Authored: Fri Aug 14 20:16:12 2015 -0700
Committer: Bryan Call <[email protected]>
Committed: Fri Aug 14 20:16:12 2015 -0700

----------------------------------------------------------------------
 ats/ats.xcodeproj/project.pbxproj               | 244 +++++++++++++++++++
 .../contents.xcworkspacedata                    |   7 +
 .../xcshareddata/ats.xccheckout                 |  53 ++++
 .../UserInterfaceState.xcuserstate              | Bin 0 -> 29266 bytes
 .../bcall.xcuserdatad/xcschemes/ats.xcscheme    |  88 +++++++
 .../xcschemes/xcschememanagement.plist          |  22 ++
 ats/ats/main.cpp                                |  15 ++
 proxy/hdrs/MIME.cc                              |  22 +-
 proxy/http2/HTTP2.cc                            |   6 +
 proxy/http2/HTTP2.h                             |   2 +
 proxy/http2/Http2ConnectionState.cc             |   3 +
 11 files changed, 452 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/ats/ats.xcodeproj/project.pbxproj 
b/ats/ats.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1516cf1
--- /dev/null
+++ b/ats/ats.xcodeproj/project.pbxproj
@@ -0,0 +1,244 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 46;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               74C536DD1B6E458900C65A85 /* main.cpp in Sources */ = {isa = 
PBXBuildFile; fileRef = 74C536DC1B6E458900C65A85 /* main.cpp */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+               74C536D71B6E458900C65A85 /* CopyFiles */ = {
+                       isa = PBXCopyFilesBuildPhase;
+                       buildActionMask = 2147483647;
+                       dstPath = /usr/share/man/man1/;
+                       dstSubfolderSpec = 0;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 1;
+               };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+               74C536D91B6E458900C65A85 /* ats */ = {isa = PBXFileReference; 
explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = 
ats; sourceTree = BUILT_PRODUCTS_DIR; };
+               74C536DC1B6E458900C65A85 /* main.cpp */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; 
sourceTree = "<group>"; };
+               74C536E31B6E45BC00C65A85 /* trafficserver */ = {isa = 
PBXFileReference; lastKnownFileType = folder; name = trafficserver; path = 
../..; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               74C536D61B6E458900C65A85 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               74C536D01B6E458900C65A85 = {
+                       isa = PBXGroup;
+                       children = (
+                               74C536DB1B6E458900C65A85 /* ats */,
+                               74C536DA1B6E458900C65A85 /* Products */,
+                       );
+                       sourceTree = "<group>";
+               };
+               74C536DA1B6E458900C65A85 /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               74C536D91B6E458900C65A85 /* ats */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               74C536DB1B6E458900C65A85 /* ats */ = {
+                       isa = PBXGroup;
+                       children = (
+                               74C536E31B6E45BC00C65A85 /* trafficserver */,
+                               74C536DC1B6E458900C65A85 /* main.cpp */,
+                       );
+                       path = ats;
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+               74C536D81B6E458900C65A85 /* ats */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 74C536E01B6E458900C65A85 /* 
Build configuration list for PBXNativeTarget "ats" */;
+                       buildPhases = (
+                               74C536D51B6E458900C65A85 /* Sources */,
+                               74C536D61B6E458900C65A85 /* Frameworks */,
+                               74C536D71B6E458900C65A85 /* CopyFiles */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = ats;
+                       productName = ats;
+                       productReference = 74C536D91B6E458900C65A85 /* ats */;
+                       productType = "com.apple.product-type.tool";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               74C536D11B6E458900C65A85 /* Project object */ = {
+                       isa = PBXProject;
+                       attributes = {
+                               LastUpgradeCheck = 0640;
+                               ORGANIZATIONNAME = "Bryan Call";
+                               TargetAttributes = {
+                                       74C536D81B6E458900C65A85 = {
+                                               CreatedOnToolsVersion = 6.4;
+                                       };
+                               };
+                       };
+                       buildConfigurationList = 74C536D41B6E458900C65A85 /* 
Build configuration list for PBXProject "ats" */;
+                       compatibilityVersion = "Xcode 3.2";
+                       developmentRegion = English;
+                       hasScannedForEncodings = 0;
+                       knownRegions = (
+                               en,
+                       );
+                       mainGroup = 74C536D01B6E458900C65A85;
+                       productRefGroup = 74C536DA1B6E458900C65A85 /* Products 
*/;
+                       projectDirPath = "";
+                       projectRoot = "";
+                       targets = (
+                               74C536D81B6E458900C65A85 /* ats */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXSourcesBuildPhase section */
+               74C536D51B6E458900C65A85 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               74C536DD1B6E458900C65A85 /* main.cpp in Sources 
*/,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+               74C536DE1B6E458900C65A85 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+                               CLANG_CXX_LIBRARY = "libc++";
+                               CLANG_ENABLE_MODULES = YES;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               COPY_PHASE_STRIP = NO;
+                               DEBUG_INFORMATION_FORMAT = dwarf;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_NO_COMMON_BLOCKS = YES;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PREPROCESSOR_DEFINITIONS = (
+                                       "DEBUG=1",
+                                       "$(inherited)",
+                               );
+                               GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               MACOSX_DEPLOYMENT_TARGET = 10.10;
+                               MTL_ENABLE_DEBUG_INFO = YES;
+                               ONLY_ACTIVE_ARCH = YES;
+                               SDKROOT = macosx;
+                       };
+                       name = Debug;
+               };
+               74C536DF1B6E458900C65A85 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ALWAYS_SEARCH_USER_PATHS = NO;
+                               CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+                               CLANG_CXX_LIBRARY = "libc++";
+                               CLANG_ENABLE_MODULES = YES;
+                               CLANG_ENABLE_OBJC_ARC = YES;
+                               CLANG_WARN_BOOL_CONVERSION = YES;
+                               CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+                               CLANG_WARN_EMPTY_BODY = YES;
+                               CLANG_WARN_ENUM_CONVERSION = YES;
+                               CLANG_WARN_INT_CONVERSION = YES;
+                               CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+                               CLANG_WARN_UNREACHABLE_CODE = YES;
+                               CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+                               COPY_PHASE_STRIP = NO;
+                               DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+                               ENABLE_NS_ASSERTIONS = NO;
+                               ENABLE_STRICT_OBJC_MSGSEND = YES;
+                               GCC_C_LANGUAGE_STANDARD = gnu99;
+                               GCC_NO_COMMON_BLOCKS = YES;
+                               GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+                               GCC_WARN_UNDECLARED_SELECTOR = YES;
+                               GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+                               GCC_WARN_UNUSED_FUNCTION = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               MACOSX_DEPLOYMENT_TARGET = 10.10;
+                               MTL_ENABLE_DEBUG_INFO = NO;
+                               SDKROOT = macosx;
+                       };
+                       name = Release;
+               };
+               74C536E11B6E458900C65A85 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Debug;
+               };
+               74C536E21B6E458900C65A85 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               74C536D41B6E458900C65A85 /* Build configuration list for 
PBXProject "ats" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               74C536DE1B6E458900C65A85 /* Debug */,
+                               74C536DF1B6E458900C65A85 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               74C536E01B6E458900C65A85 /* Build configuration list for 
PBXNativeTarget "ats" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               74C536E11B6E458900C65A85 /* Debug */,
+                               74C536E21B6E458900C65A85 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = 74C536D11B6E458900C65A85 /* Project object */;
+}

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/project.xcworkspace/contents.xcworkspacedata
----------------------------------------------------------------------
diff --git a/ats/ats.xcodeproj/project.xcworkspace/contents.xcworkspacedata 
b/ats/ats.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..3952209
--- /dev/null
+++ b/ats/ats.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:ats.xcodeproj">
+   </FileRef>
+</Workspace>

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/project.xcworkspace/xcshareddata/ats.xccheckout
----------------------------------------------------------------------
diff --git a/ats/ats.xcodeproj/project.xcworkspace/xcshareddata/ats.xccheckout 
b/ats/ats.xcodeproj/project.xcworkspace/xcshareddata/ats.xccheckout
new file mode 100644
index 0000000..4260163
--- /dev/null
+++ b/ats/ats.xcodeproj/project.xcworkspace/xcshareddata/ats.xccheckout
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+       <key>IDESourceControlProjectFavoriteDictionaryKey</key>
+       <false/>
+       <key>IDESourceControlProjectIdentifier</key>
+       <string>B68CA0F6-AD93-4309-BBD8-779D486EAF4A</string>
+       <key>IDESourceControlProjectName</key>
+       <string>project</string>
+       <key>IDESourceControlProjectOriginsDictionary</key>
+       <dict>
+               <key>3E7D1886603C574E8845ED8ED00B8A794ACD099B</key>
+               
<string>https://git-wip-us.apache.org/repos/asf/trafficserver.git</string>
+               <key>881E4EC6C76B99CCF6EB3C199FC5E78E972258CC</key>
+               <string>http://luajit.org/git/luajit-2.0.git</string>
+       </dict>
+       <key>IDESourceControlProjectPath</key>
+       <string>ats/ats.xcodeproj/project.xcworkspace</string>
+       <key>IDESourceControlProjectRelativeInstallPathDictionary</key>
+       <dict>
+               <key>3E7D1886603C574E8845ED8ED00B8A794ACD099B</key>
+               <string>../../..</string>
+               <key>881E4EC6C76B99CCF6EB3C199FC5E78E972258CC</key>
+               <string>../../..lib/luajit/</string>
+       </dict>
+       <key>IDESourceControlProjectURL</key>
+       
<string>https://git-wip-us.apache.org/repos/asf/trafficserver.git</string>
+       <key>IDESourceControlProjectVersion</key>
+       <integer>111</integer>
+       <key>IDESourceControlProjectWCCIdentifier</key>
+       <string>3E7D1886603C574E8845ED8ED00B8A794ACD099B</string>
+       <key>IDESourceControlProjectWCConfigurations</key>
+       <array>
+               <dict>
+                       
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+                       <string>public.vcs.git</string>
+                       <key>IDESourceControlWCCIdentifierKey</key>
+                       
<string>881E4EC6C76B99CCF6EB3C199FC5E78E972258CC</string>
+                       <key>IDESourceControlWCCName</key>
+                       <string>luajit</string>
+               </dict>
+               <dict>
+                       
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
+                       <string>public.vcs.git</string>
+                       <key>IDESourceControlWCCIdentifierKey</key>
+                       
<string>3E7D1886603C574E8845ED8ED00B8A794ACD099B</string>
+                       <key>IDESourceControlWCCName</key>
+                       <string>trafficserver</string>
+               </dict>
+       </array>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/project.xcworkspace/xcuserdata/bcall.xcuserdatad/UserInterfaceState.xcuserstate
----------------------------------------------------------------------
diff --git 
a/ats/ats.xcodeproj/project.xcworkspace/xcuserdata/bcall.xcuserdatad/UserInterfaceState.xcuserstate
 
b/ats/ats.xcodeproj/project.xcworkspace/xcuserdata/bcall.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..d0bccbd
Binary files /dev/null and 
b/ats/ats.xcodeproj/project.xcworkspace/xcuserdata/bcall.xcuserdatad/UserInterfaceState.xcuserstate
 differ

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/ats.xcscheme
----------------------------------------------------------------------
diff --git 
a/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/ats.xcscheme 
b/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/ats.xcscheme
new file mode 100644
index 0000000..6980010
--- /dev/null
+++ b/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/ats.xcscheme
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0640"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "74C536D81B6E458900C65A85"
+               BuildableName = "ats"
+               BlueprintName = "ats"
+               ReferencedContainer = "container:ats.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "74C536D81B6E458900C65A85"
+            BuildableName = "ats"
+            BlueprintName = "ats"
+            ReferencedContainer = "container:ats.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "74C536D81B6E458900C65A85"
+            BuildableName = "ats"
+            BlueprintName = "ats"
+            ReferencedContainer = "container:ats.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "74C536D81B6E458900C65A85"
+            BuildableName = "ats"
+            BlueprintName = "ats"
+            ReferencedContainer = "container:ats.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/xcschememanagement.plist
----------------------------------------------------------------------
diff --git 
a/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/xcschememanagement.plist
 
b/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..78f2e2c
--- /dev/null
+++ 
b/ats/ats.xcodeproj/xcuserdata/bcall.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
+<plist version="1.0">
+<dict>
+       <key>SchemeUserState</key>
+       <dict>
+               <key>ats.xcscheme</key>
+               <dict>
+                       <key>orderHint</key>
+                       <integer>0</integer>
+               </dict>
+       </dict>
+       <key>SuppressBuildableAutocreation</key>
+       <dict>
+               <key>74C536D81B6E458900C65A85</key>
+               <dict>
+                       <key>primary</key>
+                       <true/>
+               </dict>
+       </dict>
+</dict>
+</plist>

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/ats/ats/main.cpp
----------------------------------------------------------------------
diff --git a/ats/ats/main.cpp b/ats/ats/main.cpp
new file mode 100644
index 0000000..540591a
--- /dev/null
+++ b/ats/ats/main.cpp
@@ -0,0 +1,15 @@
+//
+//  main.cpp
+//  ats
+//
+//  Created by Bryan Call on 8/2/15.
+//  Copyright (c) 2015 Bryan Call. All rights reserved.
+//
+
+#include <iostream>
+
+int main(int argc, const char * argv[]) {
+    // insert code here...
+    std::cout << "Hello, World!\n";
+    return 0;
+}

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/proxy/hdrs/MIME.cc
----------------------------------------------------------------------
diff --git a/proxy/hdrs/MIME.cc b/proxy/hdrs/MIME.cc
index 2907d35..58204e8 100644
--- a/proxy/hdrs/MIME.cc
+++ b/proxy/hdrs/MIME.cc
@@ -1554,28 +1554,30 @@ mime_hdr_field_detach(MIMEHdrImpl *mh, MIMEField 
*field, bool detach_all_dups)
   // to walk the list to find the previous dup in the list to patch out
   // the dup being detached.
 
-  if (field->m_flags & MIME_FIELD_SLOT_FLAGS_DUP_HEAD) // head of list?
-  {
-    if (!next_dup) // only child
-    {
+  if (field->m_flags & MIME_FIELD_SLOT_FLAGS_DUP_HEAD) {
+    // head of list
+    if (!next_dup) {
+      // only child
       mime_hdr_unset_accelerators_and_presence_bits(mh, field);
-    } else // next guy is dup head
-    {
+    } else {
+      // next guy is dup head
       next_dup->m_flags |= MIME_FIELD_SLOT_FLAGS_DUP_HEAD;
       mime_hdr_set_accelerators_and_presence_bits(mh, next_dup);
     }
-  } else // need to walk list to find and patch out from predecessor
-  {
+  } else {
+    // need to walk list to find and patch out from predecessor
     int name_length;
     const char *name = mime_field_name_get(field, &name_length);
     MIMEField *prev = mime_hdr_field_find(mh, name, name_length);
 
-    while (prev && (prev->m_next_dup != field))
+    while (prev && (prev->m_next_dup != field)) {
       prev = prev->m_next_dup;
+    }
     ink_assert(prev != NULL);
 
-    if (prev->m_next_dup == field)
+    if (prev->m_next_dup == field) {
       prev->m_next_dup = next_dup;
+    }
   }
 
   // Field is now detached and alone

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/proxy/http2/HTTP2.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/HTTP2.cc b/proxy/http2/HTTP2.cc
index d77242c..a8450e2 100644
--- a/proxy/http2/HTTP2.cc
+++ b/proxy/http2/HTTP2.cc
@@ -38,6 +38,8 @@ static char const *const 
HTTP2_STAT_CURRENT_CLIENT_STREAM_NAME = "proxy.process.
 static char const *const HTTP2_STAT_TOTAL_CLIENT_STREAM_NAME = 
"proxy.process.http2.total_client_streams";
 static char const *const HTTP2_STAT_TOTAL_TRANSACTIONS_TIME_NAME = 
"proxy.process.http2.total_transactions_time";
 static char const *const HTTP2_STAT_TOTAL_CLIENT_CONNECTION_NAME = 
"proxy.process.http2.total_client_connections";
+static char const *const HTTP2_STAT_CONNECTION_ERRORS_NAME = 
"proxy.process.http2.connection_errors";
+static char const *const HTTP2_STAT_STREAM_ERRORS_NAME = 
"proxy.process.http2.stream_errors";
 
 union byte_pointer {
   byte_pointer(void *p) : ptr(p) {}
@@ -769,6 +771,10 @@ Http2::init()
                      static_cast<int>(HTTP2_STAT_TOTAL_TRANSACTIONS_TIME), 
RecRawStatSyncSum);
   RecRegisterRawStat(http2_rsb, RECT_PROCESS, 
HTTP2_STAT_TOTAL_CLIENT_CONNECTION_NAME, RECD_INT, RECP_PERSISTENT,
                      
static_cast<int>(HTTP2_STAT_TOTAL_CLIENT_CONNECTION_COUNT), RecRawStatSyncSum);
+  RecRegisterRawStat(http2_rsb, RECT_PROCESS, 
HTTP2_STAT_CONNECTION_ERRORS_NAME, RECD_INT, RECP_PERSISTENT,
+                     static_cast<int>(HTTP2_STAT_CONNECTION_ERRORS_COUNT), 
RecRawStatSyncSum);
+  RecRegisterRawStat(http2_rsb, RECT_PROCESS, HTTP2_STAT_STREAM_ERRORS_NAME, 
RECD_INT, RECP_PERSISTENT,
+                     static_cast<int>(HTTP2_STAT_STREAM_ERRORS_COUNT), 
RecRawStatSyncSum);
 }
 
 #if TS_HAS_TESTS

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/proxy/http2/HTTP2.h
----------------------------------------------------------------------
diff --git a/proxy/http2/HTTP2.h b/proxy/http2/HTTP2.h
index 29f31fe..a27b6a3 100644
--- a/proxy/http2/HTTP2.h
+++ b/proxy/http2/HTTP2.h
@@ -68,6 +68,8 @@ enum {
   HTTP2_STAT_CURRENT_CLIENT_STREAM_COUNT,   // Current # of active HTTP2 
streams.
   HTTP2_STAT_TOTAL_TRANSACTIONS_TIME,       // Total stream time and streams
   HTTP2_STAT_TOTAL_CLIENT_CONNECTION_COUNT, // Total connections running http2
+  HTTP2_STAT_STREAM_ERRORS_COUNT,
+  HTTP2_STAT_CONNECTION_ERRORS_COUNT,
 
   HTTP2_N_STATS // Terminal counter, NOT A STAT INDEX.
 };

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/2f85ef59/proxy/http2/Http2ConnectionState.cc
----------------------------------------------------------------------
diff --git a/proxy/http2/Http2ConnectionState.cc 
b/proxy/http2/Http2ConnectionState.cc
index 2e00220..345a0a1 100644
--- a/proxy/http2/Http2ConnectionState.cc
+++ b/proxy/http2/Http2ConnectionState.cc
@@ -736,7 +736,9 @@ Http2ConnectionState::main_event_handler(int event, void 
*edata)
     }
 
     if (error.cls != HTTP2_ERROR_CLASS_NONE) {
+      EThread *ethread = this_ethread();
       if (error.cls == HTTP2_ERROR_CLASS_CONNECTION) {
+        HTTP2_INCREMENT_THREAD_DYN_STAT(HTTP2_STAT_CONNECTION_ERRORS_COUNT, 
ethread);
         this->send_goaway_frame(last_streamid, error.code);
         cleanup_streams();
         // XXX We need to think a bit harder about how to coordinate the client
@@ -748,6 +750,7 @@ Http2ConnectionState::main_event_handler(int event, void 
*edata)
         // half-closed state ...
         SET_HANDLER(&Http2ConnectionState::state_closed);
       } else if (error.cls == HTTP2_ERROR_CLASS_STREAM) {
+        HTTP2_INCREMENT_THREAD_DYN_STAT(HTTP2_STAT_STREAM_ERRORS_COUNT, 
ethread);
         this->send_rst_stream_frame(last_streamid, error.code);
       }
     }

Reply via email to