trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject [trafficserver] branch master updated: TS-4976: Regularize plugins - server_transform.
Date Fri, 04 Aug 2017 12:35:18 GMT
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 2d1abee  TS-4976: Regularize plugins - server_transform.
2d1abee is described below

commit 2d1abee3c454bdec5a007277a163a6659d961a49
Author: Alan M. Carroll <amc@apache.org>
AuthorDate: Mon Jul 31 07:20:43 2017 -0500

    TS-4976: Regularize plugins - server_transform.
---
 example/Makefile.am                                |  4 +-
 .../server_transform.c}                            | 98 ++++++++++------------
 2 files changed, 47 insertions(+), 55 deletions(-)

diff --git a/example/Makefile.am b/example/Makefile.am
index 8cd7a49..29b4a0b 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -49,7 +49,7 @@ example_Plugins = \
 	response_header_1.la \
 	secure_link.la \
 	server_push.la \
-	server-transform.la \
+	server_transform.la \
 	ssl-preaccept.la \
 	ssl-sni-whitelist.la \
 	ssl-sni.la \
@@ -115,7 +115,7 @@ replace_header_la_SOURCES = replace_header/replace_header.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
+server_transform_la_SOURCES = server_transform/server_transform.c
 ssl_preaccept_la_SOURCES = ssl-preaccept/ssl-preaccept.cc
 ssl_sni_la_SOURCES = ssl-sni/ssl-sni.cc
 ssl_sni_la_LIBADD = $(libtsconfig)
diff --git a/example/server-transform/server-transform.c b/example/server_transform/server_transform.c
similarity index 85%
rename from example/server-transform/server-transform.c
rename to example/server_transform/server_transform.c
index ac91787..0c93be1 100644
--- a/example/server-transform/server-transform.c
+++ b/example/server_transform/server_transform.c
@@ -1,6 +1,26 @@
 /** @file
 
-  A brief file description
+  @brief An example program that sends response content to a server to be transformed and
sends the
+         transformed content to the client.
+
+  The protocol spoken with the server is simple. The plugin sends the
+  content-length of the document being transformed as a 4-byte
+  integer and then it sends the document itself. The first 4-bytes of
+  the server response are a status code/content length. If the code
+  is greater than 0 then the plugin assumes transformation was
+  successful and uses the code as the content length of the
+  transformed document. If the status code is less than or equal to 0
+  then the plugin bypasses transformation and sends the original
+  document on through.
+
+  The plugin does a fair amount of error checking and tries to bypass
+  transformation in many cases such as when it can't connect to the
+  server. This example plugin simply connects to port 7 on localhost,
+  which on our solaris machines (and most unix machines) is the echo
+  port. One nicety about the protocol is that simply having the
+  server echo back what it is sent results in a "null"
+  transformation. (i.e. A transformation which does not modify the
+  content).
 
   @section license License
 
@@ -19,37 +39,7 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
- */
-
-/* server-transform.c:  an example program that sends response content
- *                      to a server to be transformed, and sends the
- *                      transformed content to the client
- *
- *
- *	Usage:
- *	  server-transform.so
- *
- *
- */
-
-/* The protocol spoken with the server is simple. The plugin sends the
-   content-length of the document being transformed as a 4-byte
-   integer and then it sends the document itself. The first 4-bytes of
-   the server response are a status code/content length. If the code
-   is greater than 0 then the plugin assumes transformation was
-   successful and uses the code as the content length of the
-   transformed document. If the status code is less than or equal to 0
-   then the plugin bypasses transformation and sends the original
-   document on through.
-
-   The plugin does a fair amount of error checking and tries to bypass
-   transformation in many cases such as when it can't connect to the
-   server. This example plugin simply connects to port 7 on localhost,
-   which on our solaris machines (and most unix machines) is the echo
-   port. One nicety about the protocol is that simply having the
-   server echo back what it is sent results in a "null"
-   transformation. (i.e. A transformation which does not modify the
-   content). */
+*/
 
 #include <string.h>
 #include <stdio.h>
@@ -59,6 +49,8 @@
 #include "ts/ts.h"
 #include "ts/ink_defs.h"
 
+#define PLUGIN_NAME "server-transform"
+
 #define STATE_BUFFER 1
 #define STATE_CONNECT 2
 #define STATE_WRITE 3
@@ -141,7 +133,7 @@ transform_destroy(TSCont contp)
 
     TSfree(data);
   } else {
-    TSError("[server_transform] Unable to get Continuation's Data. TSContDataGet returns
NULL");
+    TSError("[%s] Unable to get Continuation's Data. TSContDataGet returns NULL", PLUGIN_NAME);
   }
 
   TSContDestroy(contp);
@@ -183,7 +175,7 @@ transform_connect(TSCont contp, TransformData *data)
       data->input_reader = tempReader;
     }
   } else {
-    TSError("[server_transform] TSIOBufferReaderAvail returns TS_ERROR");
+    TSError("[%s] TSIOBufferReaderAvail returns TS_ERROR", PLUGIN_NAME);
     return 0;
   }
 
@@ -193,7 +185,7 @@ transform_connect(TSCont contp, TransformData *data)
   ip_addr.sin_family      = AF_INET;
   ip_addr.sin_addr.s_addr = server_ip; /* Should be in network byte order */
   ip_addr.sin_port        = server_port;
-  TSDebug("strans", "net connect.");
+  TSDebug(PLUGIN_NAME, "net connect.");
   action = TSNetConnect(contp, (struct sockaddr const *)&ip_addr);
 
   if (!TSActionDone(action)) {
@@ -214,7 +206,7 @@ transform_write(TSCont contp, TransformData *data)
   if (content_length >= 0) {
     data->server_vio = TSVConnWrite(data->server_vc, contp, TSIOBufferReaderClone(data->input_reader),
content_length);
   } else {
-    TSError("[server_transform] TSIOBufferReaderAvail returns TS_ERROR");
+    TSError("[%s] TSIOBufferReaderAvail returns TS_ERROR", PLUGIN_NAME);
   }
   return 0;
 }
