Commit 5a6d88157420d7f10b46270edabbeed11ee4ebe5

Authored by Mark McLoughlin
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
... ... @@ -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 954 #ifdef __sun__
  955 +static ssize_t tap_read_packet(int tapfd, uint8_t *buf, int maxlen)
  956 +{
961 957 struct strbuf sbuf;
962 958 int f = 0;
963   - sbuf.maxlen = sizeof(buf);
  959 +
  960 + sbuf.maxlen = maxlen;
964 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 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 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 979 if (size > 0) {
970 980 qemu_send_packet(s->vc, buf, size);
971 981 }
... ...