[MEDIUM] implement option tcp-smart-accept at the frontend

This option disables TCP quick ack upon accept. It is also
automatically enabled in HTTP mode, unless the option is
explicitly disabled with "no option tcp-smart-accept".

This saves one packet per connection which can bring reasonable
amounts of bandwidth for servers processing small requests.
diff --git a/include/types/protocols.h b/include/types/protocols.h
index e91fdb3..8d0ac9f 100644
--- a/include/types/protocols.h
+++ b/include/types/protocols.h
@@ -68,6 +68,7 @@
 #define LI_O_NONE	0x0000
 #define LI_O_NOLINGER	0x0001	/* disable linger on this socket */
 #define LI_O_FOREIGN	0x0002	/* permit listening on foreing addresses */
+#define LI_O_NOQUICKACK	0x0004	/* disable quick ack of immediate data (linux) */
 
 /* The listener will be directly referenced by the fdtab[] which holds its
  * socket. The listener provides the protocol-specific accept() function to
diff --git a/include/types/proxy.h b/include/types/proxy.h
index b1b90e8..7664618 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -117,6 +117,7 @@
 #define PR_O2_RSPBUG_OK	0x00000010      /* let buggy responses pass through */
 #define PR_O2_NOLOGNORM	0x00000020      /* don't log normal traffic, only errors and retries */
 #define PR_O2_LOGERRORS	0x00000040      /* log errors and retries at level LOG_ERR */
+#define PR_O2_SMARTACC 	0x00000080      /* don't immediately ACK request after accept */
 
 /* This structure is used to apply fast weighted round robin on a server group */
 struct fwrr_group {