@@ -229,7 +221,7 @@ transform_read_status(TSCont contp, TransformData *data)
   if (data->output_reader != NULL) {
     data->server_vio = TSVConnRead(data->server_vc, contp, data->output_buf, sizeof(int));
   } else {
-    TSError("[server_transform] Error in Allocating a Reader to output buffer. TSIOBufferReaderAlloc
returns NULL");
+    TSError("[%s] Error in Allocating a Reader to output buffer. TSIOBufferReaderAlloc returns
NULL", PLUGIN_NAME);
   }
 
   return 0;
@@ -247,11 +239,11 @@ transform_read(TSCont contp, TransformData *data)
   data->server_vio = TSVConnRead(data->server_vc, contp, data->output_buf, data->content_length);
   data->output_vc  = TSTransformOutputVConnGet((TSVConn)contp);
   if (data->output_vc == NULL) {
-    TSError("[server_transform] TSTransformOutputVConnGet returns NULL");
+    TSError("[%s] TSTransformOutputVConnGet returns NULL", PLUGIN_NAME);
   } else {
     data->output_vio = TSVConnWrite(data->output_vc, contp, data->output_reader,
data->content_length);
     if (data->output_vio == NULL) {
-      TSError("[server_transform] TSVConnWrite returns NULL");
+      TSError("[%s] TSVConnWrite returns NULL", PLUGIN_NAME);
     }
   }
 
@@ -278,11 +270,11 @@ transform_bypass(TSCont contp, TransformData *data)
   TSIOBufferReaderConsume(data->input_reader, sizeof(int));
   data->output_vc = TSTransformOutputVConnGet((TSVConn)contp);
   if (data->output_vc == NULL) {
-    TSError("[server_transform] TSTransformOutputVConnGet returns NULL");
+    TSError("[%s] TSTransformOutputVConnGet returns NULL", PLUGIN_NAME);
   } else {
     data->output_vio = TSVConnWrite(data->output_vc, contp, data->input_reader,
TSIOBufferReaderAvail(data->input_reader));
     if (data->output_vio == NULL) {
-      TSError("[server_transform] TSVConnWrite returns NULL");
+      TSError("[%s] TSVConnWrite returns NULL", PLUGIN_NAME);
     }
   }
   return 1;
@@ -364,13 +356,13 @@ transform_connect_event(TSCont contp, TransformData *data, TSEvent event,
void *
 {
   switch (event) {
   case TS_EVENT_NET_CONNECT:
-    TSDebug("strans", "connected");
+    TSDebug(PLUGIN_NAME, "connected");
 
     data->pending_action = NULL;
     data->server_vc      = (TSVConn)edata;
     return transform_write(contp, data);
   case TS_EVENT_NET_CONNECT_FAILED:
-    TSDebug("strans", "connect failed");
+    TSDebug(PLUGIN_NAME, "connect failed");
     data->pending_action = NULL;
     return transform_bypass(contp, data);
   default:
@@ -510,7 +502,7 @@ transform_handler(TSCont contp, TSEvent event, void *edata)
   /* Check to see if the transformation has been closed by a call to
      TSVConnClose. */
   if (TSVConnClosedGet(contp)) {
-    TSDebug("strans", "transformation closed");
+    TSDebug(PLUGIN_NAME, "transformation closed");
     transform_destroy(contp);
     return 0;
   } else {
@@ -519,10 +511,10 @@ transform_handler(TSCont contp, TSEvent event, void *edata)
 
     data = (TransformData *)TSContDataGet(contp);
     if (data == NULL) {
-      TSError("[server_transform] Didn't get Continuation's Data, ignoring event");
+      TSError("[%s] Didn't get Continuation's Data, ignoring event", PLUGIN_NAME);
       return 0;
     }
-    TSDebug("strans", "transform handler event [%d], data->state = [%d]", event, data->state);
+    TSDebug(PLUGIN_NAME, "transform handler event [%d], data->state = [%d]", event, data->state);
 
     do {
       switch (data->state) {
@@ -587,19 +579,19 @@ server_response_ok(TSHttpTxn txnp)
   TSHttpStatus resp_status;
 
   if (TSHttpTxnServerRespGet(txnp, &bufp, &hdr_loc) != TS_SUCCESS) {
-    TSError("[server_transform] Unable to get handle to Server Response");
+    TSError("[%s] Unable to get handle to Server Response", PLUGIN_NAME);
     return 0;
   }
 
   resp_status = TSHttpHdrStatusGet(bufp, hdr_loc);
   if (TS_HTTP_STATUS_OK == resp_status) {
     if (TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdr_loc) != TS_SUCCESS) {
-      TSError("[server_transform] Unable to release handle to server request");
+      TSError("[%s] Unable to release handle to server request", PLUGIN_NAME);
     }
     return 1;
   } else {
     if (TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdr_loc) != TS_SUCCESS) {
-      TSError("[server_transform] Unable to release handle to server request");
+      TSError("[%s] Unable to release handle to server request", PLUGIN_NAME);
     }
     return 0;
   }
@@ -642,12 +634,12 @@ TSPluginInit(int argc ATS_UNUSED, const char *argv[] ATS_UNUSED)
   TSPluginRegistrationInfo info;
   TSCont cont;
 
-  info.plugin_name   = "server-transform";
-  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("[server_transform] Plugin registration failed");
+    TSError("[%s] Plugin registration failed", PLUGIN_NAME);
   }
 
   /* connect to the echo port on localhost */

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

Mime
View raw message