[ping] Allow termination after a specified number of packets
authorMichael Brown <mcb30@ipxe.org>
Thu, 23 Oct 2014 15:30:58 +0000 (16:30 +0100)
committerMichael Brown <mcb30@ipxe.org>
Thu, 23 Oct 2014 15:39:42 +0000 (16:39 +0100)
commit1c34ca70d199ceee9d663986e377b7f74c826d0c
tree31fd9def4bbf41ed099b33d3d86bb03134a2a41f
parentd1afe731eae1f0f97238de5213df1610d0ccf4ed
[ping] Allow termination after a specified number of packets

Add the "-c <count>" option to the "ping" command, allowing for
automatic termination after a specified number of packets.

When a number of packets is specified:

  - if a serious error (i.e. length mismatch or content mismatch)
    occurs, then the ping will be immediately terminated with the relevant
    status code;

  - if at least one response is received successfully, and all errors
    are non-serious (i.e. timeouts or out-of-sequence responses), then
    the ping will be terminated after the final response (or timeout)
    with a success status;

  - if no responses are received successfully, then the ping will be
    terminated after the final timeout with ETIMEDOUT.

If no number of packets is specified, then the ping will continue
until manually interrupted.

Originally-implemented-by: Cedric Levasseur <cyr-ius@ipocus.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/core/pinger.c
src/hci/commands/ping_cmd.c
src/include/ipxe/pinger.h
src/include/usr/pingmgmt.h
src/usr/pingmgmt.c