mirror of https://github.com/ipxe/ipxe.git
[build] Allow error message URI to be customised via config/branding.h
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/34/head
parent
e1ce15ec3c
commit
eac445b650
|
@ -28,6 +28,51 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
|||
#define PRODUCT_SHORT_NAME "iPXE"
|
||||
#define PRODUCT_URI "http://ipxe.org"
|
||||
|
||||
/*
|
||||
* Error messages
|
||||
*
|
||||
* iPXE error messages comprise a summary error message
|
||||
* (e.g. "Permission denied") and a 32-bit error number. This number
|
||||
* is incorporated into an error URI such as
|
||||
*
|
||||
* "No such file or directory (http://ipxe.org/2d0c613b)"
|
||||
*
|
||||
* or
|
||||
*
|
||||
* "Operation not supported (http://ipxe.org/3c092003)"
|
||||
*
|
||||
* Users may browse to the URI within the error message, which is
|
||||
* provided by a database running on the iPXE web site
|
||||
* (http://ipxe.org). This database provides details for all possible
|
||||
* errors generated by iPXE, including:
|
||||
*
|
||||
* - the detailed error message (e.g. "Not an OCSP signing
|
||||
* certificate") to complement the summary message (e.g. "Permission
|
||||
* denied") which is compiled into the iPXE binary.
|
||||
*
|
||||
* - an instruction to the user to upgrade, if the error cannot be
|
||||
* generated by the latest version of iPXE.
|
||||
*
|
||||
* - hints on how to fix the error (e.g. "This error indicates that
|
||||
* the file was not found on the TFTP server. Check that you can
|
||||
* retrieve the file using an alternative TFTP client, such as
|
||||
* tftp-hpa on Linux.")
|
||||
*
|
||||
* - details of which source file within the iPXE codebase generated
|
||||
* the error.
|
||||
*
|
||||
* - a direct link to the line(s) of code which generated the error.
|
||||
*
|
||||
* If you have a customer support team and would like your customers
|
||||
* to contact your support team for all problems, instead of using the
|
||||
* existing support infrastructure provided by http://ipxe.org, then
|
||||
* you may define a custom URI to be included within error messages.
|
||||
*
|
||||
* Note that the custom URI is a printf() format string which must
|
||||
* include a format specifier for the 32-bit error number.
|
||||
*/
|
||||
#define PRODUCT_ERROR_URI "http://ipxe.org/%08x"
|
||||
|
||||
#include <config/local/branding.h>
|
||||
|
||||
#endif /* CONFIG_BRANDING_H */
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <ipxe/errortab.h>
|
||||
#include <config/branding.h>
|
||||
|
||||
/** @file
|
||||
*
|
||||
|
@ -88,11 +89,11 @@ const char * strerror ( int errno ) {
|
|||
/* Construct the error message */
|
||||
if ( errortab ) {
|
||||
snprintf ( errbuf, sizeof ( errbuf ),
|
||||
"%s (http://ipxe.org/%08x)",
|
||||
"%s (" PRODUCT_ERROR_URI ")",
|
||||
errortab->text, errno );
|
||||
} else {
|
||||
snprintf ( errbuf, sizeof ( errbuf ),
|
||||
"Error %#08x (http://ipxe.org/%08x)",
|
||||
"Error %#08x (" PRODUCT_ERROR_URI ")",
|
||||
errno, errno );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue