From c519d41a5afbb8e2adf98bd3d87c44a202293621 Mon Sep 17 00:00:00 2001
From: Lars-Dominik Braun <lars@6xq.net>
Date: Sun, 31 Mar 2013 15:50:32 +0200
Subject: Ignore HTTP status 400

Workaround for #355, fixes commit
2c516503d2cb81dd156afc24677ac4bf3caefceb.
---
 src/libwaitress/waitress.c |  6 +++++-
 src/libwaitress/waitress.h | 12 ++++++++----
 2 files changed, 13 insertions(+), 5 deletions(-)

(limited to 'src/libwaitress')

diff --git a/src/libwaitress/waitress.c b/src/libwaitress/waitress.c
index efb76a9..3d01198 100644
--- a/src/libwaitress/waitress.c
+++ b/src/libwaitress/waitress.c
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2009-2012
+Copyright (c) 2009-2013
 	Lars-Dominik Braun <lars@6xq.net>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -974,6 +974,10 @@ static WaitressReturn_t WaitressReceiveHeaders (WaitressHandle_t *waith,
 							hdrParseMode = HDRM_LINES;
 							break;
 
+						case 400:
+							return WAITRESS_RET_BAD_REQUEST;
+							break;
+
 						case 403:
 							return WAITRESS_RET_FORBIDDEN;
 							break;
diff --git a/src/libwaitress/waitress.h b/src/libwaitress/waitress.h
index 6a0a66f..9075047 100644
--- a/src/libwaitress/waitress.h
+++ b/src/libwaitress/waitress.h
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2009-2012
+Copyright (c) 2009-2013
 	Lars-Dominik Braun <lars@6xq.net>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -62,20 +62,24 @@ typedef struct {
 typedef enum {
 	WAITRESS_RET_ERR = 0,
 	WAITRESS_RET_OK,
+	WAITRESS_RET_CB_ABORT,
+	/* http error codes */
 	WAITRESS_RET_STATUS_UNKNOWN,
 	WAITRESS_RET_NOTFOUND,
 	WAITRESS_RET_FORBIDDEN,
+	WAITRESS_RET_BAD_REQUEST,
+	/* socket errors */
 	WAITRESS_RET_CONNECT_REFUSED,
 	WAITRESS_RET_SOCK_ERR,
 	WAITRESS_RET_GETADDR_ERR,
-	WAITRESS_RET_CB_ABORT,
-	WAITRESS_RET_PARTIAL_FILE,
 	WAITRESS_RET_TIMEOUT,
 	WAITRESS_RET_READ_ERR,
 	WAITRESS_RET_CONNECTION_CLOSED,
-	WAITRESS_RET_DECODING_ERR,
 	WAITRESS_RET_TLS_WRITE_ERR,
 	WAITRESS_RET_TLS_READ_ERR,
+	/* protocol errors */
+	WAITRESS_RET_PARTIAL_FILE,
+	WAITRESS_RET_DECODING_ERR,
 	WAITRESS_RET_TLS_HANDSHAKE_ERR,
 	WAITRESS_RET_TLS_FINGERPRINT_MISMATCH,
 } WaitressReturn_t;
-- 
cgit v1.2.3