summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpengxuanzheng <[email protected]>2020-08-28 18:44:14 +0800
committerpengxuanzheng <[email protected]>2020-08-28 18:44:14 +0800
commit4121cc7cb0fb7d2d3230e0eaa42637cab96e5c8f (patch)
treef00602da9026d72c24688c6403a5128bc0c99d49
parent03b064f1f31853c79c4cde8213ed27a572ef3674 (diff)
修改输入参数tsg为TSG
-rw-r--r--example/luatest/CMakeLists.txt9
-rw-r--r--example/luatest/build/CMakeFiles/luatest.dir/luatest.cpp.obin0 -> 53912 bytes
-rwxr-xr-xexample/luatest/build/luatestbin0 -> 45336 bytes
-rw-r--r--example/luatest/conf/fasta.conf2
-rwxr-xr-xexample/luatest/luatestbin56720 -> 45336 bytes
-rw-r--r--example/luatest/luatest.cpp56
-rw-r--r--example/luatest/script/10_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/11_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/12_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/13_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/14_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/15_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/16_1_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/16_2_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/16_3_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/1_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/2_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/3_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/4_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/5_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/6_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/7_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/8_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/9_handle_fasta_find.lua2
-rw-r--r--example/luatest/script/cfunc_handle_weixinnum.lua6
-rw-r--r--example/luatest/script/ffi_handle_weixinnum.lua6
-rw-r--r--example/luatest/script/handle_fasta_count.lua2
-rw-r--r--example/luatest/script/handle_fasta_find.lua2
-rw-r--r--example/luatest/script/handle_weixinnum.lua6
-rw-r--r--example/multithread.cpp4
-rw-r--r--example/script/count_1.lua2
-rw-r--r--example/script/find_1.lua2
-rw-r--r--example/script/find_1.luajitbin267 -> 267 bytes
-rw-r--r--example/script/find_hello.lua2
-rw-r--r--example/script/find_hello.luajitbin324 -> 324 bytes
-rw-r--r--example/script/match_12345.lua2
-rw-r--r--example/script/print_hello.lua2
-rw-r--r--example/script/print_hello.luajitbin124 -> 124 bytes
-rw-r--r--example/script/protocol_recognition.lua2
-rw-r--r--gtest/CMakeLists.txt1
-rw-r--r--gtest/script/do_expected.lua2
-rw-r--r--gtest/script/end_expected.lua2
-rw-r--r--gtest/script/eof_expected.lua2
-rw-r--r--gtest/script/equal_in_expected.lua2
-rw-r--r--gtest/script/name_expected.lua2
-rw-r--r--gtest/script/return_boolean_normal.lua2
-rw-r--r--gtest/script/return_boolean_normal.luajitbin109 -> 109 bytes
-rw-r--r--gtest/script/return_integer_normal.lua2
-rw-r--r--gtest/script/return_integer_normal.luajitbin109 -> 109 bytes
-rw-r--r--gtest/script/return_string_normal.lua2
-rw-r--r--gtest/script/return_string_normal.luajitbin66 -> 66 bytes
-rw-r--r--gtest/script/right_curly_bracket_expected.lua2
-rw-r--r--gtest/script/right_curves_bracket_expected.lua2
-rw-r--r--gtest/script/then_expected.lua2
-rw-r--r--gtest/script/unexpected_symbol.lua2
-rw-r--r--include/tsg_lua_interface.h3
-rw-r--r--lib/libtsglua.abin43946 -> 42968 bytes
-rwxr-xr-xlib/libtsglua.sobin615024 -> 611296 bytes
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/tsg_lua_func.cpp81
60 files changed, 122 insertions, 130 deletions
diff --git a/example/luatest/CMakeLists.txt b/example/luatest/CMakeLists.txt
index feb0934..ddc9ae7 100644
--- a/example/luatest/CMakeLists.txt
+++ b/example/luatest/CMakeLists.txt
@@ -1,18 +1,13 @@
cmake_minimum_required(VERSION 3.5)
project (luatest)
-include_directories("/usr/local/include/gperftools")
+include_directories("/usr/include/gperftools")
include_directories("../../include")
-link_directories("/root/workspace/tsg_lua_0.99/lib")
+link_directories("../../lib")
link_libraries(tsglua pthread dl tcmalloc)
add_definitions(-g -W -Wall -O0 -rdynamic)
-#add_executable(../single_thread single_thread.cpp)
-#add_executable(../multithread multithread.cpp)
-#target_link_libraries(single_thread tsglua)
-#target_link_libraries(multithread tsglua)
-
add_executable(luatest luatest.cpp)
target_link_libraries(luatest pcap tsglua pthread dl)
diff --git a/example/luatest/build/CMakeFiles/luatest.dir/luatest.cpp.o b/example/luatest/build/CMakeFiles/luatest.dir/luatest.cpp.o
new file mode 100644
index 0000000..dca5f60
--- /dev/null
+++ b/example/luatest/build/CMakeFiles/luatest.dir/luatest.cpp.o
Binary files differ
diff --git a/example/luatest/build/luatest b/example/luatest/build/luatest
new file mode 100755
index 0000000..269d72f
--- /dev/null
+++ b/example/luatest/build/luatest
Binary files differ
diff --git a/example/luatest/conf/fasta.conf b/example/luatest/conf/fasta.conf
index a265d48..ed618c9 100644
--- a/example/luatest/conf/fasta.conf
+++ b/example/luatest/conf/fasta.conf
@@ -1,7 +1,7 @@
#fasta find G
thread_num 1
feature q
-input ./pcap/test.fasta
+input ./fasta/test.fasta
lib ./lib/libhandle_fasta_find.so
script ./script/handle_fasta_find.lua
file_type 1
diff --git a/example/luatest/luatest b/example/luatest/luatest
index 3d7496f..269d72f 100755
--- a/example/luatest/luatest
+++ b/example/luatest/luatest
Binary files differ
diff --git a/example/luatest/luatest.cpp b/example/luatest/luatest.cpp
index 5b3dd99..7c614a5 100644
--- a/example/luatest/luatest.cpp
+++ b/example/luatest/luatest.cpp
@@ -156,11 +156,12 @@ int read_file_list(const char *path, char file_name[][256])
static int init_conf(char *path, conf_t *conf)
{
char buf[1024];
+ int ret = 0;
size_t buf_len = sizeof(buf);
FILE *fp = fopen(path, "r");
if (fp == NULL)
{
- perror("error opening file");
+ perror(path);
return -1;
}
while(fgets(buf, buf_len, fp) != NULL)
@@ -197,35 +198,25 @@ static int init_conf(char *path, conf_t *conf)
conf->complete |= THREAD_NUM_COMPLETE;
break;
case 'f':
- if (conf->complete & FEATURE_COMPLETE)
+ if (!(conf->complete & FILE_TYPE_COMPLETE))
{
- if (conf->complete & FILE_TYPE_COMPLETE)
+ ret = sscanf(buf, "file_type %hhd", &conf->file_type);
+ if ((ret !=0) && (ret != EOF))
{
+ conf->complete |= FILE_TYPE_COMPLETE;
break;
- }else
- {
- /* file type */
- if ((sscanf(buf, "file_type %hhd", &conf->file_type) == EOF) )
- {
- printf("error: conf_file: feature error\n");
- return -1;
- }else
- {
- if ((conf->file_type != text_type) && (conf->file_type != pcap_type))
- {
- return -1;
- }
- conf->complete |= FILE_TYPE_COMPLETE;
- break;
- }
}
}
- if ((sscanf(buf, "feature %s", conf->feature) == EOF) || (strlen(conf->feature) == 0))
+
+ if (!(conf->complete & FEATURE_COMPLETE))
{
- printf("error: conf_file: feature error\n");
- return -1;
+ ret = sscanf(buf, "feature %s", conf->feature);
+ if ((ret !=0 ) && (ret != EOF) && (strlen(conf->feature) != 0))
+ {
+ conf->complete |= FEATURE_COMPLETE;
+ break;
+ }
}
- conf->complete |= FEATURE_COMPLETE;
break;
case 'i':
if (conf->complete & INPUT_COMPLETE)
@@ -290,7 +281,7 @@ int file_to_buffer(const char *file, char *buffer, size_t *len)
*len = 0;
if (fp == NULL)
{
- printf("fopen file failed\n");
+ printf("fopen file failed:%s\n", file);
return -1;
}
do{
@@ -349,8 +340,8 @@ void c_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_ch
debuginfo_len = strlen(pcap_info->debuginfo);
if (debuginfo_len < 9500)
{
- sprintf((char *)&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-20s%-20s%-20ld%-20ld\n",
- "C", pcap_info->thread_id, pcap_info->packet_num, pcap_info->feature, result, time, pcap_info->total_time);
+ sprintf((char *)&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-11d%-20s%-20s%-20ld%-20ld\n",
+ "C", pcap_info->thread_id, pcap_info->packet_num, pkthdr->caplen, pcap_info->feature, result, time, pcap_info->total_time);
}
return;
}
@@ -603,8 +594,8 @@ void lua_pcap_handle(u_char *userarg, const struct pcap_pkthdr *pkthdr, const u_
debuginfo_len = strlen(pcap_info->debuginfo);
if (debuginfo_len < 9500)
{
- sprintf(&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-20s%-20s%-20ld%-20ld\n",
- "LUA", pcap_info->thread_id, pcap_info->packet_num, pcap_info->feature, result, time, pcap_info->total_time);
+ sprintf(&pcap_info->debuginfo[debuginfo_len], "%-10s%-10ld%-11d%-11d%-20s%-20s%-20ld%-20ld\n",
+ "LUA", pcap_info->thread_id, pcap_info->packet_num, pkthdr->caplen, pcap_info->feature, result, time, pcap_info->total_time);
}
return ;
}
@@ -752,7 +743,6 @@ static void *lua_file_handle(void *ptr)
{
pthread_exit(debuginfo);
}
- tsg_lua_identify(lua, &thread_info->thread_id);
if (file_to_buffer(thread_info->script, script, &script_len))
{
pthread_exit(debuginfo);
@@ -904,7 +894,7 @@ int main(int argc, char *argv[])
printf("\n==============================================================================================================================\n");
if (conf.file_type & pcap_type)
{
- printf("%-10s%-10s%-11s%-20s%-20s%-20s%-20s\n", "C or LUA", "thread_id", "packet_num", "feature", "result", "time", "total_time");
+ printf("%-10s%-10s%-11s%-11s%-20s%-20s%-20s%-20s\n", "C or LUA", "thread_id", "packet_num", "packet_len", "feature", "result", "time", "total_time");
}else
{
printf("%-10s%-10s%-20s%-20s%-20s%-20s\n", "C or LUA", "thread_id", "file_name", "feature", "result", "time");
@@ -927,12 +917,13 @@ int main(int argc, char *argv[])
}
CPU_ZERO(&mask);
- CPU_SET(thread_num, &mask);
+ CPU_SET(thread_num + 8, &mask);
if (pthread_setaffinity_np(thread[thread_num], sizeof(mask), &mask) != 0)
{
printf("warning:could not set CPU affinity, continuing...\n");
}
}
+ printf("\n");
for (thread_num = 0; thread_num < conf.thread_num; thread_num++)
{
@@ -962,12 +953,13 @@ int main(int argc, char *argv[])
}
CPU_ZERO(&mask);
- CPU_SET(thread_num, &mask);
+ CPU_SET(thread_num + 8, &mask);
if (pthread_setaffinity_np(thread[thread_num], sizeof(mask), &mask) != 0)
{
printf("warning:could not set CPU affinity, continuing...\n");
}
}
+ printf("\n");
for (thread_num = 0; thread_num < conf.thread_num; thread_num++)
{
diff --git a/example/luatest/script/10_handle_fasta_find.lua b/example/luatest/script/10_handle_fasta_find.lua
index b8516dd..cab668a 100644
--- a/example/luatest/script/10_handle_fasta_find.lua
+++ b/example/luatest/script/10_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "q"
diff --git a/example/luatest/script/11_handle_fasta_find.lua b/example/luatest/script/11_handle_fasta_find.lua
index 8917d9a..eebc275 100644
--- a/example/luatest/script/11_handle_fasta_find.lua
+++ b/example/luatest/script/11_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qGCTGA"
diff --git a/example/luatest/script/12_handle_fasta_find.lua b/example/luatest/script/12_handle_fasta_find.lua
index 8917d9a..eebc275 100644
--- a/example/luatest/script/12_handle_fasta_find.lua
+++ b/example/luatest/script/12_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qGCTGA"
diff --git a/example/luatest/script/13_handle_fasta_find.lua b/example/luatest/script/13_handle_fasta_find.lua
index 8917d9a..eebc275 100644
--- a/example/luatest/script/13_handle_fasta_find.lua
+++ b/example/luatest/script/13_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qGCTGA"
diff --git a/example/luatest/script/14_handle_fasta_find.lua b/example/luatest/script/14_handle_fasta_find.lua
index 8917d9a..eebc275 100644
--- a/example/luatest/script/14_handle_fasta_find.lua
+++ b/example/luatest/script/14_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qGCTGA"
diff --git a/example/luatest/script/15_handle_fasta_find.lua b/example/luatest/script/15_handle_fasta_find.lua
index ef79cf5..ad119d5 100644
--- a/example/luatest/script/15_handle_fasta_find.lua
+++ b/example/luatest/script/15_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qCTCGG"
diff --git a/example/luatest/script/16_1_handle_fasta_find.lua b/example/luatest/script/16_1_handle_fasta_find.lua
index 8917d9a..eebc275 100644
--- a/example/luatest/script/16_1_handle_fasta_find.lua
+++ b/example/luatest/script/16_1_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qGCTGA"
diff --git a/example/luatest/script/16_2_handle_fasta_find.lua b/example/luatest/script/16_2_handle_fasta_find.lua
index 07865db..49b94c9 100644
--- a/example/luatest/script/16_2_handle_fasta_find.lua
+++ b/example/luatest/script/16_2_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "rAATCC"
diff --git a/example/luatest/script/16_3_handle_fasta_find.lua b/example/luatest/script/16_3_handle_fasta_find.lua
index 4149a34..8c4e3d3 100644
--- a/example/luatest/script/16_3_handle_fasta_find.lua
+++ b/example/luatest/script/16_3_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "sCGGGC"
diff --git a/example/luatest/script/1_handle_fasta_find.lua b/example/luatest/script/1_handle_fasta_find.lua
index b8516dd..cab668a 100644
--- a/example/luatest/script/1_handle_fasta_find.lua
+++ b/example/luatest/script/1_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "q"
diff --git a/example/luatest/script/2_handle_fasta_find.lua b/example/luatest/script/2_handle_fasta_find.lua
index 14ba4c3..2215352 100644
--- a/example/luatest/script/2_handle_fasta_find.lua
+++ b/example/luatest/script/2_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqqqqq"
diff --git a/example/luatest/script/3_handle_fasta_find.lua b/example/luatest/script/3_handle_fasta_find.lua
index b28e6d9..2f02fd5 100644
--- a/example/luatest/script/3_handle_fasta_find.lua
+++ b/example/luatest/script/3_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqqqqqqqqq"
diff --git a/example/luatest/script/4_handle_fasta_find.lua b/example/luatest/script/4_handle_fasta_find.lua
index 44bbb74..8e24805 100644
--- a/example/luatest/script/4_handle_fasta_find.lua
+++ b/example/luatest/script/4_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqq"
diff --git a/example/luatest/script/5_handle_fasta_find.lua b/example/luatest/script/5_handle_fasta_find.lua
index 14ba4c3..2215352 100644
--- a/example/luatest/script/5_handle_fasta_find.lua
+++ b/example/luatest/script/5_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqqqqq"
diff --git a/example/luatest/script/6_handle_fasta_find.lua b/example/luatest/script/6_handle_fasta_find.lua
index b28e6d9..2f02fd5 100644
--- a/example/luatest/script/6_handle_fasta_find.lua
+++ b/example/luatest/script/6_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqqqqqqqqq"
diff --git a/example/luatest/script/7_handle_fasta_find.lua b/example/luatest/script/7_handle_fasta_find.lua
index 44bbb74..8e24805 100644
--- a/example/luatest/script/7_handle_fasta_find.lua
+++ b/example/luatest/script/7_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqq"
diff --git a/example/luatest/script/8_handle_fasta_find.lua b/example/luatest/script/8_handle_fasta_find.lua
index 44bbb74..8e24805 100644
--- a/example/luatest/script/8_handle_fasta_find.lua
+++ b/example/luatest/script/8_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqq"
diff --git a/example/luatest/script/9_handle_fasta_find.lua b/example/luatest/script/9_handle_fasta_find.lua
index 44bbb74..8e24805 100644
--- a/example/luatest/script/9_handle_fasta_find.lua
+++ b/example/luatest/script/9_handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "qqq"
diff --git a/example/luatest/script/cfunc_handle_weixinnum.lua b/example/luatest/script/cfunc_handle_weixinnum.lua
index 3667c7d..644ea31 100644
--- a/example/luatest/script/cfunc_handle_weixinnum.lua
+++ b/example/luatest/script/cfunc_handle_weixinnum.lua
@@ -1,6 +1,6 @@
-local data = tsg.data
-local data_len = string.len(tsg.data)
+local data = TSG.data
+local data_len = string.len(data)
local feature = "weixinnum"
local feature_len = string.len(feature);
local max_weixinnum_len = 12
@@ -8,7 +8,7 @@ local offset = 4
local locate = 0
-- 查找字符串weixinnum位置
-local _start, _end = tsg.memmem(data, data_len, feature, feature_len)
+local _start, _end = TSG.memmem(data, data_len, feature, feature_len)
if not _end then
return 1, false
end
diff --git a/example/luatest/script/ffi_handle_weixinnum.lua b/example/luatest/script/ffi_handle_weixinnum.lua
index a730f42..b6630e4 100644
--- a/example/luatest/script/ffi_handle_weixinnum.lua
+++ b/example/luatest/script/ffi_handle_weixinnum.lua
@@ -1,10 +1,10 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "weixinnum"
local feature_len = string.len(feature)
local max_weixinnum_len = 12
-local C = tsg.C
-local ffi = tsg.ffi
+local C = TSG.C
+local ffi = TSG.ffi
-- 查找weixinnum字符串位置
local weixinnum_name = C.memmem(data, data_len, feature, feature_len)
diff --git a/example/luatest/script/handle_fasta_count.lua b/example/luatest/script/handle_fasta_count.lua
index 219b681..4c11753 100644
--- a/example/luatest/script/handle_fasta_count.lua
+++ b/example/luatest/script/handle_fasta_count.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "hAATCGCTT"
diff --git a/example/luatest/script/handle_fasta_find.lua b/example/luatest/script/handle_fasta_find.lua
index b8516dd..cab668a 100644
--- a/example/luatest/script/handle_fasta_find.lua
+++ b/example/luatest/script/handle_fasta_find.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local feature = "q"
diff --git a/example/luatest/script/handle_weixinnum.lua b/example/luatest/script/handle_weixinnum.lua
index 971845e..1b8b448 100644
--- a/example/luatest/script/handle_weixinnum.lua
+++ b/example/luatest/script/handle_weixinnum.lua
@@ -1,13 +1,15 @@
---------------------------------------------------------------------------------------------
-- 脚本功能:在数据中查找符合特征的weixinnum --
+-- 输入: --
+-- TSG.data --
-- 特征如下: --
-- 00 00 00 09 | 77 65 69 78 69 6e 6d 75 2d | 00 00 00 0a | 31 39 35 35 37 34 30 37 38 30 --
-- weixinnum | w e i x i n n u m | weixinnum | 1 9 5 5 7 4 0 7 8 0 --
-- 字符串长度 | 字符串 | 数值长度 | 字符串 --
---------------------------------------------------------------------------------------------
-local data = tsg.data --tsg.data 获取待处理数据
-local data_len = string.len(tsg.data)
+local data = TSG.data --TSG.data 获取待处理数据
+local data_len = string.len(data)
local feature = "weixinnum" --待识别的特征
local max_weixinnum_len = 12
local offset = 4 -- 字符串长度所占位数
diff --git a/example/multithread.cpp b/example/multithread.cpp
index 26b45ec..48dd227 100644
--- a/example/multithread.cpp
+++ b/example/multithread.cpp
@@ -34,6 +34,7 @@ typedef struct lua_data_s{
typedef struct{
lua_data_t data;
int thread_id;
+ tsg_lua_handle lua;
}userdata_t;
@@ -178,6 +179,7 @@ int main(int argc, char *argv[])
{
int thread_num;
pthread_t thread[MAX_THREAD_NUM] = {0};
+ tsg_lua_handle lua[MAX_THREAD_NUM] = {0};
int thread_sum;
int ch, i;
char buf[1024];
@@ -252,6 +254,8 @@ int main(int argc, char *argv[])
data->data_len = buf_len;
data->data[buf_len] = thread_num;
data->data_len++;
+ lua[i] = tsg_lua_vm_create();
+ data->lua = lua[i];
pthread_create(&thread[thread_num], NULL, lua_function, (void *)&userdata[thread_num]);
}
diff --git a/example/script/count_1.lua b/example/script/count_1.lua
index 21e5091..02f7600 100644
--- a/example/script/count_1.lua
+++ b/example/script/count_1.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
local len = string.len(str)
local thread_id = string.byte(str, len)
local str = string.format("[lua][thread_id:%d][count_1.lua]:str:%s, len:%d", thread_id, str, len - 1)
diff --git a/example/script/find_1.lua b/example/script/find_1.lua
index 2c6e865..b388b74 100644
--- a/example/script/find_1.lua
+++ b/example/script/find_1.lua
@@ -1,4 +1,4 @@
-local data = tsg.data
+local data = TSG.data
local data_len = string.len(data)
local str = string.format("[lua]:data:%s len:%d", data, data_len)
print(str)
diff --git a/example/script/find_1.luajit b/example/script/find_1.luajit
index b558ed1..bae2e0c 100644
--- a/example/script/find_1.luajit
+++ b/example/script/find_1.luajit
Binary files differ
diff --git a/example/script/find_hello.lua b/example/script/find_hello.lua
index 89037c0..c4fb80b 100644
--- a/example/script/find_hello.lua
+++ b/example/script/find_hello.lua
@@ -1,4 +1,4 @@
-local ss = tsg.data
+local ss = TSG.data
print("[lua]:the parameter of lua function is '"..ss.."'")
print("[lua]:start find 'hello'...")
local index_s, index_e = string.find(ss, 'hello')
diff --git a/example/script/find_hello.luajit b/example/script/find_hello.luajit
index ba644ec..173a173 100644
--- a/example/script/find_hello.luajit
+++ b/example/script/find_hello.luajit
Binary files differ
diff --git a/example/script/match_12345.lua b/example/script/match_12345.lua
index c795bd3..8d0ee5d 100644
--- a/example/script/match_12345.lua
+++ b/example/script/match_12345.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
local len = string.len(str)
local thread_id = string.byte(str, len)
local str = string.format("[lua][thread_id:%d][match_12345.lua]:str:%s, len:%d", thread_id, str, len - 1)
diff --git a/example/script/print_hello.lua b/example/script/print_hello.lua
index ee823e7..5378758 100644
--- a/example/script/print_hello.lua
+++ b/example/script/print_hello.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
print("-----------")
print("str")
print("-----------")
diff --git a/example/script/print_hello.luajit b/example/script/print_hello.luajit
index c9eb05b..c0e01ff 100644
--- a/example/script/print_hello.luajit
+++ b/example/script/print_hello.luajit
Binary files differ
diff --git a/example/script/protocol_recognition.lua b/example/script/protocol_recognition.lua
index 0987232..2089d98 100644
--- a/example/script/protocol_recognition.lua
+++ b/example/script/protocol_recognition.lua
@@ -1,4 +1,4 @@
-local str = tsg.data;
+local str = TSG.data;
local len = string.len(str)
local thread_id = string.byte(str, -1)
local info = string.format("[lua][thread_id:%d][protocol_recognition.lua]:str:%s, str_len:%d", thread_id, str, len - 1)
diff --git a/gtest/CMakeLists.txt b/gtest/CMakeLists.txt
index 111f465..a230729 100644
--- a/gtest/CMakeLists.txt
+++ b/gtest/CMakeLists.txt
@@ -7,7 +7,6 @@ link_directories("/root/workspace/tsg_lua_0.99/lib")
link_libraries(tsglua gtest gtest_main pthread)
add_definitions(-g -W -Wall)
-#add_executable(gtest_tsg_lua gtest_tsg_lua_vm_create.cpp gtest_tsg_lua_exec.cpp gtest_tsg_lua_cache_script.cpp gtest_tsg_cache_exec.cpp gtest_tsg_lua_uncache_script.cpp gtest_tsg_destory_lua.cpp)
add_executable(../gtest_tsg_lua ${SRCS})
target_link_libraries(../gtest_tsg_lua tsglua gtest gtest_main pthread)
diff --git a/gtest/script/do_expected.lua b/gtest/script/do_expected.lua
index b6d9afb..e730a74 100644
--- a/gtest/script/do_expected.lua
+++ b/gtest/script/do_expected.lua
@@ -1,3 +1,3 @@
-local str = tsg.data
+local str = TSG.data
for i = 0, 10
return string.len(str), str
diff --git a/gtest/script/end_expected.lua b/gtest/script/end_expected.lua
index fb1dfcb..a886c55 100644
--- a/gtest/script/end_expected.lua
+++ b/gtest/script/end_expected.lua
@@ -1,3 +1,3 @@
-local str = tsg.data
+local str = TSG.data
if str then
return string.len(str), str
diff --git a/gtest/script/eof_expected.lua b/gtest/script/eof_expected.lua
index 580dcab..4f94caf 100644
--- a/gtest/script/eof_expected.lua
+++ b/gtest/script/eof_expected.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
str = string.format('%s', str)
return string.len(str), str
end
diff --git a/gtest/script/equal_in_expected.lua b/gtest/script/equal_in_expected.lua
index 846dd7c..e1294bd 100644
--- a/gtest/script/equal_in_expected.lua
+++ b/gtest/script/equal_in_expected.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
for i
return string.len(str), str
end
diff --git a/gtest/script/name_expected.lua b/gtest/script/name_expected.lua
index 0d0bd7a..99a131f 100644
--- a/gtest/script/name_expected.lua
+++ b/gtest/script/name_expected.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
for do
print(str)
end
diff --git a/gtest/script/return_boolean_normal.lua b/gtest/script/return_boolean_normal.lua
index 5ec3497..fbf1fbf 100644
--- a/gtest/script/return_boolean_normal.lua
+++ b/gtest/script/return_boolean_normal.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
local s_index, e_index = string.find(str, 'hello')
if s_index then
return 1, true
diff --git a/gtest/script/return_boolean_normal.luajit b/gtest/script/return_boolean_normal.luajit
index d76eab6..9bbbfbb 100644
--- a/gtest/script/return_boolean_normal.luajit
+++ b/gtest/script/return_boolean_normal.luajit
Binary files differ
diff --git a/gtest/script/return_integer_normal.lua b/gtest/script/return_integer_normal.lua
index d3c08a7..ccb38fe 100644
--- a/gtest/script/return_integer_normal.lua
+++ b/gtest/script/return_integer_normal.lua
@@ -1,4 +1,4 @@
-local str = tsg.data
+local str = TSG.data
local s_index, e_index = string.find(str, 'world')
if s_index then
return 8, s_index
diff --git a/gtest/script/return_integer_normal.luajit b/gtest/script/return_integer_normal.luajit
index 6c72798..3abd850 100644
--- a/gtest/script/return_integer_normal.luajit
+++ b/gtest/script/return_integer_normal.luajit
Binary files differ
diff --git a/gtest/script/return_string_normal.lua b/gtest/script/return_string_normal.lua
index 0f1c592..e7e6d7b 100644
--- a/gtest/script/return_string_normal.lua
+++ b/gtest/script/return_string_normal.lua
@@ -1,2 +1,2 @@
-local str = tsg.data
+local str = TSG.data
return string.len(str), str
diff --git a/gtest/script/return_string_normal.luajit b/gtest/script/return_string_normal.luajit
index 27764b3..e32af68 100644
--- a/gtest/script/return_string_normal.luajit
+++ b/gtest/script/return_string_normal.luajit
Binary files differ
diff --git a/gtest/script/right_curly_bracket_expected.lua b/gtest/script/right_curly_bracket_expected.lua
index 194864b..f9b4d4a 100644
--- a/gtest/script/right_curly_bracket_expected.lua
+++ b/gtest/script/right_curly_bracket_expected.lua
@@ -1,4 +1,4 @@
-local str = string.format ('%s', tsg.data)
+local str = string.format ('%s', TSG.data)
local table = {}
setmetatable(table, {__index = _G)
return string.len(str), str
diff --git a/gtest/script/right_curves_bracket_expected.lua b/gtest/script/right_curves_bracket_expected.lua
index b901a50..a79a231 100644
--- a/gtest/script/right_curves_bracket_expected.lua
+++ b/gtest/script/right_curves_bracket_expected.lua
@@ -1,2 +1,2 @@
-local str = string.format('%s', tsg.data
+local str = string.format('%s', TSG.data
return string.len(str), str
diff --git a/gtest/script/then_expected.lua b/gtest/script/then_expected.lua
index 8a94370..890e4ad 100644
--- a/gtest/script/then_expected.lua
+++ b/gtest/script/then_expected.lua
@@ -1,4 +1,4 @@
if not nil
- str = tsg.data
+ str = TSG.data
return string.len(str), str
end
diff --git a/gtest/script/unexpected_symbol.lua b/gtest/script/unexpected_symbol.lua
index a51eb44..02c4edf 100644
--- a/gtest/script/unexpected_symbol.lua
+++ b/gtest/script/unexpected_symbol.lua
@@ -1,3 +1,3 @@
-=*
-local str = string.format('%s', tsg.data)
+local str = string.format('%s', TSG.data)
return string.len(str), str
diff --git a/include/tsg_lua_interface.h b/include/tsg_lua_interface.h
index ae417e0..6af78a5 100644
--- a/include/tsg_lua_interface.h
+++ b/include/tsg_lua_interface.h
@@ -51,7 +51,8 @@ enum err_value
ERR_SCRIPT_ID_INVAILD = -33, /* 脚本ID无效 */
ERR_LUA_CACHE_FAILED = -34, /* 脚本缓存失败 */
ERR_MEM_NOT_ENOUGH = -35, /* 空间不足 */
- ERR_UNKNOWN = -36, /* 未知错误 */
+ ERR_LUA_ID = -36, /* lua id 错误*/
+ ERR_UNKNOWN = -37, /* 未知错误 */
};
typedef void* tsg_lua_handle;
diff --git a/lib/libtsglua.a b/lib/libtsglua.a
index d799972..6d526d1 100644
--- a/lib/libtsglua.a
+++ b/lib/libtsglua.a
Binary files differ
diff --git a/lib/libtsglua.so b/lib/libtsglua.so
index e0025c0..3b18f90 100755
--- a/lib/libtsglua.so
+++ b/lib/libtsglua.so
Binary files differ
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e98e04d..1454f62 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.5)
SET(CMAKE_CXX_COMPILER /usr/bin/g++)
aux_source_directory(. DIR_LIB_SRCS)
-include_directories("/usr/local/include/luajit-2.1/")
+include_directories("/usr/local/include/luajit-2.1/" "/usr/include/gperftools/")
link_directories("/usr/local/lib")
link_libraries("libluajit-5.1.a")
diff --git a/src/tsg_lua_func.cpp b/src/tsg_lua_func.cpp
index b9e0403..299cab1 100644
--- a/src/tsg_lua_func.cpp
+++ b/src/tsg_lua_func.cpp
@@ -111,7 +111,7 @@ typedef struct{
char buff[TSG_LUA_READER_BUFFSIZE];
}tsg_lua_clfactory_file_t;
-static jmp_buf lua_exception[TSG_MAX_LUA_ID];
+//static jmp_buf lua_exception[TSG_MAX_LUA_ID];
static const char *syntax_error[] =
{
@@ -415,9 +415,9 @@ static int c_lua_atpanic(lua_State *L)
char *s = NULL;
char err[255];
size_t len = 0;
- int *lua_id;
+ jmp_buf *lua_exception;
- lua_id = (int *)lua_getexdata(L);
+ lua_exception = (jmp_buf *)lua_getexdata(L);
if (lua_type(L, -1) == LUA_TSTRING)
{
s = (char *)lua_tolstring(L, -1, &len);
@@ -430,9 +430,9 @@ static int c_lua_atpanic(lua_State *L)
}
sprintf(err, "lua atpanic:lua VM creashed, reason:%*s\n", (int)len, s);
debuginfo(err, __FILE__, __LINE__);
- longjmp(lua_exception[*lua_id], 1);
+ longjmp(*lua_exception, 1);
}
-#if 0
+
int tsg_lua_memmem(lua_State *L)
{
const char *src;
@@ -469,6 +469,7 @@ int tsg_lua_memmem(lua_State *L)
return 2;
}
+#if 0
static void *mem_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
{
(void)ud;
@@ -484,23 +485,32 @@ static void *mem_alloc(void *ud, void *ptr, size_t osize, size_t nsize)
tsg_lua_handle tsg_lua_vm_create()
{
lua_State *L;
- //const char *err;
+ jmp_buf *lua_exception = (jmp_buf *)tc_malloc(sizeof(jmp_buf));
+ if (lua_exception == NULL)
+ {
+ return NULL;
+ }
L = luaL_newstate();
//L = lua_newstate(mem_alloc, NULL);
if (L == NULL)
+ {
+ tc_free(lua_exception);
return NULL;
+ }
+ lua_setexdata(L, lua_exception);
lua_atpanic(L, c_lua_atpanic);
luaL_openlibs(L);
lua_createtable(L, 0, 2);
- //lua_pushcfunction(L, tsg_lua_memmem);
- //lua_setfield(L, -2, "memmem");
- lua_setglobal(L, "tsg");
-#if 0
+ lua_pushcfunction(L, tsg_lua_memmem);
+ lua_setfield(L, -2, "memmem");
+ lua_setglobal(L, "TSG");
+#if 1
+ const char *err;
const char *code = "local ffi = require(\"ffi\")\n"\
"ffi.cdef[[char *memmem(const char *haystack, size_t haystacklen, const char *needle, size_t needlelen);]]\n"\
- "tsg.ffi = ffi\n"\
- "tsg.C = ffi.C";
+ "TSG.ffi = ffi\n"\
+ "TSG.C = ffi.C";
if (luaL_dostring(L, code))
{
err = lua_tostring(L, -1);
@@ -521,7 +531,7 @@ int tsg_lua_exec_file(tsg_lua_handle lua, const char *script, const char *in, si
int i = 0;
int sharp = 0;
tsg_lua_clfactory_file_t lf;
- int *lua_id;
+ jmp_buf *lua_exception;
if (L == NULL)
{
@@ -546,7 +556,7 @@ int tsg_lua_exec_file(tsg_lua_handle lua, const char *script, const char *in, si
return ERR_IN_LEN_INVAILD;
}
- lua_id = (int *)lua_getexdata(L);
+ lua_exception = (jmp_buf *)lua_getexdata(L);
lf.extraline = 0;
lf.sent_begin = 0;
@@ -656,12 +666,12 @@ int tsg_lua_exec_file(tsg_lua_handle lua, const char *script, const char *in, si
}
/* 输入待处理数据 */
- lua_getglobal(L, "tsg");
+ lua_getglobal(L, "TSG");
lua_pushlstring(L, in, in_len);
lua_setfield(L, -2, "data");
lua_settop(L, 1);
- if (setjmp(lua_exception[*lua_id]) == 0)
+ if (setjmp(*lua_exception) == 0)
{
if (lua_pcall(L, 0, LUA_MULTRET, 0))
{
@@ -734,7 +744,7 @@ int tsg_lua_exec(tsg_lua_handle lua, const char *script, size_t script_len, cons
int sharp = 0;
int status;
tsg_lua_clfactory_buffer_t ls;
- int *lua_id;
+ jmp_buf *lua_exception;
if (L == NULL)
{
@@ -759,7 +769,7 @@ int tsg_lua_exec(tsg_lua_handle lua, const char *script, size_t script_len, cons
return ERR_IN_LEN_INVAILD;
}
- lua_id = (int *)lua_getexdata(L);
+ lua_exception = (jmp_buf *)lua_getexdata(L);
ls.s = script;
ls.size = script_len;
@@ -854,11 +864,11 @@ int tsg_lua_exec(tsg_lua_handle lua, const char *script, size_t script_len, cons
}
/* 输入待处理数据 */
- lua_getglobal(L, "tsg");
+ lua_getglobal(L, "TSG");
lua_pushlstring(L, in, in_len);
lua_setfield(L, -2, "data");
lua_settop(L, 1);
- if (setjmp(lua_exception[*lua_id]) == 0)
+ if (setjmp(*lua_exception) == 0)
{
if (lua_pcall(L, 0, LUA_MULTRET, 0))
{
@@ -1201,7 +1211,7 @@ int tsg_lua_cache_exec(tsg_lua_handle lua, size_t script_id, const char *in, siz
char err_buf[255];
int i = 0;
int num = 0;
- int *lua_id;
+ jmp_buf *lua_exception;
if (L == NULL)
{
@@ -1225,15 +1235,15 @@ int tsg_lua_cache_exec(tsg_lua_handle lua, size_t script_id, const char *in, siz
}
lua_settop(L, 0);
- lua_id = (int *)lua_getexdata(L);
+ lua_exception = (jmp_buf *)lua_getexdata(L);
lua_rawgeti(L, LUA_REGISTRYINDEX, script_id);
- lua_getglobal(L, "tsg");
+ lua_getglobal(L, "TSG");
lua_pushlstring(L, in, in_len);
lua_setfield(L, -2, "data");
lua_settop(L, 1);
- if (setjmp(lua_exception[*lua_id]) == 0)
+ if (setjmp(*lua_exception) == 0)
{
if (lua_pcall(L, 0, LUA_MULTRET, 0))
{
@@ -1299,31 +1309,20 @@ int tsg_lua_cache_exec(tsg_lua_handle lua, size_t script_id, const char *in, siz
int tsg_destory_lua(tsg_lua_handle lua)
{
lua_State *L = (lua_State *)lua;
+ jmp_buf *lua_exception = NULL;
if (L == NULL)
{
debuginfo("lua VM is null.", __FILE__, __LINE__);
return ERR_LUAVM_ISNULL;
}
-
- lua_close(L);
- return 0;
-}
-
-int tsg_lua_identify(tsg_lua_handle lua, size_t *id)
-{
- lua_State *L = (lua_State *)lua;
- if (L == NULL)
- {
- debuginfo("lua VM is null.", __FILE__, __LINE__);
- return ERR_LUAVM_ISNULL;
- }
- if (*id > TSG_MAX_LUA_ID)
+ lua_exception = (jmp_buf *)lua_getexdata(L);
+ if (lua_exception != NULL)
{
- return ERR_LUA_ID;
+ tc_free(lua_exception);
}
- lua_setexdata(L, id);
-
+ lua_close(L);
return 0;
}
+