forked from cadence/breezewiki
		
	Close response after error in proxy
This commit is contained in:
		
							parent
							
								
									2a56107e97
								
							
						
					
					
						commit
						10cdd260e0
					
				
					 1 changed files with 10 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -18,13 +18,16 @@
 | 
			
		|||
  (match (dict-ref (url-query (request-uri req)) 'dest #f)
 | 
			
		||||
    [(? string? dest)
 | 
			
		||||
     (if (is-fandom-url? dest)
 | 
			
		||||
         (response-handler
 | 
			
		||||
         (response-handler ; catches and reports errors
 | 
			
		||||
          (let ([dest-r (easy:get dest #:stream? #t)])
 | 
			
		||||
            (with-handlers ([exn:fail? (λ (e) ; cleans up and re-throws
 | 
			
		||||
                                         (easy:response-close! dest-r)
 | 
			
		||||
                                         (raise e))])
 | 
			
		||||
              (response/output
 | 
			
		||||
               #:code (easy:response-status-code dest-r)
 | 
			
		||||
               #:mime-type (easy:response-headers-ref dest-r 'content-type)
 | 
			
		||||
               (λ (out)
 | 
			
		||||
                 (copy-port (easy:response-output dest-r) out)
 | 
			
		||||
               (easy:response-close! dest-r)))))
 | 
			
		||||
                 (easy:response-close! dest-r))))))
 | 
			
		||||
         (next-dispatcher))]
 | 
			
		||||
    [#f (next-dispatcher)]))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue