hc.answer_body = 'Доступ запрещён'
hc.answer_header = re.replace(hc.answer_header, [[^Connection: \K(?!close)[^\r\n]+]], 'close') hc.answer_header = re.replace(hc.answer_header, [[^Connection: \K[^\r\n]+]], 'Connection: close')
function AnswerSend() re.select_engine(1) if re.match(hc.answer_header, [[\AHTTP/1\.\d 403]]) then hc.answer_body = 'Доступ запрещён' hc.extensions_on = false hc.repeat_options('request', 0, 0) -- отключение повторных запросов hc.action = 'stop'-- hc.monitor_string = 'TEST' hc.client_disconnect() -- хоть как-то прервать загрузку, это срабатывает как надо hc.answer_header = re.replace(hc.answer_header, [[\AHTTP/1\.1]], 'HTTP/1.0') hc.answer_header = re.replace(hc.answer_header, [[^Connection: \K(?!close)[^\r\n]+]], 'close') hc.answer_header = re.replace(hc.answer_header, [[^Connection: \K[^\r\n]+]], 'Connection: close') hc.answer_header = re.replace(hc.answer_header, [[^Connection: .]], 'Connection: close')-- hc.answer_header = 'Accept-Ranges: bytes Content-Length: 15 Connection: close Content-Type: text/html; charset=windows-1251' endend
re.select_engine(1)
hc.extensions_on = false hc.repeat_options('request', 0, 0) -- отключение повторных запросов hc.action = 'stop'
hc.client_disconnect() -- хоть как-то прервать загрузку, это срабатывает как надо
--[[ <HCExtension>@name My 403@event BeforeRequestHeaderSend/MyAnswer</HCExtension> ]]function GetAnswerCode(s) _,_,x = string.find(s, "HTTP/1%.%d +(%d+)") if x==nil then return -1 else return tonumber(x) endendfunction MyAnswer() if GetAnswerCode(hc.answer_header) == 403 then hc.answer_header= ... hc.answer_body= ... endend
hc.answer_header= ... hc.answer_body= ...
--[[ <HCExtension>@name My 403@event BeforeAnswerHeaderSend/MyAnswer</HCExtension> ]]function GetAnswerCode(s) _,_,x = string.find(s, "HTTP/1%.%d +(%d+)") if x==nil then return -1 else return tonumber(x) endendfunction MyAnswer() if GetAnswerCode(hc.answer_header) == 403 then hc.answer_header= 'HTTP/1.1 403 Access denied\r\nConnection: close\r\nContent-Type: text\r\n\r\n' hc.answer_body= 'Доступ запрещён' endend