| .. | .. |
|---|
| 214 | 214 | |
|---|
| 215 | 215 | static int recv_msg(int fd, char *buf, int len, int *gso_size) |
|---|
| 216 | 216 | { |
|---|
| 217 | | - char control[CMSG_SPACE(sizeof(uint16_t))] = {0}; |
|---|
| 217 | + char control[CMSG_SPACE(sizeof(int))] = {0}; |
|---|
| 218 | 218 | struct msghdr msg = {0}; |
|---|
| 219 | 219 | struct iovec iov = {0}; |
|---|
| 220 | 220 | struct cmsghdr *cmsg; |
|---|
| 221 | | - uint16_t *gsosizeptr; |
|---|
| 222 | 221 | int ret; |
|---|
| 223 | 222 | |
|---|
| 224 | 223 | iov.iov_base = buf; |
|---|
| .. | .. |
|---|
| 237 | 236 | cmsg = CMSG_NXTHDR(&msg, cmsg)) { |
|---|
| 238 | 237 | if (cmsg->cmsg_level == SOL_UDP |
|---|
| 239 | 238 | && cmsg->cmsg_type == UDP_GRO) { |
|---|
| 240 | | - gsosizeptr = (uint16_t *) CMSG_DATA(cmsg); |
|---|
| 241 | | - *gso_size = *gsosizeptr; |
|---|
| 239 | + *gso_size = *(int *)CMSG_DATA(cmsg); |
|---|
| 242 | 240 | break; |
|---|
| 243 | 241 | } |
|---|
| 244 | 242 | } |
|---|
| .. | .. |
|---|
| 250 | 248 | static void do_flush_udp(int fd) |
|---|
| 251 | 249 | { |
|---|
| 252 | 250 | static char rbuf[ETH_MAX_MTU]; |
|---|
| 253 | | - int ret, len, gso_size, budget = 256; |
|---|
| 251 | + int ret, len, gso_size = 0, budget = 256; |
|---|
| 254 | 252 | |
|---|
| 255 | 253 | len = cfg_read_all ? sizeof(rbuf) : 0; |
|---|
| 256 | 254 | while (budget--) { |
|---|
| .. | .. |
|---|
| 336 | 334 | cfg_verify = true; |
|---|
| 337 | 335 | cfg_read_all = true; |
|---|
| 338 | 336 | break; |
|---|
| 337 | + default: |
|---|
| 338 | + exit(1); |
|---|
| 339 | 339 | } |
|---|
| 340 | 340 | } |
|---|
| 341 | 341 | |
|---|