[MEDIUM] make the unix stats sockets use the generic session handler

process_session() is now ready to handle unix stats sockets. This
first step works and old code has not been removed. A cleanup is
required. The stats handler is not unix socket-centric anymore and
should move to dumpstats.c.
diff --git a/include/proto/proto_uxst.h b/include/proto/proto_uxst.h
index bf487b6..075ca2e 100644
--- a/include/proto/proto_uxst.h
+++ b/include/proto/proto_uxst.h
@@ -29,6 +29,7 @@
 int uxst_event_accept(int fd);
 void uxst_add_listener(struct listener *listener);
 struct task *uxst_process_session(struct task *t);
+int uxst_req_analyser_stats(struct session *s, struct buffer *req, int an_bit);
 
 #endif /* _PROTO_PROTO_UXST_H */
 
diff --git a/src/dumpstats.c b/src/dumpstats.c
index 0615366..2683b52 100644
--- a/src/dumpstats.c
+++ b/src/dumpstats.c
@@ -106,7 +106,7 @@
 		global.stats_sock.state = LI_INIT;
 		global.stats_sock.options = LI_O_NONE;
 		global.stats_sock.accept = uxst_event_accept;
-		global.stats_sock.handler = uxst_process_session;
+		global.stats_sock.handler = process_session;
 		global.stats_sock.analysers = AN_REQ_UNIX_STATS;
 		global.stats_sock.private = global.stats_fe; /* must point to the frontend */
 
diff --git a/src/proto_uxst.c b/src/proto_uxst.c
index 742d116..44e7c3c 100644
--- a/src/proto_uxst.c
+++ b/src/proto_uxst.c
@@ -664,7 +664,6 @@
 		s->data_source = DATA_SRC_STATS;
 		s->ana_state = STATS_ST_REQ;
 		buffer_write_dis(s->req);
-		buffer_shutw_now(s->req);
 		/* fall through */
 
 	case STATS_ST_REQ:
diff --git a/src/session.c b/src/session.c
index 5197a80..56bf102 100644
--- a/src/session.c
+++ b/src/session.c
@@ -28,6 +28,7 @@
 #include <proto/pipe.h>
 #include <proto/proto_http.h>
 #include <proto/proto_tcp.h>
+#include <proto/proto_uxst.h>
 #include <proto/proxy.h>
 #include <proto/queue.h>
 #include <proto/server.h>
@@ -840,6 +841,12 @@
 						break;
 				}
 
+				if (s->req->analysers & AN_REQ_UNIX_STATS) {
+					last_ana |= AN_REQ_UNIX_STATS;
+					if (!uxst_req_analyser_stats(s, s->req, AN_REQ_UNIX_STATS))
+						break;
+				}
+
 				if (s->req->analysers & AN_REQ_PRST_RDP_COOKIE) {
 					last_ana |= AN_REQ_PRST_RDP_COOKIE;
 					if (!tcp_persist_rdp_cookie(s, s->req, AN_REQ_PRST_RDP_COOKIE))