Update waf.lua
							parent
							
								
									047e0278f9
								
							
						
					
					
						commit
						ed6b345db3
					
				
							
								
								
									
										57
									
								
								waf.lua
								
								
								
								
							
							
						
						
									
										57
									
								
								waf.lua
								
								
								
								
							|  | @ -1,5 +1,4 @@ | |||
|  local upload = require "upload" | ||||
|  local content_length=tonumber(ngx.req.get_headers()['content-length']) | ||||
| local content_length=tonumber(ngx.req.get_headers()['content-length']) | ||||
| local method=ngx.req.get_method() | ||||
| if whiteip() then | ||||
| elseif blockip() then | ||||
|  | @ -15,30 +14,40 @@ elseif args() then | |||
| elseif cookie() then | ||||
| elseif PostCheck then | ||||
|     if method=="POST" then    | ||||
| 		local boundary = get_boundary() | ||||
| 		if boundary then | ||||
| 			local form = upload:new(500) | ||||
|             if not form then | ||||
|                 return | ||||
|             local boundary = get_boundary() | ||||
| 	    if boundary then | ||||
| 	    local len = string.len | ||||
|             local sock, err = ngx.req.socket() | ||||
|     	    if not sock then | ||||
| 					return | ||||
|             end | ||||
|             form:set_timeout(1000) -- 1 sec | ||||
|             while true do | ||||
|                 local typ, res, err = form:read() | ||||
|                 if not typ then | ||||
|                     return | ||||
|                 end | ||||
|                 if typ=="body" then | ||||
|                     body(res) | ||||
|                 end | ||||
| 
 | ||||
|                 if typ == "eof" then | ||||
|                     break | ||||
|                 end | ||||
| 	    ngx.req.init_body(128 * 1024) | ||||
|             sock:settimeout(0) | ||||
| 	    local content_length = nil | ||||
|     	    content_length=tonumber(ngx.req.get_headers()['content-length']) | ||||
|     	    local chunk_size = 4096 | ||||
|             if content_length < chunk_size then | ||||
| 					chunk_size = content_length | ||||
| 	    end | ||||
|             local size = 0 | ||||
| 	    while size < content_length do | ||||
| 		local data, err, partial = sock:receive(chunk_size) | ||||
| 		data = data or partial | ||||
| 		if not data then | ||||
| 			return | ||||
| 		end | ||||
| 		ngx.req.append_body(data) | ||||
| 		size = size + len(data) | ||||
| 		local less = content_length - size | ||||
| 		if less < chunk_size then | ||||
| 			chunk_size = less | ||||
| 		end | ||||
|             end | ||||
| 
 | ||||
| --            local typ, res, err = form:read() | ||||
|  --           body(res) | ||||
| 		else | ||||
|     	    	ngx.req.finish_body() | ||||
|         	if body(data) then | ||||
| 	   	        return true | ||||
|     	    	end | ||||
|     else | ||||
| 			ngx.req.read_body() | ||||
| 			local args = ngx.req.get_post_args() | ||||
| 			if not args then | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 loveshell
						loveshell