You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2017/05/05 13:42:42 UTC

[trafficserver] branch master updated: TS-4976: Regularize plugins - response_header_1

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

amc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

The following commit(s) were added to refs/heads/master by this push:
       new  252956a   TS-4976: Regularize plugins - response_header_1
252956a is described below

commit 252956ae4b6508623c775aa01f3a3a2efaec1ba1
Author: Alan M. Carroll <am...@apache.org>
AuthorDate: Wed May 3 21:04:16 2017 -0500

    TS-4976: Regularize plugins - response_header_1
---
 example/Makefile.am                                |   4 +-
 .../response_header_1.c}                           | 111 ++++++++++-----------
 2 files changed, 53 insertions(+), 62 deletions(-)

diff --git a/example/Makefile.am b/example/Makefile.am
index 98f3c38..4083a1b 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -45,7 +45,7 @@ example_Plugins = \
 	remap.la \
 	remap_header_add.la \
 	replace_header.la \
-	response-header-1.la \
+	response_header_1.la \
 	secure-link.la \
 	server-push.la \
 	server-transform.la \
@@ -110,7 +110,7 @@ query_remap_la_SOURCES = query_remap/query_remap.c
 remap_header_add_la_SOURCES = remap_header_add/remap_header_add.cc
 remap_la_SOURCES = remap/remap.cc
 replace_header_la_SOURCES = replace_header/replace_header.c
-response_header_1_la_SOURCES = response-header-1/response-header-1.c
+response_header_1_la_SOURCES = response_header_1/response_header_1.c
 secure_link_la_SOURCES = secure-link/secure-link.c
 server_push_la_SOURCES = server-push/server-push.c
 server_transform_la_SOURCES = server-transform/server-transform.c
diff --git a/example/response-header-1/response-header-1.c b/example/response_header_1/response_header_1.c
similarity index 71%
rename from example/response-header-1/response-header-1.c
rename to example/response_header_1/response_header_1.c
index 0fde00c..583a7cd 100644
--- a/example/response-header-1/response-header-1.c
+++ b/example/response_header_1/response_header_1.c
@@ -1,16 +1,31 @@
 /** @file
 
-  A brief file description
+    An example program which illustrates adding and manipulating an
+    HTTP response MIME header:
+
+    Usage:	response_header_1.so
+
+        add read_resp_header hook
+        get http response header
+        if 200, then
+                add mime extension header with count of zero
+                add mime extension header with date response was received
+                add "Cache-Control: public" header
+        else if 304, then
+                retrieve cached header
+                get old value of mime header count
+                increment mime header count
+                store mime header with new count
 
   @section license License
 
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed
+  with this work for additional information regarding copyright
+  ownership.  The ASF licenses this file to you under the Apache
+  License, Version 2.0 (the "License"); you may not use this file
+  except in compliance with the License.  You may obtain a copy of the
+  License at
 
       http://www.apache.org/licenses/LICENSE-2.0
 
@@ -21,32 +36,6 @@
   limitations under the License.
  */
 
-/*
- * response-header-1.c:
- *		an example program which illustrates adding and manipulating
- *		an HTTP response MIME header:
- *
- *   Authorized possession and use of this software pursuant only
- *   to the terms of a written license agreement.
- *
- *	Usage:	response-header-1.so
- *
- *	add read_resp_header hook
- *	get http response header
- *	if 200, then
- *		add mime extension header with count of zero
- *		add mime extension header with date response was received
- *		add "Cache-Control: public" header
- *	else if 304, then
- *		retrieve cached header
- *		get old value of mime header count
- *		increment mime header count
- *		store mime header with new count
- *
- *
- *
- */
-
 #include <time.h>
 #include <stdio.h>
 #include <string.h>
@@ -55,6 +44,8 @@
 #include "ts/ts.h"
 #include "ts/ink_defs.h"
 
+#define PLUGIN_NAME "response_header_1"
+
 static int init_buffer_status;
 
 static char *mimehdr1_name;
@@ -89,7 +80,7 @@ modify_header(TSHttpTxn txnp)
   }
 
   if (TSHttpTxnServerRespGet(txnp, &resp_bufp, &resp_loc) != TS_SUCCESS) {
-    TSError("[response_header-1] Couldn't retrieve server response header");
+    TSError("[%s] Couldn't retrieve server response header", PLUGIN_NAME);
     return; /* caller reenables */
   }
 
