[BUG] logs: don't report "proxy request" when server closes early

A copy-paste typo and a missing check were causing the logs to
report "PR" instead of "SD" when a server closes before sending
full data. Also, the log would erroneously report 502 while in
fact the correct response will already have been transmitted.
diff --git a/src/proto_http.c b/src/proto_http.c
index aff5ca3..72d2da9 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -5068,9 +5068,13 @@
 
  missing_data:
 	/* stop waiting for data if the input is closed before the end */
-	if (res->flags & BF_SHUTR)
+	if (res->flags & BF_SHUTR) {
+		if (!(s->flags & SN_ERR_MASK))
+			s->flags |= SN_ERR_SRVCL;
 		goto return_bad_res;
+	}
 
+	/* we need to obey the req analyser, so if it leaves, we must too */
 	if (!s->req->analysers)
 		goto return_bad_res;
 
@@ -5085,9 +5089,8 @@
 	http_silent_debug(__LINE__, s);
 	return 0;
 
- return_bad_res: /* let's centralize all bad resuests */
+ return_bad_res: /* let's centralize all bad responses */
 	txn->rsp.msg_state = HTTP_MSG_ERROR;
-	txn->status = 502;
 	/* don't send any error message as we're in the body */
 	stream_int_retnclose(res->cons, NULL);
 	res->analysers = 0;
@@ -5100,7 +5103,7 @@
 	if (!(s->flags & SN_ERR_MASK))
 		s->flags |= SN_ERR_PRXCOND;
 	if (!(s->flags & SN_FINST_MASK))
-		s->flags |= SN_FINST_R;
+		s->flags |= SN_FINST_D;
 	http_silent_debug(__LINE__, s);
 	return 0;
 }