version 1.19, 2016/10/27 04:37:47 |
version 1.20, 2017/07/20 10:26:27 |
|
|
return 1; |
return 1; |
} |
} |
while (f->wtodo > 0) { |
while (f->wtodo > 0) { |
|
/* |
|
* f->slot and f->midi are set by sock_hello(), so |
|
* count is always properly initialized |
|
*/ |
if (f->slot) |
if (f->slot) |
data = abuf_rgetblk(&f->slot->sub.buf, &count); |
data = abuf_rgetblk(&f->slot->sub.buf, &count); |
else if (f->midi) |
else if (f->midi) |
|
|
case SOCK_WMSG: |
case SOCK_WMSG: |
if (!sock_wmsg(f)) |
if (!sock_wmsg(f)) |
return 0; |
return 0; |
|
/* |
|
* f->wmsg is either build by sock_buildmsg() or |
|
* copied from f->rmsg (in the SOCK_RRET state), so |
|
* it's safe. |
|
*/ |
if (ntohl(f->wmsg.cmd) != AMSG_DATA) { |
if (ntohl(f->wmsg.cmd) != AMSG_DATA) { |
f->wstate = SOCK_WIDLE; |
f->wstate = SOCK_WIDLE; |
f->wtodo = 0xdeadbeef; |
f->wtodo = 0xdeadbeef; |