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)
 | 
					  (match (dict-ref (url-query (request-uri req)) 'dest #f)
 | 
				
			||||||
    [(? string? dest)
 | 
					    [(? string? dest)
 | 
				
			||||||
     (if (is-fandom-url? dest)
 | 
					     (if (is-fandom-url? dest)
 | 
				
			||||||
         (response-handler
 | 
					         (response-handler ; catches and reports errors
 | 
				
			||||||
          (let ([dest-r (easy:get dest #:stream? #t)])
 | 
					          (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
 | 
					              (response/output
 | 
				
			||||||
               #:code (easy:response-status-code dest-r)
 | 
					               #:code (easy:response-status-code dest-r)
 | 
				
			||||||
               #:mime-type (easy:response-headers-ref dest-r 'content-type)
 | 
					               #:mime-type (easy:response-headers-ref dest-r 'content-type)
 | 
				
			||||||
               (λ (out)
 | 
					               (λ (out)
 | 
				
			||||||
                 (copy-port (easy:response-output dest-r) out)
 | 
					                 (copy-port (easy:response-output dest-r) out)
 | 
				
			||||||
               (easy:response-close! dest-r)))))
 | 
					                 (easy:response-close! dest-r))))))
 | 
				
			||||||
         (next-dispatcher))]
 | 
					         (next-dispatcher))]
 | 
				
			||||||
    [#f (next-dispatcher)]))
 | 
					    [#f (next-dispatcher)]))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue