--- src/mod_magnet.c.orig 2008-03-20 16:42:27.474589481 +0200 +++ src/mod_magnet.c 2008-03-20 16:52:48.767758309 +0200 @@ -369,7 +369,7 @@ } type; } magnet_env_t; -static buffer *magnet_env_get_buffer(server *srv, connection *con, const char *key) { +static buffer *magnet_env_get_buffer(server *srv, connection *con, const char *key, buffer* tmpbuf) { buffer *dest = NULL; size_t i; @@ -414,7 +414,12 @@ case MAGNET_ENV_URI_AUTHORITY: dest = con->uri.authority; break; case MAGNET_ENV_URI_QUERY: dest = con->uri.query; break; - case MAGNET_ENV_REQUEST_METHOD: break; + case MAGNET_ENV_REQUEST_METHOD: + if (tmpbuf) { + buffer_copy_string(tmpbuf, get_http_method_name(con->request.http_method)); + dest = tmpbuf; + } + break; case MAGNET_ENV_REQUEST_URI: dest = con->request.uri; break; case MAGNET_ENV_REQUEST_ORIG_URI: dest = con->request.orig_uri; break; case MAGNET_ENV_REQUEST_PROTOCOL: break; @@ -442,13 +447,15 @@ con = lua_touserdata(L, -1); lua_pop(L, 1); - dest = magnet_env_get_buffer(srv, con, key); + buffer *tmpbuf = buffer_init(); + dest = magnet_env_get_buffer(srv, con, key, tmpbuf); if (dest && dest->used) { lua_pushlstring(L, dest->ptr, dest->used - 1); } else { lua_pushnil(L); } + buffer_free(tmpbuf); return 1; } @@ -471,7 +478,7 @@ con = lua_touserdata(L, -1); lua_pop(L, 1); - if (NULL != (dest = magnet_env_get_buffer(srv, con, key))) { + if (NULL != (dest = magnet_env_get_buffer(srv, con, key, NULL))) { buffer_copy_string(dest, val); } else { /* couldn't save */