moonbridge

diff moonbridge_io.c @ 242:63466f65af56

Removed experimental work on libtls integration
author jbe
date Sun Aug 21 01:42:18 2016 +0200 (2016-08-21)
parents 58e442fbc5a3
children 1dbc5c27b279
line diff
     1.1 --- a/moonbridge_io.c	Sun Aug 21 01:26:48 2016 +0200
     1.2 +++ b/moonbridge_io.c	Sun Aug 21 01:42:18 2016 +0200
     1.3 @@ -25,10 +25,6 @@
     1.4  #include <bsd/unistd.h>
     1.5  #endif
     1.6  
     1.7 -#ifdef MOONBR_IO_USE_TLS
     1.8 -#include <tls.h>
     1.9 -#endif
    1.10 -
    1.11  #include <lua.h>
    1.12  #include <lauxlib.h>
    1.13  #include <lualib.h>
    1.14 @@ -52,10 +48,6 @@
    1.15  #define MOONBR_IO_CHILD_MT_REGKEY "moonbridge_io_child"
    1.16  #define MOONBR_IO_CHILD_PT_REGKEY "moonbridge_io_child_pt"
    1.17  
    1.18 -#ifdef MOONBR_IO_USE_TLS
    1.19 -#define MOONBR_IO_TLSCONF_MT_REGKEY "moonbridge_io_tlsconf"
    1.20 -#endif
    1.21 -
    1.22  typedef struct {
    1.23    int fd;
    1.24    int issock;
    1.25 @@ -1635,96 +1627,6 @@
    1.26    return 1;
    1.27  }
    1.28  
    1.29 -#ifdef MOONBR_IO_USE_TLS
    1.30 -
    1.31 -#define moonbr_io_tlsconf_string(name, field, func) \
    1.32 -  /* NOTE: use valuetype = lua_getfield(...) for LUA_VERSION_NUM >= 503 */ \
    1.33 -  lua_getfield(L, 1, (field)); \
    1.34 -  valuetype = lua_type(L, -1); \
    1.35 -  if (valuetype != LUA_TNIL) { \
    1.36 -    luaL_argcheck(L, valuetype == LUA_TSTRING, 1, "field \"" field "\" is not a string"); \
    1.37 -    value = lua_tostring(L, -1); \
    1.38 -    if (func(tlsconf, value)) { \
    1.39 -      lua_pushnil(L); \
    1.40 -      lua_pushfstring(L, "Could not set " name " \"%s\"", value); \
    1.41 -      return 2; \
    1.42 -    } \
    1.43 -  } \
    1.44 -  lua_pop(L, 1);
    1.45 -
    1.46 -#define moonbr_io_tlsconf_binary(name, field, func) \
    1.47 -  /* NOTE: use valuetype = lua_getfield(...) for LUA_VERSION_NUM >= 503 */ \
    1.48 -  lua_getfield(L, 1, (field)); \
    1.49 -  valuetype = lua_type(L, -1); \
    1.50 -  if (valuetype != LUA_TNIL) { \
    1.51 -    luaL_argcheck(L, valuetype == LUA_TSTRING, 1, "field \"" field "\" is not a string"); \
    1.52 -    value = lua_tolstring(L, -1, &valuelen); \
    1.53 -    if (func(tlsconf, (void *)value, valuelen)) { \
    1.54 -      lua_pushnil(L); \
    1.55 -      lua_pushliteral(L, "Could not set " name); \
    1.56 -      return 2; \
    1.57 -    } \
    1.58 -  } \
    1.59 -  lua_pop(L, 1);
    1.60 -
    1.61 -static int moonbr_io_tlsconf(lua_State *L) {
    1.62 -  struct tls_config *tlsconf;
    1.63 -  int valuetype;
    1.64 -  const char *value;
    1.65 -  size_t valuelen;
    1.66 -  luaL_checktype(L, 1, LUA_TTABLE);
    1.67 -  tlsconf = tls_config_new();
    1.68 -  if (!tlsconf) {
    1.69 -    return luaL_error(L, "Could not allocate memory for TLS configuration");
    1.70 -  }
    1.71 -  lua_pushlightuserdata(L, tlsconf);
    1.72 -  luaL_setmetatable(L, MOONBR_IO_TLSCONF_MT_REGKEY);
    1.73 -  lua_pushvalue(L, 1);
    1.74 -  lua_setuservalue(L, -2);
    1.75 -  moonbr_io_tlsconf_string("CA file",          "ca_file",   tls_config_set_ca_file);
    1.76 -  moonbr_io_tlsconf_string("CA path",          "ca_path",   tls_config_set_ca_path);
    1.77 -  moonbr_io_tlsconf_binary("CA",               "ca_mem",    tls_config_set_ca_mem);
    1.78 -  moonbr_io_tlsconf_string("certificate file", "cert_file", tls_config_set_cert_file);
    1.79 -  moonbr_io_tlsconf_binary("certificate",      "cert_mem",  tls_config_set_cert_mem);
    1.80 -  moonbr_io_tlsconf_string("key file",         "key_file",  tls_config_set_key_file);
    1.81 -  moonbr_io_tlsconf_binary("key",              "key_mem",   tls_config_set_key_mem);
    1.82 -  return 1;
    1.83 -}
    1.84 -
    1.85 -static int moonbr_io_tlsconfindex(lua_State *L) {
    1.86 -  struct tls_config *tlsconf;
    1.87 -  tlsconf = luaL_checkudata(L, 1, MOONBR_IO_TLSCONF_MT_REGKEY);
    1.88 -  luaL_checkany(L, 2);
    1.89 -#if LUA_VERSION_NUM >= 503
    1.90 -  if (lua_getuservalue(L, 1) == LUA_TNIL) {
    1.91 -#else
    1.92 -  lua_getuservalue(L, 1);
    1.93 -  if (lua_isnil(L, -1)) {
    1.94 -#endif
    1.95 -    return luaL_error(L, "Attempt to use a destroyed TLS configuration");
    1.96 -  }
    1.97 -  lua_pushvalue(L, 2);
    1.98 -  lua_gettable(L, -2);
    1.99 -  return 1;
   1.100 -}
   1.101 -
   1.102 -static int moonbr_io_tlsconfgc(lua_State *L) {
   1.103 -  struct tls_config *tlsconf;
   1.104 -  tlsconf = luaL_checkudata(L, 1, MOONBR_IO_TLSCONF_MT_REGKEY);
   1.105 -#if LUA_VERSION_NUM >= 503
   1.106 -  if (lua_getuservalue(L, 1) == LUA_TNIL) return 0;
   1.107 -#else
   1.108 -  lua_getuservalue(L, 1);
   1.109 -  if (lua_isnil(L, -1)) return 0;
   1.110 -#endif
   1.111 -  tls_config_free(tlsconf);
   1.112 -  lua_pushnil(L);
   1.113 -  lua_setuservalue(L, 1);
   1.114 -  return 0;
   1.115 -}
   1.116 -
   1.117 -#endif
   1.118 -
   1.119  static const struct luaL_Reg moonbr_io_handle_methods[] = {
   1.120    {"read", moonbr_io_read},
   1.121    {"read_nb", moonbr_io_read_nb},
   1.122 @@ -1793,20 +1695,9 @@
   1.123    {"exec", moonbr_io_exec},
   1.124    {"poll", moonbr_io_poll},
   1.125    {"timeref", moonbr_io_timeref},
   1.126 -#ifdef MOONBR_IO_USE_TLS
   1.127 -  {"tlsconf", moonbr_io_tlsconf},
   1.128 -#endif
   1.129    {NULL, NULL}
   1.130  };
   1.131  
   1.132 -#ifdef MOONBR_IO_USE_TLS
   1.133 -static const struct luaL_Reg moonbr_io_tlsconf_metamethods[] = {
   1.134 -  {"__index", moonbr_io_tlsconfindex},
   1.135 -  {"__gc", moonbr_io_tlsconfgc},
   1.136 -  {NULL, NULL}
   1.137 -};
   1.138 -#endif
   1.139 -
   1.140  int luaopen_moonbridge_io(lua_State *L) {
   1.141  
   1.142    signal(SIGPIPE, SIG_IGN);  /* generate I/O errors instead of signal 13 */
   1.143 @@ -1849,17 +1740,6 @@
   1.144    lua_setfield(L, -3, "child_mt");
   1.145    lua_setfield(L, LUA_REGISTRYINDEX, MOONBR_IO_CHILD_MT_REGKEY);
   1.146  
   1.147 -#ifdef MOONBR_IO_USE_TLS
   1.148 -  if(tls_init()) {
   1.149 -    return luaL_error(L, "Could not initialize TLS library");
   1.150 -  }
   1.151 -  lua_newtable(L);  // tlsconf metatable
   1.152 -  luaL_setfuncs(L, moonbr_io_tlsconf_metamethods, 0);
   1.153 -  lua_pushvalue(L, -1);
   1.154 -  lua_setfield(L, -3, "tlsconf_mt");
   1.155 -  lua_setfield(L, LUA_REGISTRYINDEX, MOONBR_IO_TLSCONF_MT_REGKEY);
   1.156 -#endif
   1.157 -
   1.158    moonbr_io_pushhandle(L, 0);
   1.159    lua_setfield(L, -2, "stdin");
   1.160    moonbr_io_pushhandle(L, 1);

Impressum / About Us