[MEDIUM] stream interface: add the ->shutw method as well as in and out buffers
Those entries were really needed for cleaner and better code. Using them
has permitted to automatically close a file descriptor during a shut write,
reducing by 20% the number of calls to process_session() and derived
functions.
Process_session() does not need to know the file descriptor anymore, though
it still remains very complicated due to the special case for the connect
mode.
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index 2525f12..f976565 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -24,6 +24,7 @@
#include <stdlib.h>
+#include <types/buffers.h>
#include <common/config.h>
/* A stream interface must have its own errors independantly of the buffer's,
@@ -60,6 +61,8 @@
unsigned int prev_state;/* SI_ST*, copy of previous state */
void *owner; /* generally a (struct task*) */
int fd; /* file descriptor for a stream driver when known */
+ int (*shutw)(struct stream_interface *); /* shutw function */
+ struct buffer *ib, *ob; /* input and output buffers */
unsigned int err_type; /* first error detected, one of SI_ET_* */
void *err_loc; /* commonly the server, NULL when SI_ET_NONE */
};