Skip to content

Instantly share code, notes, and snippets.

@solidsnack
Created October 8, 2011 20:02
Show Gist options
  • Save solidsnack/1272796 to your computer and use it in GitHub Desktop.
Save solidsnack/1272796 to your computer and use it in GitHub Desktop.
module Prox.Parse where
import Control.Monad
import Data.ByteString
import Data.Word
--import Network.Socket.ByteString
import Data.Attoparsec
import Data.Attoparsec.Binary
data StartupPacket = StartupPacket { length :: Word32,
protocolVersion :: Word32 }
startupPacket = do
len <- anyWord32be
guard (len > pg_MAX_STARTUP_PACKET_LENGTH)
protocolVersion <- anyWord32be
return (StartupPacket len protocolVersion)
pg_MAX_STARTUP_PACKET_LENGTH :: Word32
pg_MAX_STARTUP_PACKET_LENGTH = 10000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment