You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2021/03/19 18:01:56 UTC

[trafficcontrol] 08/08: Fix atscfg Service Category hdr to be internal (#5657)

This is an automated email from the ASF dual-hosted git repository.

ocket8888 pushed a commit to branch 5.1.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 932d31975add233aa330572ae94d18301a6ecc26
Author: Robert O Butts <ro...@users.noreply.github.com>
AuthorDate: Fri Mar 19 11:18:42 2021 -0600

    Fix atscfg Service Category hdr to be internal (#5657)
    
    (cherry picked from commit cfe87f72a661a92d44cef72e23bf5efa14b2c36c)
---
 lib/go-atscfg/headerrewritedotconfig.go |  4 +++-
 lib/go-atscfg/meta.go                   | 10 +++++-----
 lib/go-atscfg/remapdotconfig.go         | 10 +++++-----
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/lib/go-atscfg/headerrewritedotconfig.go b/lib/go-atscfg/headerrewritedotconfig.go
index a72d2b5..4d6a0ef 100644
--- a/lib/go-atscfg/headerrewritedotconfig.go
+++ b/lib/go-atscfg/headerrewritedotconfig.go
@@ -35,7 +35,9 @@ const HeaderRewritePrefix = "hdr_rw_"
 const ContentTypeHeaderRewriteDotConfig = ContentTypeTextASCII
 const LineCommentHeaderRewriteDotConfig = LineCommentHash
 
-const ServiceCategoryHeader = "CDN-SVC"
+// ServiceCategoryHeader is the internal service category header for logging the service category.
+// Note this is internal, and will never be set in an HTTP Request or Response by ATS.
+const ServiceCategoryHeader = "@CDN-SVC"
 
 const MaxOriginConnectionsNoMax = 0 // 0 indicates no limit on origin connections
 
diff --git a/lib/go-atscfg/meta.go b/lib/go-atscfg/meta.go
index 88a20d8..8e74cc8 100644
--- a/lib/go-atscfg/meta.go
+++ b/lib/go-atscfg/meta.go
@@ -215,7 +215,7 @@ func addMetaObjConfigDir(
 				return nil, warnings, errors.New("getting topology placement: " + err.Error())
 			}
 			if placement.IsFirstCacheTier {
-				if ds.FirstHeaderRewrite != nil && *ds.FirstHeaderRewrite != "" || ds.MaxOriginConnections != nil {
+				if (ds.FirstHeaderRewrite != nil && *ds.FirstHeaderRewrite != "") || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil {
 					fileName := FirstHeaderRewriteConfigFileName(*ds.XMLID)
 					if configFilesM, err = ensureConfigFile(configFilesM, fileName, configDir); err != nil {
 						warnings = append(warnings, "ensuring config file '"+fileName+"': "+err.Error())
@@ -223,7 +223,7 @@ func addMetaObjConfigDir(
 				}
 			}
 			if placement.IsInnerCacheTier {
-				if ds.InnerHeaderRewrite != nil && *ds.InnerHeaderRewrite != "" || ds.MaxOriginConnections != nil {
+				if (ds.InnerHeaderRewrite != nil && *ds.InnerHeaderRewrite != "") || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil {
 					fileName := InnerHeaderRewriteConfigFileName(*ds.XMLID)
 					if configFilesM, err = ensureConfigFile(configFilesM, fileName, configDir); err != nil {
 						warnings = append(warnings, "ensuring config file '"+fileName+"': "+err.Error())
@@ -231,7 +231,7 @@ func addMetaObjConfigDir(
 				}
 			}
 			if placement.IsLastCacheTier {
-				if ds.LastHeaderRewrite != nil && *ds.LastHeaderRewrite != "" || ds.MaxOriginConnections != nil {
+				if (ds.LastHeaderRewrite != nil && *ds.LastHeaderRewrite != "") || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil {
 					fileName := LastHeaderRewriteConfigFileName(*ds.XMLID)
 					if configFilesM, err = ensureConfigFile(configFilesM, fileName, configDir); err != nil {
 						warnings = append(warnings, "ensuring config file '"+fileName+"': "+err.Error())
@@ -239,7 +239,7 @@ func addMetaObjConfigDir(
 				}
 			}
 		} else if strings.HasPrefix(server.Type, tc.EdgeTypePrefix) {
-			if (ds.EdgeHeaderRewrite != nil || ds.MaxOriginConnections != nil) &&
+			if (ds.EdgeHeaderRewrite != nil || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil) &&
 				strings.HasPrefix(server.Type, tc.EdgeTypePrefix) {
 				fileName := "hdr_rw_" + *ds.XMLID + ".config"
 				if configFilesM, err = ensureConfigFile(configFilesM, fileName, configDir); err != nil {
@@ -247,7 +247,7 @@ func addMetaObjConfigDir(
 				}
 			}
 		} else if strings.HasPrefix(server.Type, tc.MidTypePrefix) {
-			if (ds.MidHeaderRewrite != nil || ds.MaxOriginConnections != nil) &&
+			if (ds.MidHeaderRewrite != nil || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil) &&
 				ds.Type != nil && ds.Type.UsesMidCache() &&
 				strings.HasPrefix(server.Type, tc.MidTypePrefix) {
 				fileName := "hdr_rw_mid_" + *ds.XMLID + ".config"
diff --git a/lib/go-atscfg/remapdotconfig.go b/lib/go-atscfg/remapdotconfig.go
index 2ad3538..e5ca856 100644
--- a/lib/go-atscfg/remapdotconfig.go
+++ b/lib/go-atscfg/remapdotconfig.go
@@ -163,7 +163,7 @@ func getServerConfigRemapDotConfigForMid(
 				return "", warnings, err
 			}
 			midRemap += topoTxt
-		} else if ds.MidHeaderRewrite != nil && *ds.MidHeaderRewrite != "" {
+		} else if (ds.MidHeaderRewrite != nil && *ds.MidHeaderRewrite != "") || ds.MaxOriginConnections != nil || ds.ServiceCategory != nil {
 			midRemap += ` @plugin=header_rewrite.so @pparam=` + midHeaderRewriteConfigFileName(*ds.XMLID)
 		}
 
@@ -332,7 +332,7 @@ func buildEdgeRemapLine(
 			return "", warnings, err
 		}
 		text += topoTxt
-	} else if ds.EdgeHeaderRewrite != nil && *ds.EdgeHeaderRewrite != "" {
+	} else if (ds.EdgeHeaderRewrite != nil && *ds.EdgeHeaderRewrite != "") || ds.ServiceCategory != nil || ds.MaxOriginConnections != nil {
 		text += ` @plugin=header_rewrite.so @pparam=` + edgeHeaderRewriteConfigFileName(*ds.XMLID)
 	}
 
@@ -439,13 +439,13 @@ func makeDSTopologyHeaderRewriteTxt(ds DeliveryService, cg tc.CacheGroupName, to
 	}
 	txt := ""
 	const pluginTxt = ` @plugin=header_rewrite.so @pparam=`
-	if placement.IsFirstCacheTier && ds.FirstHeaderRewrite != nil && *ds.FirstHeaderRewrite != "" {
+	if placement.IsFirstCacheTier && ((ds.FirstHeaderRewrite != nil && *ds.FirstHeaderRewrite != "") || ds.ServiceCategory != nil) {
 		txt += pluginTxt + FirstHeaderRewriteConfigFileName(*ds.XMLID) + ` `
 	}
-	if placement.IsInnerCacheTier && ds.InnerHeaderRewrite != nil && *ds.InnerHeaderRewrite != "" {
+	if placement.IsInnerCacheTier && ((ds.InnerHeaderRewrite != nil && *ds.InnerHeaderRewrite != "") || ds.ServiceCategory != nil) {
 		txt += pluginTxt + InnerHeaderRewriteConfigFileName(*ds.XMLID) + ` `
 	}
-	if placement.IsLastCacheTier && ds.LastHeaderRewrite != nil && *ds.LastHeaderRewrite != "" {
+	if placement.IsLastCacheTier && ((ds.LastHeaderRewrite != nil && *ds.LastHeaderRewrite != "") || ds.ServiceCategory != nil || ds.MaxOriginConnections != nil) {
 		txt += pluginTxt + LastHeaderRewriteConfigFileName(*ds.XMLID) + ` `
 	}
 	return txt, nil