ngx_int_t hustdb_ha_write_handler(
    uint8_t method,
    ngx_bool_t support_post_only,
    ngx_bool_t key_in_body,
    ngx_bool_t has_tb,
    ngx_bool_t check_body_len,
    ngx_str_t * backend_uri,
    ngx_http_request_t *r,
    hustdb_ha_start_write_t start_write)
{
    ngx_http_hustdb_ha_write_ctx_t * ctx = ngx_http_get_addon_module_ctx(r);
    if (!ctx)
    {
        return start_write(support_post_only, key_in_body, has_tb, check_body_len, backend_uri, r);
    }
    if (STATE_WRITE_MASTER1 == ctx->state)
    {
        return __on_write_master1_complete(method, has_tb, r, ctx);
    }
    else if (STATE_WRITE_MASTER2 == ctx->state)
    {
        return __on_write_master2_complete(method, has_tb, r, ctx);
    }
    return NGX_ERROR;
}
Пример #2
0
ngx_int_t hustdb_ha_zwrite_handler(
    uint8_t method,
    ngx_str_t * backend_uri,
    ngx_http_request_t *r)
{
    ngx_http_hustdb_ha_write_ctx_t * ctx = ngx_http_get_addon_module_ctx(r);
    if (!ctx)
    {
        return __start_zwrite(backend_uri, r);
    }
    if (STATE_WRITE_MASTER1 == ctx->state)
    {
        return __on_write_master1_complete(method, true, r, ctx);
    }
    else if (STATE_WRITE_MASTER2 == ctx->state)
    {
        return __on_write_master2_complete(method, true, r, ctx);
    }
    return NGX_ERROR;
}