]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Allow error message URI to be customised via config/branding.h
authorMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2015 13:32:57 +0000 (13:32 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 11 Feb 2015 14:11:28 +0000 (14:11 +0000)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/config/branding.h
src/hci/strerror.c

index abb32612a72580a779d44e56139ad0d2f8a16378..4bd7e3cc786b77cd801b42f83444bb2d69317f6d 100644 (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 */
index 9356e9e0a987c9a763d5183b0c8135adf47abf39..4e97d957076edd525bafb56c7d259820a1e8afcc 100644 (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 );
        }