dont close in user callback wrapper let ancestor do it

Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index c96f751..619b008 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -1382,8 +1382,7 @@
 	if ((wsi->u.ws.rxflow_change_to & 1) && wsi->u.ws.rxflow_buffer) {
 		n = libwebsocket_interpret_incoming_packet(wsi, NULL, 0);
 		if (n < 0) {
-			lwsl_info("closing connection at libwebsocket_rx_flow_control:\n");
-			libwebsocket_close_and_free_session(context, wsi, LWS_CLOSE_STATUS_NOSTATUS);
+			lwsl_info("returning that we want to close connection at libwebsocket_rx_flow_control:\n");
 			return -1;
 		}
 		if (n)
@@ -1495,15 +1494,10 @@
 	int n;
 
 	n = callback_function(context, wsi, reason, user, in, len);
-	if (n) {
-		libwebsocket_close_and_free_session(context, wsi,
-					       LWS_CLOSE_STATUS_NOSTATUS);
-		return n;
-	}
+	if (!n)
+		n = _libwebsocket_rx_flow_control(wsi);
 
-	_libwebsocket_rx_flow_control(wsi);
-
-	return 0;
+	return n;
 }
 
 
diff --git a/lib/output.c b/lib/output.c
index 8e13d4b..55726f3 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -501,8 +501,7 @@
 			if (wsi->protocol->callback)
 				ret = user_callback_handle_rxflow(wsi->protocol->callback, context, wsi, LWS_CALLBACK_HTTP_FILE_COMPLETION, wsi->user_space,
 					NULL, 0);
-			/* user_callback_handle_rxflow did any close already */
-			return 0;
+			return ret;
 		}
 	}
 
diff --git a/lib/parsers.c b/lib/parsers.c
index a320fef..438f103 100644
--- a/lib/parsers.c
+++ b/lib/parsers.c
@@ -546,6 +546,7 @@
 {
 	int n;
 	struct lws_tokens eff_buf;
+	int ret = 0;
 #ifndef LWS_NO_EXTENSIONS
 	int handled;
 	int m;
@@ -928,10 +929,10 @@
 		}
 #endif
 		if (eff_buf.token_len > 0) {
-		    eff_buf.token[eff_buf.token_len] = '\0';
+			eff_buf.token[eff_buf.token_len] = '\0';
 
-		    if (wsi->protocol->callback)
-			    user_callback_handle_rxflow(wsi->protocol->callback,
+			if (wsi->protocol->callback)
+				ret = user_callback_handle_rxflow(wsi->protocol->callback,
 						    wsi->protocol->owning_server,
 						    wsi, LWS_CALLBACK_RECEIVE,
 						    wsi->user_space,
@@ -945,7 +946,7 @@
 		break;
 	}
 
-	return 0;
+	return ret;
 
 illegal_ctl_length: