From 566fd0d75c4a46b8a69f67a75ecfb704e985db01 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Sun, 28 Aug 2016 15:39:26 -0400 Subject: refactor ctx.c --- ctx.c | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/ctx.c b/ctx.c index 3f2f98f..405223f 100644 --- a/ctx.c +++ b/ctx.c @@ -25,8 +25,8 @@ fhp_ctx_buf_flush( ctx->buf_hash = fhp_lc_hash_push(ctx->buf_hash, ctx->buf, ctx->buf_len); // push to header value parser - fhp_err_t err; - if ((err = fhp_header_value_parser_push(ctx, ctx->buf, ctx->buf_len)) != FHP_OK) + fhp_err_t err = fhp_header_value_parser_push(ctx, ctx->buf, ctx->buf_len); + if (err != FHP_OK) return err; // clear buffer @@ -64,24 +64,31 @@ fhp_ctx_buf_push( static fhp_err_t fhp_ctx_handle_method(fhp_ctx_t * const ctx) { + uint32_t hash = ctx->buf_hash; + fhp_token_t method = FHP_TOKEN_METHOD_OTHER; + // get method token - ctx->http_method = FHP_TOKEN_METHOD_OTHER; - if (ctx->buf_hash == ctx->env->hashes[FHP_STR_GET]) { - ctx->http_method = FHP_TOKEN_METHOD_GET; - } else if (ctx->buf_hash == ctx->env->hashes[FHP_STR_POST]) { - ctx->http_method = FHP_TOKEN_METHOD_POST; - } else if (ctx->buf_hash == ctx->env->hashes[FHP_STR_HEAD]) { - ctx->http_method = FHP_TOKEN_METHOD_HEAD; - } else if (ctx->buf_hash == ctx->env->hashes[FHP_STR_PUT]) { - ctx->http_method = FHP_TOKEN_METHOD_PUT; - } else if (ctx->buf_hash == ctx->env->hashes[FHP_STR_DELETE]) { - ctx->http_method = FHP_TOKEN_METHOD_DELETE; - } else if (ctx->buf_hash == ctx->env->hashes[FHP_STR_OPTIONS]) { - ctx->http_method = FHP_TOKEN_METHOD_OPTIONS; + if (hash == ctx->env->hashes[FHP_STR_GET]) { + method = FHP_TOKEN_METHOD_GET; + } else if (hash == ctx->env->hashes[FHP_STR_POST]) { + method = FHP_TOKEN_METHOD_POST; + } else if (hash == ctx->env->hashes[FHP_STR_HEAD]) { + method = FHP_TOKEN_METHOD_HEAD; + } else if (hash == ctx->env->hashes[FHP_STR_PUT]) { + method = FHP_TOKEN_METHOD_PUT; + } else if (hash == ctx->env->hashes[FHP_STR_DELETE]) { + method = FHP_TOKEN_METHOD_DELETE; + } else if (hash == ctx->env->hashes[FHP_STR_OPTIONS]) { + method = FHP_TOKEN_METHOD_OPTIONS; + } else { + method = FHP_TOKEN_METHOD_OTHER; } + // set method token + ctx->http_method = method; + // send method token - if (!ctx->cb(ctx, ctx->http_method, 0, 0)) + if (!ctx->cb(ctx, method, 0, 0)) return FHP_ERR_CB; // return success @@ -92,7 +99,7 @@ fhp_ctx_handle_method(fhp_ctx_t * const ctx) { // context functions // -static const fhp_ctx_t FHP_DEFAULT_CONTEXT = { +static const fhp_ctx_t FHP_CTX_DEFAULT = { .state = FHP_STATE_INIT, .user_data = NULL, .cb = NULL, @@ -114,7 +121,7 @@ fhp_ctx_init( fhp_cb_t cb, void * const user_data ) { - *ctx = FHP_DEFAULT_CONTEXT; + *ctx = FHP_CTX_DEFAULT; ctx->env = env ? env : fhp_get_default_env(); ctx->user_data = user_data; ctx->cb = cb; -- cgit v1.2.3