Project

General

Profile

Bug #1606 ยป mod_magnet.patch

olegnitz, 2008-03-20 15:08

View differences:

src/mod_magnet.c 2008-03-20 16:52:48.767758309 +0200
} 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;
......
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;
......
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;
}
......
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 */
    (1-1/1)