about summary refs log tree commit homepage
path: root/ext/unicorn_http/global_variables.h
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-08-10 23:55:21 -0700
committerEric Wong <normalperson@yhbt.net>2009-08-11 00:51:10 -0700
commitb1adc4738b5fd9a42a5d686d67efae300d1c55ea (patch)
tree8027e31e9ebb0d0fe64cbaf85a704136c56f212d /ext/unicorn_http/global_variables.h
parent4d1121dbe7244537fc76757552345ea0e8f87a03 (diff)
downloadunicorn-b1adc4738b5fd9a42a5d686d67efae300d1c55ea.tar.gz
This should be used to detect if a request can really handle
keepalives and pipelining.  Currently, the rules are:

  1. MUST be a GET or HEAD request
  2. MUST be HTTP/1.1
  3. MUST NOT have "Connection: close" set

This also reduces the amount of garbage we create by
globalizing constants and using them whenever possible.
Diffstat (limited to 'ext/unicorn_http/global_variables.h')
-rw-r--r--ext/unicorn_http/global_variables.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/unicorn_http/global_variables.h b/ext/unicorn_http/global_variables.h
index 1383ed4..b8b6221 100644
--- a/ext/unicorn_http/global_variables.h
+++ b/ext/unicorn_http/global_variables.h
@@ -15,16 +15,19 @@ static VALUE g_path_info;
 static VALUE g_server_name;
 static VALUE g_server_port;
 static VALUE g_server_protocol;
-static VALUE g_server_protocol_value;
 static VALUE g_http_host;
 static VALUE g_http_x_forwarded_proto;
 static VALUE g_http_transfer_encoding;
 static VALUE g_content_length;
 static VALUE g_http_trailer;
+static VALUE g_http_connection;
 static VALUE g_port_80;
 static VALUE g_port_443;
 static VALUE g_localhost;
 static VALUE g_http;
+static VALUE g_http_11;
+static VALUE g_GET;
+static VALUE g_HEAD;
 
 /** Defines common length and error messages for input length validation. */
 #define DEF_MAX_LENGTH(N, length) \
@@ -71,12 +74,14 @@ void init_globals(void)
   DEF_GLOBAL(server_name, "SERVER_NAME");
   DEF_GLOBAL(server_port, "SERVER_PORT");
   DEF_GLOBAL(server_protocol, "SERVER_PROTOCOL");
-  DEF_GLOBAL(server_protocol_value, "HTTP/1.1");
   DEF_GLOBAL(http_x_forwarded_proto, "HTTP_X_FORWARDED_PROTO");
   DEF_GLOBAL(port_80, "80");
   DEF_GLOBAL(port_443, "443");
   DEF_GLOBAL(localhost, "localhost");
   DEF_GLOBAL(http, "http");
+  DEF_GLOBAL(http_11, "HTTP/1.1");
+  DEF_GLOBAL(GET, "GET");
+  DEF_GLOBAL(HEAD, "HEAD");
 
   eHttpParserError =
          rb_define_class_under(mUnicorn, "HttpParserError", rb_eIOError);