trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From zw...@apache.org
Subject svn commit: r1228936 - in /trafficserver/traffic/trunk: CHANGES proxy/InkAPI.cc proxy/api/ts/ts.h.in
Date Sun, 08 Jan 2012 19:50:49 GMT
Author: zwoop
Date: Sun Jan  8 19:50:48 2012
New Revision: 1228936

URL: http://svn.apache.org/viewvc?rev=1228936&view=rev
Log:
TS-1048 Add TS API to enable plugins to use traffic server configuration infrastructure .

Author: Bianca Cooper
Review and minor changes: leif

Modified:
    trafficserver/traffic/trunk/CHANGES
    trafficserver/traffic/trunk/proxy/InkAPI.cc
    trafficserver/traffic/trunk/proxy/api/ts/ts.h.in

Modified: trafficserver/traffic/trunk/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/CHANGES?rev=1228936&r1=1228935&r2=1228936&view=diff
==============================================================================
--- trafficserver/traffic/trunk/CHANGES (original)
+++ trafficserver/traffic/trunk/CHANGES Sun Jan  8 19:50:48 2012
@@ -1,5 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 3.1.2
+  *) [TS-1048] Add TS API to enable plugins to use traffic server
+   configuration infrastructure. Author: Bianca Cooper.
+
   *) [TS-1074] PluginVC should schedule to the local queue instead of the
   external queue. Author: Brian Geffon
 

Modified: trafficserver/traffic/trunk/proxy/InkAPI.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkAPI.cc?rev=1228936&r1=1228935&r2=1228936&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkAPI.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkAPI.cc Sun Jan  8 19:50:48 2012
@@ -64,6 +64,9 @@
 #include "I_AIO.h"
 #include "I_Tasks.h"
 
+#include "I_RecDefs.h"
+#include "I_RecCore.h"
+
 
 /****************************************************************
  *  IMPORTANT - READ ME
@@ -8001,4 +8004,29 @@ TSHttpTxnPrivateSessionSet(TSHttpTxn txn
   return TS_ERROR;
 }
 
+// APIs to register new Mgmt (records.config) entries.
+TSReturnCode
+TSMgmtStringCreate(TSRecordType rec_type, const char *name, const TSMgmtString data_default,
+                   TSRecordUpdateType update_type, TSRecordCheckType check_type,
+                   const char *check_regex, TSRecordAccessType access_type)
+{
+  if (REC_ERR_OKAY != RecRegisterConfigString((enum RecT)rec_type, name, data_default, (enum
RecUpdateT)update_type,
+                                              (enum RecCheckT)check_type, check_regex, (enum
RecAccessT)access_type))
+    return TS_ERROR;
+
+  return TS_SUCCESS;
+}
+
+TSReturnCode
+TSMgmtIntCreate(TSRecordType rec_type, const char *name, TSMgmtInt data_default,
+                TSRecordUpdateType update_type, TSRecordCheckType check_type,
+                const char *check_regex, TSRecordAccessType access_type)
+{
+  if (REC_ERR_OKAY != RecRegisterConfigInt((enum RecT)rec_type, name, (RecInt)data_default,
(enum RecUpdateT)update_type,
+                                           (enum RecCheckT)check_type, check_regex, (enum
RecAccessT)access_type))
+    return TS_ERROR;
+
+  return TS_SUCCESS;
+}
+
 #endif //TS_NO_API

Modified: trafficserver/traffic/trunk/proxy/api/ts/ts.h.in
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/api/ts/ts.h.in?rev=1228936&r1=1228935&r2=1228936&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/api/ts/ts.h.in (original)
+++ trafficserver/traffic/trunk/proxy/api/ts/ts.h.in Sun Jan  8 19:50:48 2012
@@ -448,9 +448,9 @@ extern "C"
     AFTER_BODY
   } TSFetchWakeUpOptions;
 
-  /**
-     This type represents a context for data records.
-  */
+  /* librecords types */
+
+  /* The values of this enum must match enum RecT in I_RecDefs.h */
   typedef enum
     {
       TS_RECORDTYPE_NULL = 0,
@@ -463,6 +463,7 @@ extern "C"
       TS_RECORDTYPE_MAX
     } TSRecordType;
 
+  /* The values of this enum must match enum RecDataT in I_RecDefs.h */
   typedef enum
     {
       TS_RECORDDATATYPE_NULL = 0,
@@ -470,6 +471,8 @@ extern "C"
       TS_RECORDDATATYPE_FLOAT,
       TS_RECORDDATATYPE_STRING,
       TS_RECORDDATATYPE_COUNTER,
+      TS_RECORDDATATYPE_STAT_CONST,
+      TS_RECORDDATATYPE_STAT_FX,
       TS_RECORDDATATYPE_MAX
     } TSRecordDataType;
 
@@ -481,6 +484,50 @@ extern "C"
     int64_t rec_counter;
   } TSRecordData;
 
+  /* The values of this enum must match enum RecPersistT in I_RecDefs.h */
+  typedef enum
+    {
+      TS_RECORDP_NULL,
+      TS_RECORDP_PERSISTENT,
+      TS_RECORDP_NON_PERSISTENT
+    } TSRecordPersistType;
+
+  /* The values of this enum must match enum RecUpdateT in I_RecDefs.h */
+  typedef enum
+    {
+      TS_RECORDUPDATE_NULL,
+      TS_RECORDUPDATE_DYNAMIC,
+      TS_RECORDUPDATE_RESTART_TS,
+      TS_RECORDUPDATE_RESTART_TM,
+      TS_RECORDUPDATE_RESTART_TC
+    } TSRecordUpdateType;
+
+  /* The values of this enum must match enum RecCheckT in I_RecDefs.h */
+  typedef enum
+    {
+      TS_RECORDCHECK_NULL,
+      TS_RECORDCHECK_STR,
+      TS_RECORDCHECK_INT,
+      TS_RECORDCHECK_IP
+    } TSRecordCheckType;
+
+  /* The values of this enum must match enum RecModeT in I_RecDefs.h */
+  typedef enum
+    {
+      TS_RECORDMODE_NULL,
+      TS_RECORDMODE_CLIENT,
+      TS_RECORDMODE_SERVER,
+      TS_RECORDMODE_STAND_ALONE
+    } TSRecordModeType;
+
+  /* The values of this enum must match enum RecAccessT in I_RecDefs.h */
+  typedef enum
+    {
+      TS_RECORDACCESS_NULL,
+      TS_RECORDACCESS_NO_ACCESS,
+      TS_RECORDACCESS_READ_ONLY
+    } TSRecordAccessType;
+
   typedef enum
   {
     TS_CONFIG_NULL = -1,
@@ -556,7 +603,7 @@ extern "C"
       TS_THREAD_POOL_DEFAULT = -1,
       TS_THREAD_POOL_NET,
       TS_THREAD_POOL_TASK,
-      /* unlikely you should use these */    
+      /* unlikely you should use these */
       TS_THREAD_POOL_SSL,
       TS_THREAD_POOL_DNS,
       TS_THREAD_POOL_REMAP,
@@ -1605,7 +1652,7 @@ extern "C"
   /**
      Perform percent-decoding of the string in the buffer, writing
      to the output buffer. The source and destination can be the same,
-     in which case they overwrite. The decoded string is always 
+     in which case they overwrite. The decoded string is always
      guaranteed to be no longer than the source string.
 
      @param str the string to decode (and possibly write to).
@@ -2125,7 +2172,7 @@ extern "C"
       after use with @c TSfree.
   */
   tsapi char* TSHttpTxnEffectiveUrlStringGet(TSHttpTxn txnp,
-                                             int* length /**< String length return, may
be @c NULL. */ 
+                                             int* length /**< String length return, may
be @c NULL. */
                                              );
   tsapi TSReturnCode TSHttpTxnClientRespGet(TSHttpTxn txnp, TSMBuffer* bufp, TSMLoc* offset);
   tsapi TSReturnCode TSHttpTxnServerReqGet(TSHttpTxn txnp, TSMBuffer* bufp, TSMLoc* offset);
@@ -2154,20 +2201,20 @@ extern "C"
    */
   tsapi struct sockaddr const* TSHttpTxnClientAddrGet(TSHttpTxn txnp);
   /** Get the incoming address.
-   
+
       @note The pointer is valid only for the current callback. Clients
       that need to keep the value across callbacks must maintain their
       own storage.
-      
+
       @return Local address of the client connection for transaction @a txnp.
   */
   tsapi struct sockaddr const* TSHttpTxnIncomingAddrGet(TSHttpTxn txnp);
   /** Get the origin server address.
-   * 
+   *
       @note The pointer is valid only for the current callback. Clients
       that need to keep the value across callbacks must maintain their
       own storage.
-      
+
       @return The address of the origin server for transaction @a txnp.
   */
   tsapi struct sockaddr const* TSHttpTxnServerAddrGet(TSHttpTxn txnp);
@@ -2175,7 +2222,7 @@ extern "C"
 
       This must be invoked before the origin server address is looked up.
       If called no lookup is done, the address @a addr is used instead.
-      
+
       @return @c TS_SUCCESS if the origin server address is set, @c TS_ERROR otherwise.
   */
   tsapi TSReturnCode TSHttpTxnServerAddrSet(TSHttpTxn txnp,
@@ -2183,11 +2230,11 @@ extern "C"
                                             );
 
   /** Get the next hop address.
-   * 
+   *
       @note The pointer is valid only for the current callback. Clients
       that need to keep the value across callbacks must maintain their
       own storage.
-      
+
       @return The address of the next hop for transaction @a txnp.
   */
   tsapi struct sockaddr const* TSHttpTxnNextHopAddrGet(TSHttpTxn txnp);
@@ -2368,7 +2415,7 @@ extern "C"
       @param log_port port (in network byte order) that connection will
         be logged as coming from.
       @param vc will be set to point to the new TSVConn on success.
-      
+
    */
   tsapi TSVConn TSHttpConnect(struct sockaddr const* addr);
   tsapi void TSFetchUrl(const char* request,int request_len, struct sockaddr const* addr,
TSCont contp, TSFetchWakeUpOptions callback_options,TSFetchEvent event);
@@ -2415,7 +2462,7 @@ extern "C"
   /**
       Returns the IP address of the remote host with which Traffic Server
       is connected through the vconnection vc.
-      
+
       @deprecated Use TSNetVConnRemoteAddrGet
 
       @param vc representing a connection that your plugin has opened
@@ -2425,7 +2472,7 @@ extern "C"
 
    */
   tsapi TS_DEPRECATED unsigned int TSNetVConnRemoteIPGet(TSVConn vc);
-  
+
   tsapi struct sockaddr const* TSNetVConnRemoteAddrGet(TSVConn vc);
 
   /** @deprecated Use TSNetVConnRemoteAddrGet */
@@ -2643,9 +2690,9 @@ extern "C"
    tsapi struct sockaddr const* TSNetVConnLocalAddrGet(TSVConn vc);
 
   /* --------------------------------------------------------------------------
-     Stats based on librecords raw stats (this is prefered API until we rewrite
-     stats). This system has a limitation of up to 1,500 stats max, controlled via
-     proxy.config.stat_api.max_stats_allowed (default is 512).
+     Stats and configs based on librecords raw stats (this is prefered API until we
+     rewrite stats). This system has a limitation of up to 1,500 stats max, controlled
+     via proxy.config.stat_api.max_stats_allowed (default is 512).
 
      This is available as of Apache TS v2.2.*/
   typedef enum
@@ -2662,6 +2709,14 @@ extern "C"
     TS_STAT_SYNC_TIMEAVG
   } TSStatSync;
 
