Index: stand/libsa/tftp.c =================================================================== --- stand/libsa/tftp.c +++ stand/libsa/tftp.c @@ -55,6 +55,7 @@ #include +#include #include "stand.h" #include "net.h" #include "netif.h" @@ -765,3 +766,36 @@ #endif return (0); } + +#ifdef TFTP_DEBUG +static int +command_tftp(int argc, char *argv[]) +{ + int fd; + time_t start, end; + char buf[TFTP_REQUESTED_BLKSIZE]; + ssize_t rv, count = 0; + + if (argc != 2) { + snprintf(command_errbuf, sizeof(command_errbuf), + "Usage: tftp "); + return (CMD_ERROR); + } + + start = getsecs(); + if ((fd = open(argv[1], O_RDONLY)) < 0) { + snprintf(command_errbuf, sizeof(command_errbuf), + "can't open '%s'", argv[1]); + return (CMD_ERROR); + } + while ((rv = read(fd, buf, sizeof(buf))) > 0) + count += rv; + end = getsecs(); + + printf("Received %zd bytes during %jd seconds\n", count, (intmax_t)end - start); + close(fd); + return (CMD_OK); +} + +COMMAND_SET(tftp, "tftp", "tftp debug", command_tftp); +#endif