]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Make lua_ffi more flexible to use
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 4 Aug 2020 12:11:27 +0000 (13:11 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 4 Aug 2020 12:11:27 +0000 (13:11 +0100)
lualib/lua_ffi/init.lua
lualib/rspamadm/mime.lua

index e5ca24a111e261b736a0e78c6cec1cfb34360aab..02b54f9329c3df268fc54a75bc90a7ebe9625a85 100644 (file)
@@ -34,8 +34,7 @@ else
   local ret,result_or_err = pcall(require, 'ffi')
 
   if not ret then
-    io.stderr:write('FFI support is required: please use LuaJIT or install lua-ffi')
-    os.exit(1)
+    return {}
   end
 
   ffi = result_or_err
@@ -51,4 +50,9 @@ exports.common = require "lua_ffi/common"
 exports.dkim = require "lua_ffi/dkim"
 exports.spf = require "lua_ffi/spf"
 
+for k,v in pairs(ffi) do
+  -- Preserve all stuff to use lua_ffi as ffi itself
+  exports[k] = v
+end
+
 return exports
\ No newline at end of file
index 06b163d9b6bc35ae494faee678270f56dc4abc7f..c8b1f8450fe5265a811cebdb2f31045e5db51378 100644 (file)
@@ -754,6 +754,11 @@ local function sign_handler(opts)
 
   local lua_dkim = require("lua_ffi").dkim
 
+  if not lua_dkim then
+    io.stderr:write('FFI support is required: please use LuaJIT or install lua-ffi')
+    os.exit(1)
+  end
+
   local sign_key
   if rspamd_util.file_exists(opts.key) then
     sign_key = lua_dkim.load_sign_key(opts.key, 'file')