Hello,

I'm trying to a establish a TLS connection with the hs-tls library. I got most of the code from the Stunnel.hs, but what I am trying do here is to be able to pass either 'Client' or 'Server' as argument and then, depending on which one it is, act as either one in the handshake.

This is the code, that tries to make the handshake:
client :: Socket -> IO ()
client sock = do addr <- sockaddr
                 _ <- connect sock addr
                 ctx <- myCCtx sock
                 contextHookSetLogging ctx logging
                 handshake ctx

server :: Socket -> IO ()
server sock = do sockaddr >>= bind sock
                 listen sock 1
                 (peer, _) <- accept sock
                 ctx <- mySCtx peer
                 contextHookSetLogging ctx logging
                 handshake ctx

The rest of it would probably too much to fit into an email, so I am linking it from here: http://lpaste.net/102014

When I run it, the client fails to parse the handshake:
Error_Packet_Parsing "Failed reading: invalid header type: 1\nFrom:\theader\n\n"

Whereas the server says 'server hello done' right before it receives the alert from the client.

How can this happen? That 'From:\theader...' doesn't even exist as a string in the hs-tls library.. Is there anywhere an example for the hs-tls library with a client as well as a server?

Thanks a lot!

- Reto