diff options
Diffstat (limited to 'net-android.c')
-rw-r--r-- | net-android.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/net-android.c b/net-android.c index d208cd6..8649b82 100644 --- a/net-android.c +++ b/net-android.c @@ -750,7 +750,13 @@ slirp_init_shapers( void ) int slirp_can_output(void) { +#ifdef CONFIG_SHAPER + return !slirp_vc || + ( netshaper_can_send(slirp_shaper_out) && + qemu_can_send_packet(slirp_vc) ); +#else return !slirp_vc || qemu_can_send_packet(slirp_vc); +#endif } void slirp_output(const uint8_t *pkt, int pkt_len) @@ -764,7 +770,12 @@ void slirp_output(const uint8_t *pkt, int pkt_len) if (!slirp_vc) return; + +#ifdef CONFIG_SHAPER + netshaper_send(slirp_shaper_out, (void*)pkt, pkt_len); +#else qemu_send_packet(slirp_vc, pkt, pkt_len); +#endif } int slirp_is_inited(void) @@ -781,7 +792,11 @@ static ssize_t slirp_receive(VLANClientState *vc, const uint8_t *buf, size_t siz if (qemu_tcpdump_active) qemu_tcpdump_packet(buf, size); +#ifdef CONFIG_SHAPER + netshaper_send(slirp_shaper_in, (char*)buf, size); +#else slirp_input(buf, size); +#endif return size; } |