clix/raw.lua

changeset 84
1b4e64176288
parent 83
040fadcc86f9
child 85
8bc27e310e64
equal deleted inserted replaced
83:040fadcc86f9 84:1b4e64176288
49 if not data then 49 if not data then
50 conn:close(); 50 conn:close();
51 return 51 return
52 end 52 end
53 if data:sub(1,1) ~= "<" then 53 if data:sub(1,1) ~= "<" then
54 local chunk = assert(loadstring("return "..data, "@stdin")); 54 local chunk, err = loadstring("return "..data, "@stdin");
55 if not chunk then
56 conn:error(err);
57 return;
58 end
55 data = ""; 59 data = "";
56 setfenv(chunk, env); 60 setfenv(chunk, env);
57 local ok, ret = pcall(chunk); 61 local ok, ret = pcall(chunk);
58 if ok then 62 if ok then
59 data = ret 63 data = ret
64 else
65 conn:error(ret);
66 return;
60 end 67 end
61 end 68 end
62 if data then 69 if data then
63 conn:send(data); 70 conn:send(data);
64 end 71 end

mercurial