From 99764c7132019c870e36ac56385500b8d5b454ed Mon Sep 17 00:00:00 2001
From: Magnus Hagander <magnus@hagander.net>
Date: Mon, 9 Jan 2012 11:53:38 +0100
Subject: [PATCH 1/2] Reorder check for streaming message and header size

This produces a more relevant error message when talking to a 9.2
server that sends keepalive messages.
---
 src/bin/pg_basebackup/receivelog.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c
index c18db4f..d76eed6 100644
--- a/src/bin/pg_basebackup/receivelog.c
+++ b/src/bin/pg_basebackup/receivelog.c
@@ -374,18 +374,18 @@ ReceiveXlogStream(PGconn *conn, XLogRecPtr startpos, uint32 timeline, char *sysi
 					progname, PQerrorMessage(conn));
 			return false;
 		}
-		if (r < STREAMING_HEADER_SIZE + 1)
-		{
-			fprintf(stderr, _("%s: streaming header too small: %i\n"),
-					progname, r);
-			return false;
-		}
 		if (copybuf[0] != 'w')
 		{
 			fprintf(stderr, _("%s: unrecognized streaming header: \"%c\"\n"),
 					progname, copybuf[0]);
 			return false;
 		}
+		if (r < STREAMING_HEADER_SIZE + 1)
+		{
+			fprintf(stderr, _("%s: streaming header too small: %i\n"),
+					progname, r);
+			return false;
+		}
 
 		/* Extract WAL location for this block */
 		memcpy(&blockpos, copybuf + 1, 8);
-- 
1.7.5.4

