]> git.proxmox.com Git - qemu.git/blobdiff - slirp/sbuf.c
slirp: cleanup leftovers from misc.h
[qemu.git] / slirp / sbuf.c
index 5a1ccbfadfe6bd35145cad6cb7c289d77dda0f35..08ec2b4f44d0db2d0894cc6176a0923b5424a8ad 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #include <slirp.h>
+#include <qemu/main-loop.h>
 
 static void sbappendsb(struct sbuf *sb, struct mbuf *m);
 
@@ -18,6 +19,8 @@ sbfree(struct sbuf *sb)
 void
 sbdrop(struct sbuf *sb, int num)
 {
+    int limit = sb->sb_datalen / 2;
+
        /*
         * We can only drop how much we have
         * This should never succeed
@@ -29,6 +32,9 @@ sbdrop(struct sbuf *sb, int num)
        if(sb->sb_rptr >= sb->sb_data + sb->sb_datalen)
                sb->sb_rptr -= sb->sb_datalen;
 
+    if (sb->sb_cc < limit && sb->sb_cc + num >= limit) {
+        qemu_notify_event();
+    }
 }
 
 void