         
         var length = UInt32(data.count + messageHeaderSize).littleEndian
         var type = type.rawValue.littleEndian
+        let padding = Data(repeating: 0, count: paddingLength(for: Int(length)))
         
         var message = Data(bytes: &length, count: 4)
         message.append(Data(bytes: &type, count: 4))
         message.append(data)
+        message.append(padding)
         
         if sendBuffer.count > 0 {
             // No more data can be send at this time. Queue the message.

        let length = sendBuffer.count
        assert(length > 0)
        
        let rv = sendBuffer.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) -> CInt in
            return libsocket.socket_send(socket, bytes, UInt32(length))
        }
        
        if rv < 0 {

            
        case .syncRequest:
            if payload.count == 4 {
                let value = payload.withUnsafeBytes { $0.load(as: UInt32.self) }
                let start = Int(UInt32(littleEndian: value))
                
                // Send the next batch of programs from our corpus