+  /* APIs to create new records.config configurations */
+  tsapi TSReturnCode TSMgmtStringCreate(TSRecordType rec_type, const char *name, const TSMgmtString
data_default,
+                                        TSRecordUpdateType update_type, TSRecordCheckType
check_type,
+                                        const char *check_regex, TSRecordAccessType access_type);
+  tsapi TSReturnCode TSMgmtIntCreate(TSRecordType rec_type, const char *name, TSMgmtInt data_default,
+                                     TSRecordUpdateType update_type, TSRecordCheckType check_type,
+                                     const char *check_regex, TSRecordAccessType access_type);
+
   /*  Note that only TS_RECORDDATATYPE_INT is supported at this point. */
   tsapi int TSStatCreate(const char* the_name, TSRecordDataType the_type, TSStatPersistence
persist, TSStatSync sync);
 
@@ -2917,7 +2972,7 @@ extern "C"
    */
   tsapi TSReturnCode TSAIOThreadNumSet(int thread_num);
 
-  /** 
+  /**
       Check if transaction was aborted (due client/server errors etc.)
 
       @return 1 if transaction was aborted
@@ -2977,8 +3032,8 @@ extern "C"
   tsapi void TSVConnActiveTimeoutSet(TSVConn connp, TSHRTime timeout);
   tsapi void TSVConnActiveTimeoutCancel(TSVConn connp);
 
-  /* 
-    ability to skip the remap phase of the State Machine 
+  /*
+    ability to skip the remap phase of the State Machine
     this only really makes sense in TS_HTTP_READ_REQUEST_HDR_HOOK
   */
   tsapi void TSSkipRemappingSet(TSHttpTxn txnp, int flag);
@@ -3009,7 +3064,7 @@ extern "C"
   tsapi int TSHttpCurrentIdleClientConnectionsGet(void);
   tsapi int TSHttpCurrentCacheConnectionsGet(void);
   tsapi int TSHttpCurrentServerConnectionsGet(void);
-  
+
   /* =====  Http Transactions =====  */
   tsapi TSReturnCode TSHttpTxnCachedRespModifiableGet(TSHttpTxn txnp, TSMBuffer *bufp, TSMLoc
*offset);
   tsapi TSReturnCode TSHttpTxnCacheLookupStatusSet(TSHttpTxn txnp, int cachelookup);



Mime
View raw message