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 | } |