philipp / rpms / dhcp

Forked from rpms/dhcp 4 years ago
Clone
Blob Blame History Raw
diff -up dhcp-4.3.5/omapip/errwarn.c.errwarn dhcp-4.3.5/omapip/errwarn.c
--- dhcp-4.3.5/omapip/errwarn.c.errwarn	2016-09-27 21:16:50.000000000 +0200
+++ dhcp-4.3.5/omapip/errwarn.c	2016-11-29 19:44:03.515031147 +0100
@@ -49,6 +49,41 @@ void (*log_cleanup) (void);
 static char mbuf [CVT_BUF_MAX + 1];
 static char fbuf [CVT_BUF_MAX + 1];
 
+// get BUG_REPORT_URL from /etc/os-release
+char * bug_report_url(void) {
+    FILE * file = fopen("/etc/os-release", "r");
+    size_t len;
+    char * line = NULL;
+    char * url = NULL;
+    size_t url_len = 256;
+
+    url = (char *) malloc(url_len * sizeof(char));
+    strcpy(url, "https://bugzilla.redhat.com/");
+
+    if (!file)
+        return url;
+
+    while ((getline(&line, &len, file)) != -1) {
+        if (strstr(line, "BUG_REPORT_URL") != NULL) {
+            char * start = strchr(line, '=');
+            char * rquotes = strrchr(line, '"');
+
+            if (rquotes != NULL) {
+                *rquotes = '\0';
+                strncpy(url, start+2, url_len);
+            } else {
+                strncpy(url, start+1, url_len);
+            }
+            url[url_len-1] = '\0';
+            fclose(file);
+            return url;
+        }
+    }
+    fclose(file);
+    return url;
+}
+
+
 /* Log an error message, then exit... */
 
 void log_fatal (const char * fmt, ... )
@@ -75,11 +110,13 @@ void log_fatal (const char * fmt, ... )
   }
 
   log_error ("%s", "");
-  log_error ("If you think you have received this message due to a bug rather");
-  log_error ("than a configuration issue please read the section on submitting");
-  log_error ("bugs on either our web page at www.isc.org or in the README file");
-  log_error ("before submitting a bug.  These pages explain the proper");
-  log_error ("process and the information we find helpful for debugging.");
+  log_error ("This version of ISC DHCP is based on the release available");
+  log_error ("on ftp.isc.org. Features have been added and other changes");
+  log_error ("have been made to the base software release in order to make");
+  log_error ("it work better with this distribution.");
+  log_error ("%s", "");
+  log_error ("Please report issues with this software via: ");
+  log_error ("%s", bug_report_url());
   log_error ("%s", "");
   log_error ("exiting.");