@@ -150,7 +150,8 @@ runTLSSocket TLSSettings {..} set sock app = do
150150 gen
151151 TLS.contextHookSetLogging ctx tlsLogging
152152 TLS.handshake ctx
153− buf <- allocateBuffer bufferSize
153+ readBuf <- allocateBuffer bufferSize
154+ writeBuf <- allocateBuffer bufferSize
154155 let conn = Connection
155156 { connSendMany = TLS.sendData ctx . L.fromChunks
156157 , connSendAll = TLS.sendData ctx . L.fromChunks . return
@@ -158,6 +159,8 @@ runTLSSocket TLSSettings {..} set sock app = do
158159 TLS.sendData ctx $ L.fromChunks headers
159160 runResourceT $ sourceFileRange fp (Just offset) (Just len) C.$$ CL.mapM_ (TLS.sendData ctx . L.fromChunks . return)
160161 , connClose =
162+ freeBuffer readBuf `finally`
163+ freeBuffer writeBuf `finally`
161164 TLS.bye ctx `finally`
162165 TLS.contextClose ctx
163166 , connRecv =
@@ -170,7 +173,8 @@ runTLSSocket TLSSettings {..} set sock app = do
170173 else return x
171174 in go
172175 , connSendFileOverride = NotOverride
173− , connBuffer = buf
176+ , connReadBuffer = readBuf
177+ , connWriteBuffer = writeBuf
174178 , connBufferSize = bufferSize
175179 }
176180 return (conn, True)