Add GetRedbeanVersion & rename GetVersion (#219)

- Add GetRedbeanVersion() to redbean (#97)
- Rename GetVersion to GetHttpVersion() for consistency (#97)
- Update Content-Length format to use a proper size modifier (#97, #218)
This commit is contained in:
Paul Kulchenko 2021-08-02 14:46:43 -07:00 committed by GitHub
parent 0b317523a0
commit 64d87d4e5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 5 deletions

View file

@ -664,10 +664,15 @@ FUNCTIONS
if redbean is being used as an HTTP proxy server. In the future
this API might change to return an object instead.
GetVersion() → int
GetHttpVersion() → int
Returns the request HTTP protocol version, which can be 9 for
HTTP/0.9, 10 for HTTP/1.0, or 11 for HTTP/1.1.
GetRedbeanVersion() → int
Returns the Redbean version in the format 0xMMmmpp, with major (MM),
minor (mm), and patch (pp) versions encoded. The version value 1.4
would be represented as 0x010400.
GetZipPaths() → array[str]
Returns paths of all assets in the zip central directory, prefixed
by a slash.

View file

@ -142,6 +142,7 @@
#define REDBEAN "redbean"
#endif
#define VERSION 0x010400
#define HASH_LOAD_FACTOR /* 1. / */ 4
#define read(F, P, N) readv(F, &(struct iovec){P, N}, 1)
#define write(F, P, N) writev(F, &(struct iovec){P, N}, 1)
@ -960,7 +961,7 @@ static void ProgramCache(long x) {
}
static void SetDefaults(void) {
ProgramBrand(REDBEAN "/1.4");
ProgramBrand(gc(xasprintf("%s/%hhd.%hhd", REDBEAN, VERSION>>020, VERSION>>010)));
__log_level = kLogInfo;
maxpayloadsize = 64 * 1024;
ProgramCache(-1);
@ -3727,7 +3728,7 @@ static int LuaFetch(lua_State *L) {
if (bodylen > 0 ||
!(methodidx == kHttpGet || methodidx == kHttpHead ||
methodidx == kHttpTrace || methodidx == kHttpDelete || methodidx == kHttpConnect))
conlenhdr = gc(xasprintf("Content-Length: %d\r\n", bodylen));
conlenhdr = gc(xasprintf("Content-Length: %zu\r\n", bodylen));
/*
* Parse URL.
@ -4017,11 +4018,16 @@ static int LuaGetDate(lua_State *L) {
return 1;
}
static int LuaGetVersion(lua_State *L) {
static int LuaGetHttpVersion(lua_State *L) {
lua_pushinteger(L, msg.version);
return 1;
}
static int LuaGetRedbeanVersion(lua_State *L) {
lua_pushinteger(L, VERSION);
return 1;
}
static int LuaGetMethod(lua_State *L) {
if (msg.method) {
lua_pushstring(L, kHttpMethod[msg.method]);
@ -5198,7 +5204,8 @@ static const luaL_Reg kLuaFuncs[] = {
{"GetServerAddr", LuaGetServerAddr}, //
{"GetUrl", LuaGetUrl}, //
{"GetUser", LuaGetUser}, //
{"GetVersion", LuaGetVersion}, //
{"GetHttpVersion", LuaGetHttpVersion}, //
{"GetRedbeanVersion", LuaGetRedbeanVersion}, //
{"GetZipPaths", LuaGetZipPaths}, //
{"HasControlCodes", LuaHasControlCodes}, //
{"HasParam", LuaHasParam}, //