MEDIUM: stream-int: split the shutr/shutw functions between applet and conn
These functions induce a lot of ifs everywhere because they consider two
different cases, one which is where the connection exists and has a file
descriptor, and the other one which is the default case where at most an
applet has to be notified.
Let's have them in si_ops and automatically decide which one to use.
The connection shutdown sequence has been slightly simplified, and we
now clear the flags at the end.
Also we remove SHUTR_NOW after a shutw with nolinger, as it's cleaner
not to keep it.
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index 6748fbf..257a5d6 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -85,6 +85,8 @@
void (*update)(struct stream_interface *); /* I/O update function */
void (*chk_rcv)(struct stream_interface *); /* chk_rcv function */
void (*chk_snd)(struct stream_interface *); /* chk_snd function */
+ int (*shutr)(struct stream_interface *); /* shut read function */
+ int (*shutw)(struct stream_interface *); /* shut write function */
};
/* A stream interface has 3 parts :