Browse Source

More SSL work

libevent
Łukasz Magiera 7 years ago
parent
commit
29f1c6998c
  1. 4
      Makefile
  2. 14
      scripts/dependencies.sh
  3. 9
      src/c/internet.c
  4. 2
      src/lua/core/internet.lua

4
Makefile

@ -13,9 +13,9 @@ SOURCE = src/c
CORELUA = src/lua/core
RESOURCES = resources
LIBS=-lm -lcrypto -lssl
LIBS=-lm -lssl -lcrypto
INCLUDES=-I$(SOURCE) -Isrc/c/lib/lua -Iinclude
INCLUDES=-I$(SOURCE) -Isrc/c/lib/lua -Iinclude -Idependencies/include -Idependencies/include-$(PREFIX)
GENERATED=include/luares.h src/c/gen/luares.c include/res.h src/c/gen/res.c
LUAPARAMS = $(CORELUA) include/luares.h src/c/gen/luares.c lua_

14
scripts/dependencies.sh

@ -7,7 +7,7 @@ OUT=$TOOL
if [ $# -lt 1 ]
then
echo "Usage : $0 [arm32-musl|x86_64|x86_64-musl]"
echo "Usage : $0 [arm32-musl|x86_64|musl]"
exit
fi
@ -32,6 +32,8 @@ case "$1" in
esac
mkdir -p dependencies
mkdir -p dependencies/include
mkdir -p dependencies/include-$OUT
rm -rf dependencies/lib-$OUT
mkdir -p dependencies/lib-$OUT
@ -45,9 +47,13 @@ cd ..
rm -rf openssl-build
mkdir openssl-build
cd openssl-build
../openssl/Configure $OPENSSL_TARGET --unified no-asm -DOPENSSL_NO_HEARTBEATS --openssldir=$(cd ../lib-$OUT; pwd) no-shared
../openssl/Configure $OPENSSL_TARGET --unified no-asm -DOPENSSL_NO_HEARTBEATS --openssldir=$(cd ../lib-$OUT; pwd) no-shared no-threads no-dso
make libcrypto.a -j8 CC=$TOOL-gcc RANLIB=$TOOL-ranlib LD=$TOOL-ld MAKEDEPPROG=$TOOL-gcc PROCESSOR=ARM
make libssl.a -j8 CC=$TOOL-gcc RANLIB=$TOOL-ranlib LD=$TOOL-ld MAKEDEPPROG=$TOOL-gcc PROCESSOR=ARM
cp libcrypto.a ../lib-$OUT
cp libssl.a ../lib-$OUT
mkdir -p ../include/openssl
mkdir -p ../include-$OUT/openssl
cp -rfv ../openssl/include/openssl/* ../include/openssl
cp -rfv include/openssl/* ../include-$OUT/openssl
cp -rfv libcrypto.a ../lib-$OUT
cp -rfv libssl.a ../lib-$OUT

9
src/c/internet.c

@ -16,6 +16,8 @@
#include <fcntl.h>
#include <errno.h>
#include <signal.h>
#include <openssl/ssl.h>
#include <openssl/conf.h>
static int l_open(lua_State *L) { //TODO: Any mem leaks?
const char* hostaddr = lua_tostring(L, 1);
@ -109,7 +111,14 @@ static int l_read(lua_State *L) {
return 1;
}
static void ssl_init() {
(void)SSL_library_init();
SSL_load_error_strings();
OPENSSL_config(NULL);
}
void internet_start(lua_State *L) {
ssl_init();
signal(SIGPIPE, SIG_IGN);
lua_createtable (L, 0, 1);

2
src/lua/core/internet.lua

@ -63,7 +63,7 @@ function internet.start()
function component.request(url, post)
checkArg(1, url, "string")
checkArg(2, post, "string", "nil")
local host, uri = url:match("http://([^/]+)([^#]+)")
local host, uri = url:match("https?://([^/]+)([^#]+)")
if not host then native.log("internet.request host match error: " .. url .. "\n") end
local socket = component.connect(host, 80)
if socket.finishConnect() then

Loading…
Cancel
Save