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)]) | ||||
|             (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))))) | ||||
|             (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)))))) | ||||
|          (next-dispatcher))] | ||||
|     [#f (next-dispatcher)])) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue