From: Lubomir Rintel Date: Sun, 5 Aug 2012 14:33:20 +0000 (+0200) Subject: inet: Reply to TASK messages even if we're waiting for STAT reply X-Git-Tag: v3.3.0~803 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/migration-4to9?a=commitdiff_plain;h=4f52c9ea2e16179eead10a306843f181232a2be7;p=minix.git inet: Reply to TASK messages even if we're waiting for STAT reply As they can come anytime upon receipt of interrupt by the ethernet driver. This is the same thing as is done for CONF replies. A simple test case would be the following via ssh connection: while getaddr; do :; done Change-Id: I68f4403360b3eefe67fc602c4855ca1abd649475 --- diff --git a/servers/inet/mnx_eth.c b/servers/inet/mnx_eth.c index d3967eb92..1625b4fb6 100644 --- a/servers/inet/mnx_eth.c +++ b/servers/inet/mnx_eth.c @@ -277,6 +277,17 @@ void eth_rec(message *m) } if (loc_port->etp_osdep.etp_state == OEPS_GETSTAT_SENT) { + if (m_type == DL_TASK_REPLY) + { + flags= m->DL_FLAGS; + + if (flags & DL_PACK_SEND) + write_int(loc_port); + if (flags & DL_PACK_RECV) + read_int(loc_port, m->DL_COUNT); + return; + } + if (m_type != DL_STAT_REPLY) { printf(