You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2013/06/06 06:13:39 UTC
[04/14] git commit: cleaned up formating of the code and some
comments, added documentation to the README
cleaned up formating of the code and some comments, added documentation to the
README
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/d9d4c8c4
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/d9d4c8c4
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/d9d4c8c4
Branch: refs/heads/3.3.x
Commit: d9d4c8c4d1c1052a5d9b4b0b8977e6cc59fa331e
Parents: 218cccb
Author: Bryan Call <bc...@apache.org>
Authored: Tue Jun 4 13:17:54 2013 -0700
Committer: Bryan Call <bc...@apache.org>
Committed: Tue Jun 4 13:17:54 2013 -0700
----------------------------------------------------------------------
tools/lighttpd_mod_generator/README | 15 ++
tools/lighttpd_mod_generator/mod_generator.c | 164 ++++++++++----------
2 files changed, 97 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d9d4c8c4/tools/lighttpd_mod_generator/README
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/README b/tools/lighttpd_mod_generator/README
index 434c6ea..bbaf47f 100644
--- a/tools/lighttpd_mod_generator/README
+++ b/tools/lighttpd_mod_generator/README
@@ -1,6 +1,21 @@
ATS (Apache Traffic Server) version of lighttpd
lighttpd is use as an origin server for testing.
+Format of the URL:
+http://server:port/bytes-id-sleeptime-{cache|no_cache}
+
+bytes - number of bytes for the response body
+id - arbitrary id that can be used for uniqueness
+sleeptime - milliseconds lighttpd should sleep before sending a response
+{cache|no_cache} - add headers to make the response cacheable or not
+
+Example URLs:
+URL to test the caching of ATS, 1KB body and don't delay the response
+http://myserver.com:8080/1024-123-0-cache
+
+URL to test the proxying of ATS, 2KB body and delay the resonse for 1ms
+http://myserver.com:8080/2048-123-1-no_cache
+
Version 1.4.30_1 (3/28/12, bcall)
- Updated version of lighttpd
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/d9d4c8c4/tools/lighttpd_mod_generator/mod_generator.c
----------------------------------------------------------------------
diff --git a/tools/lighttpd_mod_generator/mod_generator.c b/tools/lighttpd_mod_generator/mod_generator.c
index e8e3410..e08d9b2 100644
--- a/tools/lighttpd_mod_generator/mod_generator.c
+++ b/tools/lighttpd_mod_generator/mod_generator.c
@@ -55,7 +55,7 @@ static char static_data[8192];
/* plugin config for all request/connections */
typedef struct {
- array *match;
+ array *match;
} plugin_config;
typedef struct {
@@ -70,7 +70,7 @@ typedef struct {
} plugin_data;
typedef struct {
- size_t foo;
+ size_t foo;
} handler_ctx;
// static handler_ctx * handler_ctx_init() {
@@ -88,139 +88,139 @@ typedef struct {
/* init the plugin data */
INIT_FUNC(mod_generator_init) {
- plugin_data *p;
+ plugin_data *p;
- p = calloc(1, sizeof(*p));
+ p = calloc(1, sizeof(*p));
- p->match_buf = buffer_init();
+ p->match_buf = buffer_init();
- return p;
+ return p;
}
/* detroy the plugin data */
FREE_FUNC(mod_generator_free) {
- plugin_data *p = p_d;
+ plugin_data *p = p_d;
- UNUSED(srv);
+ UNUSED(srv);
- if (!p) return HANDLER_GO_ON;
+ if (!p) return HANDLER_GO_ON;
- if (p->config_storage) {
- size_t i;
+ if (p->config_storage) {
+ size_t i;
- for (i = 0; i < srv->config_context->used; i++) {
- plugin_config *s = p->config_storage[i];
+ for (i = 0; i < srv->config_context->used; i++) {
+ plugin_config *s = p->config_storage[i];
- if (!s) continue;
+ if (!s) continue;
- array_free(s->match);
+ array_free(s->match);
- free(s);
- }
- free(p->config_storage);
- }
+ free(s);
+ }
+ free(p->config_storage);
+ }
- buffer_free(p->match_buf);
+ buffer_free(p->match_buf);
- free(p);
+ free(p);
- return HANDLER_GO_ON;
+ return HANDLER_GO_ON;
}
/* handle plugin config and check values */
SETDEFAULTS_FUNC(mod_generator_set_defaults) {
- plugin_data *p = p_d;
- size_t i = 0;
+ plugin_data *p = p_d;
+ size_t i = 0;
- config_values_t cv[] = {
- { "generator.array", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
- { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
- };
+ config_values_t cv[] = {
+ { "generator.array", NULL, T_CONFIG_ARRAY, T_CONFIG_SCOPE_CONNECTION }, /* 0 */
+ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
+ };
- if (!p) return HANDLER_ERROR;
+ if (!p) return HANDLER_ERROR;
- p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
+ p->config_storage = calloc(1, srv->config_context->used * sizeof(specific_config *));
- for (i = 0; i < srv->config_context->used; i++) {
- plugin_config *s;
+ for (i = 0; i < srv->config_context->used; i++) {
+ plugin_config *s;
- s = calloc(1, sizeof(plugin_config));
- s->match = array_init();
+ s = calloc(1, sizeof(plugin_config));
+ s->match = array_init();
- cv[0].destination = s->match;
+ cv[0].destination = s->match;
- p->config_storage[i] = s;
+ p->config_storage[i] = s;
- if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
- return HANDLER_ERROR;
- }
- }
+ if (0 != config_insert_values_global(srv, ((data_config *)srv->config_context->data[i])->value, cv)) {
+ return HANDLER_ERROR;
+ }
+ }
- return HANDLER_GO_ON;
+ return HANDLER_GO_ON;
}
-#define PATCH(x) \
- p->conf.x = s->x;
+#define PATCH(x) \
+ p->conf.x = s->x;
static int mod_generator_patch_connection(server *srv, connection *con, plugin_data *p) {
- size_t i, j;
- plugin_config *s = p->config_storage[0];
+ size_t i, j;
+ plugin_config *s = p->config_storage[0];
- PATCH(match);
+ PATCH(match);
- /* skip the first, the global context */
- for (i = 1; i < srv->config_context->used; i++) {
- data_config *dc = (data_config *)srv->config_context->data[i];
- s = p->config_storage[i];
+ /* skip the first, the global context */
+ for (i = 1; i < srv->config_context->used; i++) {
+ data_config *dc = (data_config *)srv->config_context->data[i];
+ s = p->config_storage[i];
- /* condition didn't match */
- if (!config_check_cond(srv, con, dc)) continue;
+ /* condition didn't match */
+ if (!config_check_cond(srv, con, dc)) continue;
- /* merge config */
- for (j = 0; j < dc->value->used; j++) {
- data_unset *du = dc->value->data[j];
+ /* merge config */
+ for (j = 0; j < dc->value->used; j++) {
+ data_unset *du = dc->value->data[j];
- if (buffer_is_equal_string(du->key, CONST_STR_LEN("generator.array"))) {
- PATCH(match);
- }
- }
- }
+ if (buffer_is_equal_string(du->key, CONST_STR_LEN("generator.array"))) {
+ PATCH(match);
+ }
+ }
+ }
- return 0;
+ return 0;
}
#undef PATCH
URIHANDLER_FUNC(mod_generator_uri_handler) {
- plugin_data *p = p_d;
- int s_len;
- size_t k;
+ plugin_data *p = p_d;
+ int s_len;
+ size_t k;
- UNUSED(srv);
+ UNUSED(srv);
- if (con->mode != DIRECT) return HANDLER_GO_ON;
+ if (con->mode != DIRECT) return HANDLER_GO_ON;
- if (con->uri.path->used == 0) return HANDLER_GO_ON;
+ if (con->uri.path->used == 0) return HANDLER_GO_ON;
- mod_generator_patch_connection(srv, con, p);
+ mod_generator_patch_connection(srv, con, p);
- s_len = con->uri.path->used - 1;
+ s_len = con->uri.path->used - 1;
- for (k = 0; k < p->conf.match->used; k++) {
- data_string *ds = (data_string *)p->conf.match->data[k];
- int ct_len = ds->value->used - 1;
+ for (k = 0; k < p->conf.match->used; k++) {
+ data_string *ds = (data_string *)p->conf.match->data[k];
+ int ct_len = ds->value->used - 1;
- if (ct_len > s_len) continue;
- if (ds->value->used == 0) continue;
+ if (ct_len > s_len) continue;
+ if (ds->value->used == 0) continue;
- if (0 == strncmp(con->uri.path->ptr + s_len - ct_len, ds->value->ptr, ct_len)) {
- con->http_status = 403;
+ if (0 == strncmp(con->uri.path->ptr + s_len - ct_len, ds->value->ptr, ct_len)) {
+ con->http_status = 403;
- return HANDLER_FINISHED;
- }
- }
+ return HANDLER_FINISHED;
+ }
+ }
- /* not found */
- return HANDLER_GO_ON;
+ /* not found */
+ return HANDLER_GO_ON;
}
@@ -260,7 +260,7 @@ URIHANDLER_FUNC(mod_generator_subrequest_handler) {
}
start = end + 1;
- // get the id from the url
+ // get the time to sleep from the url
int64_t sleepval = strtoll(start, &end, 10);
if (start == end && id < 0 && *start != '-') {