clix/raw.lua

changeset 153
56546fb3429b
parent 152
c729365f1091
child 154
e7f579d82b76
equal deleted inserted replaced
152:c729365f1091 153:56546fb3429b
83 if not data then 83 if not data then
84 conn:close(); 84 conn:close();
85 return 85 return
86 end 86 end
87 if data:sub(1,1) ~= "<" then 87 if data:sub(1,1) ~= "<" then
88 local chunk, err = loadstring("return "..data, "@stdin"); 88 local sandboxed = true;
89 if data:sub(1,1) == ">" then
90 sandboxed = false;
91 data = data:sub(2);
92 else
93 data = "return "..data;
94 end
95 local chunk, err = loadstring(data, "@stdin");
89 if not chunk then 96 if not chunk then
90 conn:error(err); 97 conn:error(err);
91 return; 98 return;
92 end 99 end
93 data = ""; 100 data = "";
94 setfenv(chunk, env); 101 if sandboxed then
102 setfenv(chunk, env);
103 end
95 local ok, ret = pcall(chunk); 104 local ok, ret = pcall(chunk);
96 if ok then 105 if ok then
97 data = ret 106 data = ret
98 else 107 else
99 conn:error(ret); 108 conn:error(ret);

mercurial