david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[build] Allow error message URI to be customised via config/branding.h

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2015-02-11 13:32:57 +00:00
parent e1ce15ec3c
commit eac445b650
2 changed files with 48 additions and 2 deletions

View File

@ -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 */

View File

@ -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 );
}