| |
| local vtc_port1 = 0 |
| local mailsreceived = 0 |
| local mailconnectionsmade = 0 |
| local healthcheckcounter = 0 |
| |
| core.register_action("bug", { "http-res" }, function(txn) |
| data = txn:get_priv() |
| if not data then |
| data = 0 |
| end |
| data = data + 1 |
| print(string.format("set to %d", data)) |
| txn.http:res_set_status(200 + data) |
| txn:set_priv(data) |
| end) |
| |
| core.register_service("luahttpservice", "http", function(applet) |
| local response = "?" |
| local responsestatus = 200 |
| if applet.path == "/setport" then |
| vtc_port1 = applet.headers["vtcport1"][0] |
| response = "OK" |
| end |
| if applet.path == "/svr_healthcheck" then |
| healthcheckcounter = healthcheckcounter + 1 |
| if healthcheckcounter < 2 or healthcheckcounter > 6 then |
| responsestatus = 403 |
| end |
| end |
| |
| applet:set_status(responsestatus) |
| if applet.path == "/checkMailCounters" then |
| response = "MailCounters" |
| applet:add_header("mailsreceived", mailsreceived) |
| applet:add_header("mailconnectionsmade", mailconnectionsmade) |
| end |
| applet:start_response() |
| applet:send(response) |
| end) |
| |
| core.register_service("fakeserv", "http", function(applet) |
| applet:set_status(200) |
| applet:start_response() |
| end) |
| |
| function RecieveAndCheck(applet, expect) |
| data = applet:getline() |
| if data:sub(1,expect:len()) ~= expect then |
| core.Info("Expected: "..expect.." but got:"..data:sub(1,expect:len())) |
| applet:send("Expected: "..expect.." but got:"..data.."\r\n") |
| return false |
| end |
| return true |
| end |
| |
| core.register_service("mailservice", "tcp", function(applet) |
| core.Info("############# Mailservice Called #############") |
| mailconnectionsmade = mailconnectionsmade + 1 |
| applet:send("220 Welcome\r\n") |
| local data |
| |
| if RecieveAndCheck(applet, "EHLO") == false then |
| return |
| end |
| applet:send("250 OK\r\n") |
| if RecieveAndCheck(applet, "MAIL FROM:") == false then |
| return |
| end |
| applet:send("250 OK\r\n") |
| if RecieveAndCheck(applet, "RCPT TO:") == false then |
| return |
| end |
| applet:send("250 OK\r\n") |
| if RecieveAndCheck(applet, "DATA") == false then |
| return |
| end |
| applet:send("354 OK\r\n") |
| core.Info("#### Send your mailbody") |
| local endofmail = false |
| local subject = "" |
| while endofmail ~= true do |
| data = applet:getline() -- BODY CONTENT |
| --core.Info(data) |
| if data:sub(1, 9) == "Subject: " then |
| subject = data |
| end |
| if (data == "\r\n") then |
| data = applet:getline() -- BODY CONTENT |
| core.Info(data) |
| if (data == ".\r\n") then |
| endofmail = true |
| end |
| end |
| end |
| core.Info("#### Body recieved OK") |
| applet:send("250 OK\r\n") |
| |
| if RecieveAndCheck(applet, "QUIT") == false then |
| return |
| end |
| applet:send("221 Mail queued for delivery to /dev/null \r\n") |
| core.Info("Mail queued for delivery to /dev/null subject: "..subject) |
| mailsreceived = mailsreceived + 1 |
| end) |