@@ -97,9 +88,9 @@ modify_header(TSHttpTxn txnp)
   resp_status = TSHttpHdrStatusGet(resp_bufp, resp_loc);
 
   if (TS_HTTP_STATUS_OK == resp_status) {
-    TSDebug("resphdr", "Processing 200 OK");
+    TSDebug(PLUGIN_NAME, "Processing 200 OK");
     TSMimeHdrFieldCreate(resp_bufp, resp_loc, &new_field_loc); /* Probably should check for errors */
-    TSDebug("resphdr", "Created new resp field with loc %p", new_field_loc);
+    TSDebug(PLUGIN_NAME, "Created new resp field with loc %p", new_field_loc);
 
     /* copy name/values created at init
      * ( "x-num-served-from-cache" ) : ( "0"  )
@@ -111,7 +102,7 @@ modify_header(TSHttpTxn txnp)
 
     /* Cache-Control: Public */
     TSMimeHdrFieldCreate(resp_bufp, resp_loc, &new_field_loc); /* Probably should check for errors */
-    TSDebug("resphdr", "Created new resp field with loc %p", new_field_loc);
+    TSDebug(PLUGIN_NAME, "Created new resp field with loc %p", new_field_loc);
     TSMimeHdrFieldAppend(resp_bufp, resp_loc, new_field_loc);
     TSMimeHdrFieldNameSet(resp_bufp, resp_loc, new_field_loc, TS_MIME_FIELD_CACHE_CONTROL, TS_MIME_LEN_CACHE_CONTROL);
     TSMimeHdrFieldValueStringInsert(resp_bufp, resp_loc, new_field_loc, -1, TS_HTTP_VALUE_PUBLIC, TS_HTTP_LEN_PUBLIC);
@@ -120,7 +111,7 @@ modify_header(TSHttpTxn txnp)
      * mimehdr2_name  = TSstrdup( "x-date-200-recvd" ) : CurrentDateTime
      */
     TSMimeHdrFieldCreate(resp_bufp, resp_loc, &new_field_loc); /* Probably should check for errors */
-    TSDebug("resphdr", "Created new resp field with loc %p", new_field_loc);
+    TSDebug(PLUGIN_NAME, "Created new resp field with loc %p", new_field_loc);
     TSMimeHdrFieldAppend(resp_bufp, resp_loc, new_field_loc);
     TSMimeHdrFieldNameSet(resp_bufp, resp_loc, new_field_loc, mimehdr2_name, strlen(mimehdr2_name));
     recvd_time = time(NULL);
@@ -130,14 +121,14 @@ modify_header(TSHttpTxn txnp)
     TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_loc);
 
   } else if (TS_HTTP_STATUS_NOT_MODIFIED == resp_status) {
-    TSDebug("resphdr", "Processing 304 Not Modified");
+    TSDebug(PLUGIN_NAME, "Processing 304 Not Modified");
 
     /* N.B.: Protect writes to data (hash on URL + mutex: (ies)) */
 
     /* Get the cached HTTP header */
     if (TSHttpTxnCachedRespGet(txnp, &cached_bufp, &cached_loc) != TS_SUCCESS) {
-      TSError("[response_header-1] STATUS 304, TSHttpTxnCachedRespGet():");
-      TSError("[response_header-1] Couldn't retrieve cached response header");
+      TSError("[%s] STATUS 304, TSHttpTxnCachedRespGet():", PLUGIN_NAME);
+      TSError("[%s] Couldn't retrieve cached response header", PLUGIN_NAME);
       TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_loc);
       return; /* Caller reenables */
     }
@@ -145,7 +136,7 @@ modify_header(TSHttpTxn txnp)
     /* Get the cached MIME field name for this HTTP header */
     cached_field_loc = TSMimeHdrFieldFind(cached_bufp, cached_loc, (const char *)mimehdr1_name, strlen(mimehdr1_name));
     if (TS_NULL_MLOC == cached_field_loc) {
-      TSError("[response_header-1] Can't find header %s in cached document", mimehdr1_name);
+      TSError("[%s] Can't find header %s in cached document", PLUGIN_NAME, mimehdr1_name);
       TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_loc);
       TSHandleMLocRelease(cached_bufp, TS_NULL_MLOC, cached_loc);
       return; /* Caller reenables */
@@ -154,18 +145,18 @@ modify_header(TSHttpTxn txnp)
     /* Get the cached MIME value for this name in this HTTP header */
     chkptr = TSMimeHdrFieldValueStringGet(cached_bufp, cached_loc, cached_field_loc, -1, &chklength);
     if (NULL == chkptr || !chklength) {
-      TSError("[response_header-1] Could not find value for cached MIME field name %s", mimehdr1_name);
+      TSError("[%s] Could not find value for cached MIME field name %s", PLUGIN_NAME, mimehdr1_name);
       TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_loc);
       TSHandleMLocRelease(cached_bufp, TS_NULL_MLOC, cached_loc);
       TSHandleMLocRelease(cached_bufp, cached_loc, cached_field_loc);
       return; /* Caller reenables */
     }
