net_native: add async event for remote shutdown.
authorBrett Gordon <beretta42@gmail.com>
Tue, 30 Aug 2016 15:33:57 +0000 (11:33 -0400)
committerBrett Gordon <beretta42@gmail.com>
Tue, 30 Aug 2016 15:33:57 +0000 (11:33 -0400)
Kernel/dev/net/net_native.c
Kernel/include/net_native.h

index 62ea5aa..16ac86b 100644 (file)
@@ -81,6 +81,12 @@ int netdev_write(void)
                s->s_iflag |= SI_DATA;
                wakeup(&s->s_iflag);
                break;
+               /* Remote closed connection */
+       case NE_SHUTR:
+               s->s_iflag |= SI_SHUTR;
+               sd->err = ne.ret;
+               wakeup_all(s);
+               break;
        default:
                kprintf("netbad %d\n", ne.event);
                udata.u_error = EOPNOTSUPP;
index 408f14f..3d9fed9 100644 (file)
@@ -50,6 +50,7 @@ struct sockmsg {
 #define NE_INIT                4
 #define NE_ROOM                5
 #define NE_DATA                6
+#define NE_SHUTR        7
 
 struct netevent {
        uint8_t socket;
@@ -64,4 +65,10 @@ struct netevent {
 
 #define NET_INIT       0x4401
 
+int netdev_write(void);
+int netdev_read(uint8_t flag);
+int netdev_ioctl(uarg_t request, char *data);
+int netdev_close(void);
+
+
 #endif