X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util-src%2Fencodings.c;h=f2109d0c1a2433e2b0f88afd5b9e5f5a00046576;hb=f25b41f77c93a5d0021f51b0653bcaa9423a1b12;hp=65d7d501a43c610037b4633236a244c0c859f8ef;hpb=abcf719640e34bacc620de3ec3345cfcb042f517;p=prosody.git diff --git a/util-src/encodings.c b/util-src/encodings.c index 65d7d501..f2109d0c 100644 --- a/util-src/encodings.c +++ b/util-src/encodings.c @@ -1,6 +1,6 @@ -/* Prosody IM v0.4 --- Copyright (C) 2008-2009 Matthew Wild --- Copyright (C) 2008-2009 Waqas Hussain +/* Prosody IM +-- Copyright (C) 2008-2010 Matthew Wild +-- Copyright (C) 2008-2010 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. @@ -108,7 +108,6 @@ static int Lbase64_decode(lua_State *L) /** decode(s) */ break; } } - return 0; } static const luaL_Reg Reg_base64[] = @@ -125,9 +124,14 @@ static const luaL_Reg Reg_base64[] = static int stringprep_prep(lua_State *L, const Stringprep_profile *profile) { size_t len; - const char *s = luaL_checklstring(L, 1, &len); + const char *s; char string[1024]; int ret; + if(!lua_isstring(L, 1)) { + lua_pushnil(L); + return 1; + } + s = lua_tolstring(L, 1, &len); if (len >= 1024) { lua_pushnil(L); return 1; // TODO return error message @@ -163,13 +167,14 @@ static const luaL_Reg Reg_stringprep[] = /***************** IDNA *****************/ #include +#include static int Lidna_to_ascii(lua_State *L) /** idna.to_ascii(s) */ { size_t len; const char *s = luaL_checklstring(L, 1, &len); char* output = NULL; - int ret = idna_to_ascii_8z(s, &output, 0); + int ret = idna_to_ascii_8z(s, &output, IDNA_USE_STD3_ASCII_RULES); if (ret == IDNA_SUCCESS) { lua_pushstring(L, output); idn_free(output);