immunio 1.0.13 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/immunio/plugins/action_view.rb +42 -14
- data/lib/immunio/processor.rb +15 -12
- data/lib/immunio/version.rb +1 -1
- data/lua-hooks/Makefile +4 -2
- data/lua-hooks/ext/all.c +9 -0
- data/lua-hooks/ext/perf/luacpu.c +114 -0
- data/lua-hooks/ext/perf/lualoadavg.c +40 -0
- data/lua-hooks/ext/perf/luameminfo.c +38 -0
- data/lua-hooks/ext/perf/luaoslib.c +80 -0
- metadata +24 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f381a24b73b7115c320e46e538564da3d4001f2
|
4
|
+
data.tar.gz: 12b66439e36175bddd908eca2f94ec5269c6ccb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 75b54a277712434f4cfc18dd8f1a7e2bbe0c061dd7f4053f9e98048a9608107c1dc22e2c4b92334191970b68560ac83632661aae561efc332a28eb8c0c0830a1
|
7
|
+
data.tar.gz: d37adcced6010eb26a12990217d59d93f8520122b583d0489d0a7df85c795f2fea3102d02767d12285eaed411149fce6903e0c4bdb999f4d27141aae5bb211c0
|
@@ -256,7 +256,35 @@ module Immunio
|
|
256
256
|
end
|
257
257
|
end
|
258
258
|
|
259
|
+
ENCODED_IMMUNIO_TOKENS_RE = Regexp.compile(/(?:{|%7b)immunio-(var|fragment)(?::|%3a)(\d+)(?::|%3a)([0-9a-f]{1,4})(?:}|%7d)(.*?)(?:{|%7b)(?:\/|%2f)immunio-\1(?::|%3a)\2(?::|%3a)\3(?:}|%7d)/i)
|
260
|
+
def self.decode_immunio_tokens(rendered)
|
261
|
+
# Look for URI or JS encoded immunio tokens in the rendering and decode them
|
262
|
+
if rendered.respond_to? :to_str
|
263
|
+
was_html_safe = rendered.html_safe?
|
264
|
+
was_frozen = rendered.frozen?
|
265
|
+
|
266
|
+
if was_frozen
|
267
|
+
# This is not an airtight solution. Object#dup does not copy methods
|
268
|
+
# defined on the instance, and may be overridden by subclasses to do
|
269
|
+
# things that would cause problems for us. But most likely there is no
|
270
|
+
# problem with using dup. We can't use Object#clone because the clone
|
271
|
+
# retains the frozen status of the original, preventing us from
|
272
|
+
# modifying the string contents.
|
273
|
+
rendered = rendered.dup
|
274
|
+
end
|
275
|
+
|
276
|
+
rendered.gsub! ENCODED_IMMUNIO_TOKENS_RE, "{immunio-\\1:\\2:\\3}\\4{/immunio-\\1:\\2:\\3}"
|
277
|
+
|
278
|
+
rendered.instance_variable_set(:@html_safe, true) if was_html_safe
|
279
|
+
rendered.freeze if was_frozen
|
280
|
+
end
|
281
|
+
|
282
|
+
rendered
|
283
|
+
end
|
284
|
+
|
259
285
|
def self.render_var(code, rendered, template_id, template_sha, file, line, escape, is_text, handler)
|
286
|
+
rendered = decode_immunio_tokens rendered
|
287
|
+
|
260
288
|
if rendered.instance_variable_get("@__immunio_processed") then
|
261
289
|
# Ignore buffers marked as __immunio_processed in render as these are full templates or partials
|
262
290
|
return rendered
|
@@ -289,23 +317,23 @@ module Immunio
|
|
289
317
|
rendering_stack.first.mark_and_defer_fragment_write(*args)
|
290
318
|
end
|
291
319
|
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
end
|
320
|
+
# Stack of the templates currently being rendered.
|
321
|
+
def self.rendering_stack
|
322
|
+
Thread.current["immunio.rendering_stack"] ||= []
|
323
|
+
end
|
297
324
|
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
end
|
325
|
+
def self.wrap_code(code, handler, options = {})
|
326
|
+
case
|
327
|
+
when handler == 'ActionView::Template::Handlers::ERB'
|
328
|
+
modifier = options[:escape] ? '=' : '=='
|
329
|
+
"<%#{modifier} #{code} %>"
|
330
|
+
when handler == 'Haml::Plugin'
|
331
|
+
modifier = options[:escape] ? '=' : '!='
|
332
|
+
"#{modifier} #{code}"
|
307
333
|
end
|
334
|
+
end
|
308
335
|
|
336
|
+
private
|
309
337
|
def rendering_stack
|
310
338
|
self.class.rendering_stack
|
311
339
|
end
|
data/lib/immunio/processor.rb
CHANGED
@@ -110,17 +110,20 @@ module Immunio
|
|
110
110
|
Request.current = nil
|
111
111
|
end
|
112
112
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
113
|
+
# Some versions of rails, like 4.2.0, fail to make JSONifiable model
|
114
|
+
# instances because they have bugs where superfluous sub-objects of
|
115
|
+
# unserializable classes, like IO, are added. Filter non-array, non-hash,
|
116
|
+
# non-primitive values from data to be JSONified.
|
117
|
+
def make_safe_data(data)
|
118
|
+
if data.is_a?(Hash)
|
119
|
+
data.each_with_object({}) { |(key, value), obj| obj[key] = make_safe_data(value) }
|
120
|
+
elsif data.is_a?(Array)
|
121
|
+
data.map(&method(:make_safe_data))
|
122
|
+
elsif [Numeric, String, TrueClass, FalseClass].any? { |c| data.is_a? c }
|
123
|
+
data
|
124
|
+
else
|
125
|
+
data.inspect
|
122
126
|
end
|
123
|
-
safe_meta
|
124
127
|
end
|
125
128
|
|
126
129
|
# Run the `hook` and return a hash eg.: `{ "allow": true }`.
|
@@ -193,7 +196,7 @@ module Immunio
|
|
193
196
|
timestamp: timestamp,
|
194
197
|
plugin: plugin,
|
195
198
|
hook: hook,
|
196
|
-
meta:
|
199
|
+
meta: make_safe_data(meta),
|
197
200
|
vmcode_version: request.vm.code_version,
|
198
201
|
vmdata_version: request.vm.data_version
|
199
202
|
}
|
@@ -211,7 +214,7 @@ module Immunio
|
|
211
214
|
timestamp: timestamp,
|
212
215
|
plugin: plugin,
|
213
216
|
hook: hook,
|
214
|
-
meta:
|
217
|
+
meta: make_safe_data(meta),
|
215
218
|
vmcode_version: request.vm.code_version,
|
216
219
|
vmdata_version: request.vm.data_version
|
217
220
|
|
data/lib/immunio/version.rb
CHANGED
data/lua-hooks/Makefile
CHANGED
@@ -27,7 +27,9 @@ LUA_SRC = \
|
|
27
27
|
lib/lexgraph.lua \
|
28
28
|
lib/neturl.lua \
|
29
29
|
lib/paths.lua \
|
30
|
+
lib/perf.lua \
|
30
31
|
lib/permit.lua \
|
32
|
+
lib/real_ip.lua \
|
31
33
|
lib/sanitize_sql.lua \
|
32
34
|
lib/sanitize_command.lua \
|
33
35
|
lib/semver.lua \
|
@@ -103,7 +105,7 @@ endif
|
|
103
105
|
all: ${CLI} ${INIT_HOOK} ${HOOKS_TARBALL} ${HOOKS_SRCS_TARBALL}
|
104
106
|
|
105
107
|
%.o: %.c
|
106
|
-
MACOSX_DEPLOYMENT_TARGET="10.
|
108
|
+
MACOSX_DEPLOYMENT_TARGET="10.8" ${CC} ${CFLAGS} -c ${INCS} -o $@ $<
|
107
109
|
|
108
110
|
# There is a huge performance advantage compiling sha1.o with just -O
|
109
111
|
# -O2 or -O3 *reduce* the speed of the algorithm 30%
|
@@ -123,7 +125,7 @@ ${LUAJIT_OUT}: ${LUAJIT_OBJ}
|
|
123
125
|
cp $^ $@
|
124
126
|
|
125
127
|
${LUAJIT_OBJ}:
|
126
|
-
cd ext/luajit && MACOSX_DEPLOYMENT_TARGET="10.
|
128
|
+
cd ext/luajit && MACOSX_DEPLOYMENT_TARGET="10.8" make CROSS="${CROSS}" CC=cc HOST_CC=cc TARGET_SYS=${SYS} XCFLAGS="${LUAJIT_XCFLAGS}"
|
127
129
|
|
128
130
|
# Build lua executable for testing and compilation
|
129
131
|
# Seperate compilation as we need the LUA_UNSAFE_MODE flag set...
|
data/lua-hooks/ext/all.c
CHANGED
@@ -17,6 +17,11 @@
|
|
17
17
|
#include "lua-snapshot/snapshot.c"
|
18
18
|
#include "sha1/luasha1.c"
|
19
19
|
#include "sha2/luasha256.c"
|
20
|
+
#include "perf/luacpu.c"
|
21
|
+
#include "perf/lualoadavg.c"
|
22
|
+
#include "perf/luameminfo.c"
|
23
|
+
#include "perf/luaoslib.c"
|
24
|
+
|
20
25
|
|
21
26
|
static const luaL_Reg lj_lib_load[] = {
|
22
27
|
// Default Lua modules
|
@@ -46,6 +51,10 @@ static const luaL_Reg lj_lib_load[] = {
|
|
46
51
|
{"snapshot", luaopen_snapshot},
|
47
52
|
{"sha1", luaopen_sha1},
|
48
53
|
{"sha2", luaopen_sha256},
|
54
|
+
{"perf", luaopen_cpuload},
|
55
|
+
{"perf", luaopen_loadavg},
|
56
|
+
{"perf", luaopen_meminfo},
|
57
|
+
{"perf", luaopen_luaos},
|
49
58
|
|
50
59
|
{ NULL, NULL }
|
51
60
|
};
|
@@ -0,0 +1,114 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <unistd.h>
|
3
|
+
|
4
|
+
#define LUA_LIB
|
5
|
+
#include "lua.h"
|
6
|
+
#include "lauxlib.h"
|
7
|
+
|
8
|
+
/* Show overall CPU utilization of the system
|
9
|
+
* This is a part of the post http://phoxis.org/2013/09/05/finding-overall-and-per-core-cpu-utilization
|
10
|
+
*/
|
11
|
+
|
12
|
+
#define BUF_MAX 1024
|
13
|
+
|
14
|
+
int
|
15
|
+
read_fields (FILE *fp, unsigned long long int *fields) {
|
16
|
+
int retval;
|
17
|
+
char buffer[BUF_MAX];
|
18
|
+
if (!fgets (buffer, BUF_MAX, fp)) {
|
19
|
+
perror ("Error");
|
20
|
+
}
|
21
|
+
retval = sscanf (buffer, "cpu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu %Lu",
|
22
|
+
&fields[0],
|
23
|
+
&fields[1],
|
24
|
+
&fields[2],
|
25
|
+
&fields[3],
|
26
|
+
&fields[4],
|
27
|
+
&fields[5],
|
28
|
+
&fields[6],
|
29
|
+
&fields[7],
|
30
|
+
&fields[8],
|
31
|
+
&fields[9]);
|
32
|
+
if (retval < 4) {
|
33
|
+
fprintf (stderr, "Error reading /proc/stat cpu field\n");
|
34
|
+
return 0;
|
35
|
+
}
|
36
|
+
return 1;
|
37
|
+
}
|
38
|
+
|
39
|
+
/* Immunio Lua bindings */
|
40
|
+
|
41
|
+
static int
|
42
|
+
lua_cpuload(lua_State *L) {
|
43
|
+
FILE *fp;
|
44
|
+
unsigned long long int fields[10], total_tick, total_tick_old, idle, idle_old, del_total_tick, del_idle;
|
45
|
+
int i;
|
46
|
+
double percent_usage;
|
47
|
+
char str[100];
|
48
|
+
|
49
|
+
fp = fopen ("/proc/stat", "r");
|
50
|
+
if (fp == NULL) {
|
51
|
+
perror ("Error");
|
52
|
+
}
|
53
|
+
|
54
|
+
if (!read_fields (fp, fields)) {
|
55
|
+
return 0;
|
56
|
+
}
|
57
|
+
|
58
|
+
for (i=0, total_tick = 0; i<10; i++) {
|
59
|
+
total_tick += fields[i];
|
60
|
+
}
|
61
|
+
idle = fields[3]; /* idle ticks index */
|
62
|
+
sleep (1);
|
63
|
+
total_tick_old = total_tick;
|
64
|
+
idle_old = idle;
|
65
|
+
fseek (fp, 0, SEEK_SET);
|
66
|
+
fflush (fp);
|
67
|
+
if (!read_fields (fp, fields)) {
|
68
|
+
return 0;
|
69
|
+
}
|
70
|
+
|
71
|
+
for (i=0, total_tick = 0; i<10; i++) {
|
72
|
+
total_tick += fields[i];
|
73
|
+
}
|
74
|
+
idle = fields[3];
|
75
|
+
|
76
|
+
del_total_tick = total_tick - total_tick_old;
|
77
|
+
del_idle = idle - idle_old;
|
78
|
+
|
79
|
+
percent_usage = ((del_total_tick - del_idle) / (double) del_total_tick) * 100; /* 3 is index of idle time */
|
80
|
+
sprintf(str,"%f",percent_usage);
|
81
|
+
lua_pushstring(L, str);
|
82
|
+
fclose(fp);
|
83
|
+
return 1;
|
84
|
+
}
|
85
|
+
|
86
|
+
static int
|
87
|
+
lua_stat(lua_State *L) {
|
88
|
+
FILE *fp;
|
89
|
+
char buf[3000];
|
90
|
+
if ((fp=fopen("/proc/stat","r"))==NULL) {
|
91
|
+
printf("Error! opening file");
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
fread(buf, 1, 3000, fp);
|
95
|
+
size_t fsize = ftell(fp);
|
96
|
+
buf[fsize] = '\0';
|
97
|
+
lua_pushstring(L, buf);
|
98
|
+
}
|
99
|
+
fclose(fp);
|
100
|
+
return 1;
|
101
|
+
}
|
102
|
+
|
103
|
+
static const luaL_Reg libcpuload[] = {
|
104
|
+
{"cpuload", lua_cpuload},
|
105
|
+
{"stat", lua_stat},
|
106
|
+
{NULL, NULL}
|
107
|
+
};
|
108
|
+
|
109
|
+
int
|
110
|
+
luaopen_cpuload(lua_State *L) {
|
111
|
+
luaL_checkversion(L);
|
112
|
+
luaL_register(L, "perf", libcpuload);
|
113
|
+
return 1;
|
114
|
+
}
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <stdlib.h>
|
3
|
+
|
4
|
+
#define LUA_LIB
|
5
|
+
#include "lua.h"
|
6
|
+
#include "lauxlib.h"
|
7
|
+
|
8
|
+
|
9
|
+
/*https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-loadavg.html
|
10
|
+
Gives load average in regard to both the CPU and IO over time, as well as additional
|
11
|
+
data used by uptime and other commands.
|
12
|
+
*/
|
13
|
+
|
14
|
+
/* Immunio Lua bindings */
|
15
|
+
|
16
|
+
static int
|
17
|
+
lua_loadavg(lua_State *L) {
|
18
|
+
char c[100];
|
19
|
+
FILE *fp;
|
20
|
+
if ((fp=fopen("/proc/loadavg","r"))==NULL) {
|
21
|
+
printf("Error! opening file");
|
22
|
+
}
|
23
|
+
if (fgets(c, 100, fp) != NULL) {
|
24
|
+
lua_pushstring(L, c);
|
25
|
+
}
|
26
|
+
fclose(fp);
|
27
|
+
return 1;
|
28
|
+
}
|
29
|
+
|
30
|
+
static const luaL_Reg libloadavg[] = {
|
31
|
+
{"loadavg", lua_loadavg},
|
32
|
+
{NULL, NULL}
|
33
|
+
};
|
34
|
+
|
35
|
+
int
|
36
|
+
luaopen_loadavg(lua_State *L) {
|
37
|
+
luaL_checkversion(L);
|
38
|
+
luaL_register(L, "perf", libloadavg);
|
39
|
+
return 1;
|
40
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
|
3
|
+
#define LUA_LIB
|
4
|
+
#include "lua.h"
|
5
|
+
#include "lauxlib.h"
|
6
|
+
|
7
|
+
/*https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-meminfo.html
|
8
|
+
Gives information about RAM*/
|
9
|
+
/* Immunio Lua bindings */
|
10
|
+
|
11
|
+
static int
|
12
|
+
lua_meminfo(lua_State *L) {
|
13
|
+
FILE *fp;
|
14
|
+
char buf[2000];
|
15
|
+
if ((fp=fopen("/proc/meminfo","r"))==NULL) {
|
16
|
+
printf("Error! opening file");
|
17
|
+
}
|
18
|
+
else {
|
19
|
+
fread(buf, 1, 2000, fp);
|
20
|
+
size_t fsize = ftell(fp);
|
21
|
+
buf[fsize] = '\0';
|
22
|
+
lua_pushstring(L,buf);
|
23
|
+
}
|
24
|
+
fclose(fp);
|
25
|
+
return 1;
|
26
|
+
}
|
27
|
+
|
28
|
+
static const luaL_Reg libmeminfo[] = {
|
29
|
+
{"meminfo", lua_meminfo},
|
30
|
+
{NULL, NULL}
|
31
|
+
};
|
32
|
+
|
33
|
+
int
|
34
|
+
luaopen_meminfo(lua_State *L) {
|
35
|
+
luaL_checkversion(L);
|
36
|
+
luaL_register(L, "perf", libmeminfo);
|
37
|
+
return 1;
|
38
|
+
}
|
@@ -0,0 +1,80 @@
|
|
1
|
+
#include <time.h>
|
2
|
+
|
3
|
+
#define lib_os_c
|
4
|
+
#define LUA_LIB
|
5
|
+
|
6
|
+
#include "lua.h"
|
7
|
+
#include "lauxlib.h"
|
8
|
+
#include "lj_err.h"
|
9
|
+
|
10
|
+
static int os_clock(lua_State *L) {
|
11
|
+
setnumV(L->top++, ((lua_Number)clock())*(1.0/(lua_Number)CLOCKS_PER_SEC));
|
12
|
+
return 1;
|
13
|
+
}
|
14
|
+
|
15
|
+
static int getboolfield(lua_State *L, const char *key) {
|
16
|
+
int res;
|
17
|
+
lua_getfield(L, -1, key);
|
18
|
+
res = lua_isnil(L, -1) ? -1 : lua_toboolean(L, -1);
|
19
|
+
lua_pop(L, 1);
|
20
|
+
return res;
|
21
|
+
}
|
22
|
+
|
23
|
+
static int getfield(lua_State *L, const char *key, int d) {
|
24
|
+
int res;
|
25
|
+
lua_getfield(L, -1, key);
|
26
|
+
if (lua_isnumber(L, -1)) {
|
27
|
+
res = (int)lua_tointeger(L, -1);
|
28
|
+
} else {
|
29
|
+
if (d < 0)
|
30
|
+
lj_err_callerv(L, LJ_ERR_OSDATEF, key);
|
31
|
+
res = d;
|
32
|
+
}
|
33
|
+
lua_pop(L, 1);
|
34
|
+
return res;
|
35
|
+
}
|
36
|
+
|
37
|
+
static int os_time(lua_State *L) {
|
38
|
+
time_t t;
|
39
|
+
if (lua_isnoneornil(L, 1)) { /* called without args? */
|
40
|
+
t = time(NULL); /* get current time */
|
41
|
+
} else {
|
42
|
+
struct tm ts;
|
43
|
+
luaL_checktype(L, 1, LUA_TTABLE);
|
44
|
+
lua_settop(L, 1); /* make sure table is at the top */
|
45
|
+
ts.tm_sec = getfield(L, "sec", 0);
|
46
|
+
ts.tm_min = getfield(L, "min", 0);
|
47
|
+
ts.tm_hour = getfield(L, "hour", 12);
|
48
|
+
ts.tm_mday = getfield(L, "day", -1);
|
49
|
+
ts.tm_mon = getfield(L, "month", -1) - 1;
|
50
|
+
ts.tm_year = getfield(L, "year", -1) - 1900;
|
51
|
+
ts.tm_isdst = getboolfield(L, "isdst");
|
52
|
+
t = mktime(&ts);
|
53
|
+
}
|
54
|
+
if (t == (time_t)(-1))
|
55
|
+
lua_pushnil(L);
|
56
|
+
else
|
57
|
+
lua_pushnumber(L, (lua_Number)t);
|
58
|
+
return 1;
|
59
|
+
}
|
60
|
+
|
61
|
+
static int os_difftime(lua_State *L) {
|
62
|
+
lua_pushnumber(L, difftime((time_t)(luaL_checknumber(L, 1)),
|
63
|
+
(time_t)(luaL_optnumber(L, 2, (lua_Number)0))));
|
64
|
+
return 1;
|
65
|
+
}
|
66
|
+
|
67
|
+
static const luaL_Reg libluaos[] = {
|
68
|
+
{"clock", os_clock},
|
69
|
+
{"time", os_time},
|
70
|
+
{"difftime", os_difftime},
|
71
|
+
|
72
|
+
{NULL, NULL}
|
73
|
+
};
|
74
|
+
|
75
|
+
int
|
76
|
+
luaopen_luaos(lua_State *L) {
|
77
|
+
luaL_checkversion(L);
|
78
|
+
luaL_register(L, "perf", libluaos);
|
79
|
+
return 1;
|
80
|
+
}
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: immunio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Immunio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 0.14.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.14.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -56,56 +56,56 @@ dependencies:
|
|
56
56
|
name: msgpack
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0.5'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: faraday
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0.8'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.8'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: faraday_middleware
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0.9'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0.9'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: binding_of_caller
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0.7'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0.7'
|
111
111
|
description: |
|
@@ -124,9 +124,6 @@ extensions:
|
|
124
124
|
- ext/immunio/Rakefile
|
125
125
|
extra_rdoc_files: []
|
126
126
|
files:
|
127
|
-
- LICENSE
|
128
|
-
- README.md
|
129
|
-
- bin/immunio
|
130
127
|
- ext/immunio/Rakefile
|
131
128
|
- lib/immunio.rb
|
132
129
|
- lib/immunio/agent.rb
|
@@ -415,11 +412,18 @@ files:
|
|
415
412
|
- lua-hooks/ext/luautf8/README.md
|
416
413
|
- lua-hooks/ext/luautf8/lutf8lib.c
|
417
414
|
- lua-hooks/ext/luautf8/unidata.h
|
415
|
+
- lua-hooks/ext/perf/luacpu.c
|
416
|
+
- lua-hooks/ext/perf/lualoadavg.c
|
417
|
+
- lua-hooks/ext/perf/luameminfo.c
|
418
|
+
- lua-hooks/ext/perf/luaoslib.c
|
418
419
|
- lua-hooks/ext/sha1/luasha1.c
|
419
420
|
- lua-hooks/ext/sha1/sha1.c
|
420
421
|
- lua-hooks/ext/sha2/luasha256.c
|
421
422
|
- lua-hooks/ext/sha2/sha256.c
|
423
|
+
- README.md
|
424
|
+
- LICENSE
|
422
425
|
- lua-hooks/lib/boot.lua
|
426
|
+
- bin/immunio
|
423
427
|
homepage: http://immun.io/
|
424
428
|
licenses:
|
425
429
|
- Immunio
|
@@ -431,19 +435,18 @@ require_paths:
|
|
431
435
|
- lib
|
432
436
|
required_ruby_version: !ruby/object:Gem::Requirement
|
433
437
|
requirements:
|
434
|
-
- -
|
438
|
+
- - '>='
|
435
439
|
- !ruby/object:Gem::Version
|
436
440
|
version: 1.9.3
|
437
441
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
438
442
|
requirements:
|
439
|
-
- -
|
443
|
+
- - '>='
|
440
444
|
- !ruby/object:Gem::Version
|
441
445
|
version: '0'
|
442
446
|
requirements: []
|
443
447
|
rubyforge_project:
|
444
|
-
rubygems_version: 2.
|
448
|
+
rubygems_version: 2.0.14
|
445
449
|
signing_key:
|
446
450
|
specification_version: 4
|
447
451
|
summary: Immunio Ruby agent
|
448
452
|
test_files: []
|
449
|
-
has_rdoc:
|