Commit 5a6d88157420d7f10b46270edabbeed11ee4ebe5
1 parent
b8e8af38
net: factor tap_read_packet() out of tap_send()
Move portability clutter out into its own function. Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Showing
1 changed file
with
19 additions
and
9 deletions
net.c
| @@ -951,21 +951,31 @@ static void tap_receive(void *opaque, const uint8_t *buf, int size) | @@ -951,21 +951,31 @@ static void tap_receive(void *opaque, const uint8_t *buf, int size) | ||
| 951 | } | 951 | } |
| 952 | } | 952 | } |
| 953 | 953 | ||
| 954 | -static void tap_send(void *opaque) | ||
| 955 | -{ | ||
| 956 | - TAPState *s = opaque; | ||
| 957 | - uint8_t buf[4096]; | ||
| 958 | - int size; | ||
| 959 | - | ||
| 960 | #ifdef __sun__ | 954 | #ifdef __sun__ |
| 955 | +static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen) | ||
| 956 | +{ | ||
| 961 | struct strbuf sbuf; | 957 | struct strbuf sbuf; |
| 962 | int f = 0; | 958 | int f = 0; |
| 963 | - sbuf.maxlen = sizeof(buf); | 959 | + |
| 960 | + sbuf.maxlen = maxlen; | ||
| 964 | sbuf.buf = (char *)buf; | 961 | sbuf.buf = (char *)buf; |
| 965 | - size = getmsg(s->fd, NULL, &sbuf, &f) >=0 ? sbuf.len : -1; | 962 | + |
| 963 | + return getmsg(tapfd, NULL, &sbuf, &f) >= 0 ? sbuf.len : -1; | ||
| 964 | +} | ||
| 966 | #else | 965 | #else |
| 967 | - size = read(s->fd, buf, sizeof(buf)); | 966 | +static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen) |
| 967 | +{ | ||
| 968 | + return read(tapfd, buf, maxlen); | ||
| 969 | +} | ||
| 968 | #endif | 970 | #endif |
| 971 | + | ||
| 972 | +static void tap_send(void *opaque) | ||
| 973 | +{ | ||
| 974 | + TAPState *s = opaque; | ||
| 975 | + uint8_t buf[4096]; | ||
| 976 | + int size; | ||
| 977 | + | ||
| 978 | + size = tap_read_packet(s->fd, buf, sizeof(buf)); | ||
| 969 | if (size > 0) { | 979 | if (size > 0) { |
| 970 | qemu_send_packet(s->vc, buf, size); | 980 | qemu_send_packet(s->vc, buf, size); |
| 971 | } | 981 | } |