[tftp] Add error table entry for TFTP "file not found" error code

Add an abbreviated "Not found" error message for a TFTP "file not
found" error code, so that any automatic attempt to download a
non-existent autoexec.ipxe script produces only a minimal error
message.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1130/merge
Michael Brown 2024-03-29 12:38:09 +00:00
parent 43deab89c3
commit afae881782
1 changed files with 10 additions and 1 deletions

View File

@ -44,6 +44,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <ipxe/dhcp.h>
#include <ipxe/uri.h>
#include <ipxe/profile.h>
#include <ipxe/errortab.h>
#include <ipxe/tftp.h>
/** @file
@ -76,6 +77,9 @@ FEATURE ( FEATURE_PROTOCOL, "TFTP", DHCP_EB_FEATURE_TFTP, 1 );
#define EINVAL_MC_INVALID_PORT __einfo_error ( EINFO_EINVAL_MC_INVALID_PORT )
#define EINFO_EINVAL_MC_INVALID_PORT __einfo_uniqify \
( EINFO_EINVAL, 0x07, "Invalid multicast port" )
#define ENOENT_NOT_FOUND __einfo_error ( EINFO_ENOENT_NOT_FOUND )
#define EINFO_ENOENT_NOT_FOUND __einfo_uniqify \
( EINFO_ENOENT, 0x01, "Not found" )
/**
* A TFTP request
@ -167,6 +171,11 @@ static struct profiler tftp_client_profiler __profiler =
static struct profiler tftp_server_profiler __profiler =
{ .name = "tftp.server" };
/** Human-readable error messages */
struct errortab tftp_errors[] __errortab = {
__einfo_errortab ( EINFO_ENOENT_NOT_FOUND ),
};
/**
* Free TFTP request
*
@ -872,7 +881,7 @@ static int tftp_rx_data ( struct tftp_request *tftp,
*/
static int tftp_errcode_to_rc ( unsigned int errcode ) {
switch ( errcode ) {
case TFTP_ERR_FILE_NOT_FOUND: return -ENOENT;
case TFTP_ERR_FILE_NOT_FOUND: return -ENOENT_NOT_FOUND;
case TFTP_ERR_ACCESS_DENIED: return -EACCES;
case TFTP_ERR_ILLEGAL_OP: return -ENOTTY;
default: return -ENOTSUP;