-    TSDebug("resphdr", "Header field value is %s, with length %d", chkptr, chklength);
+    TSDebug(PLUGIN_NAME, "Header field value is %s, with length %d", chkptr, chklength);
 
     /* Get the cached MIME value for this name in this HTTP header */
     /*
        TSMimeHdrFieldValueUintGet(cached_bufp, cached_loc, cached_field_loc, 0, &num_refreshes);
-       TSDebug("resphdr",
+       TSDebug(PLUGIN_NAME,
        "Cached header shows %d refreshes so far", num_refreshes );
 
        num_refreshes++ ;
@@ -197,7 +188,7 @@ modify_header(TSHttpTxn txnp)
     TSHandleMLocRelease(resp_bufp, TS_NULL_MLOC, resp_loc);
 
   } else {
-    TSDebug("resphdr", "other response code %d", resp_status);
+    TSDebug(PLUGIN_NAME, "other response code %d", resp_status);
   }
 
   /*
@@ -214,7 +205,7 @@ modify_response_header_plugin(TSCont contp ATS_UNUSED, TSEvent event, void *edat
 
   switch (event) {
   case TS_EVENT_HTTP_READ_RESPONSE_HDR:
-    TSDebug("resphdr", "Called back with TS_EVENT_HTTP_READ_RESPONSE_HDR");
+    TSDebug(PLUGIN_NAME, "Called back with TS_EVENT_HTTP_READ_RESPONSE_HDR");
     modify_header(txnp);
     TSHttpTxnReenable(txnp, TS_EVENT_HTTP_CONTINUE);
   /*  fall through  */
@@ -232,19 +223,19 @@ TSPluginInit(int argc, const char *argv[])
 
   TSPluginRegistrationInfo info;
 
-  info.plugin_name   = "response-header-1";
-  info.vendor_name   = "MyCompany";
-  info.support_email = "ts-api-support@MyCompany.com";
+  info.plugin_name   = PLUGIN_NAME;
+  info.vendor_name   = "Apache Software Foundation";
+  info.support_email = "dev@trafficserver.apache.org";
 
   if (TSPluginRegister(&info) != TS_SUCCESS) {
-    TSError("[response_header-1] Plugin registration failed.");
+    TSError("[%s] Plugin registration failed.", PLUGIN_NAME);
   }
 
   init_buffer_status = 0;
   if (argc > 1) {
-    TSError("[response_header-1] usage: %s", argv[0]);
-    TSError("[response_header-1] warning: too many args %d", argc);
-    TSError("[response_header-1] warning: ignoring unused arguments beginning with %s", argv[1]);
+    TSError("[%s] usage: %s", PLUGIN_NAME, argv[0]);
+    TSError("[%s] warning: too many args %d", PLUGIN_NAME, argc);
+    TSError("[%s] warning: ignoring unused arguments beginning with %s", PLUGIN_NAME, argv[1]);
   }
 
   /*
@@ -265,13 +256,13 @@ TSPluginInit(int argc, const char *argv[])
    */
   mimehdr2_name = TSstrdup("x-date-200-recvd");
 
-  TSDebug("resphdr", "Inserting header %s with value %s into init buffer", mimehdr1_name, mimehdr1_value);
+  TSDebug(PLUGIN_NAME, "Inserting header %s with value %s into init buffer", mimehdr1_name, mimehdr1_value);
 
   TSMimeHdrFieldCreate(hdr_bufp, hdr_loc, &field_loc); /* Probably should check for errors */
   TSMimeHdrFieldAppend(hdr_bufp, hdr_loc, field_loc);
   TSMimeHdrFieldNameSet(hdr_bufp, hdr_loc, field_loc, mimehdr1_name, strlen(mimehdr1_name));
   TSMimeHdrFieldValueStringInsert(hdr_bufp, hdr_loc, field_loc, -1, mimehdr1_value, strlen(mimehdr1_value));
-  TSDebug("resphdr", "init buffer hdr, field and value locs are %p, %p and %p", hdr_loc, field_loc, value_loc);
+  TSDebug(PLUGIN_NAME, "init buffer hdr, field and value locs are %p, %p and %p", hdr_loc, field_loc, value_loc);
   init_buffer_status = 1;
 
   TSHttpHookAdd(TS_HTTP_READ_RESPONSE_HDR_HOOK, TSContCreate(modify_response_header_plugin, NULL));
@@ -283,13 +274,13 @@ TSPluginInit(int argc, const char *argv[])
    */
 
   if (TS_NULL_MLOC == (chk_field_loc = TSMimeHdrFieldGet(hdr_bufp, hdr_loc, 0))) {
-    TSError("[response_header-1] Couldn't retrieve header field from init buffer");
-    TSError("[response_header-1] Marking init buffer as corrupt; no more plugin processing");
+    TSError("[%s] Couldn't retrieve header field from init buffer", PLUGIN_NAME);
+    TSError("[%s] Marking init buffer as corrupt; no more plugin processing", PLUGIN_NAME);
     init_buffer_status = 0;
     /* bail out here and reenable transaction */
   } else {
     if (field_loc != chk_field_loc) {
-      TSError("[response_header-1] Retrieved buffer field loc is %p when it should be %p", chk_field_loc, field_loc);
+      TSError("[%s] Retrieved buffer field loc is %p when it should be %p", PLUGIN_NAME, chk_field_loc, field_loc);
     }
   }
 }

-- 
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].