svn commit: r247697 - stable/8/usr.sbin/sysinstall
Devin Teske
dteske at FreeBSD.org
Sun Mar 3 09:10:00 UTC 2013
Author: dteske
Date: Sun Mar 3 09:09:59 2013
New Revision: 247697
URL: http://svnweb.freebsd.org/changeset/base/247697
Log:
MFS 9->8 r209782:
Add support for remote logging to syslogd via an install.cfg variable.
Approved by: cperciva
Modified:
stable/8/usr.sbin/sysinstall/install.cfg
stable/8/usr.sbin/sysinstall/msg.c
stable/8/usr.sbin/sysinstall/sysinstall.h
Modified: stable/8/usr.sbin/sysinstall/install.cfg
==============================================================================
--- stable/8/usr.sbin/sysinstall/install.cfg Sun Mar 3 09:09:35 2013 (r247696)
+++ stable/8/usr.sbin/sysinstall/install.cfg Sun Mar 3 09:09:59 2013 (r247697)
@@ -17,6 +17,9 @@ ipaddr=204.216.27.230
netmask=255.255.255.240
################################
+# Log to a remote syslogd server
+syslogdServer=10.0.1.1
+
################################
# Which installation device to use - ftp is pointed directly at my local
# machine and the installation device is my WD8013 ethernet interface.
Modified: stable/8/usr.sbin/sysinstall/msg.c
==============================================================================
--- stable/8/usr.sbin/sysinstall/msg.c Sun Mar 3 09:09:35 2013 (r247696)
+++ stable/8/usr.sbin/sysinstall/msg.c Sun Mar 3 09:09:59 2013 (r247697)
@@ -34,10 +34,18 @@
*
*/
-#include "sysinstall.h"
-#include <stdarg.h>
#include <sys/ioctl.h>
#include <sys/consio.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include <netinet/in.h>
+#include <netdb.h>
+
+#include <stdarg.h>
+#include <syslog.h>
+
+#include "sysinstall.h"
Boolean
isDebug(void)
@@ -47,6 +55,50 @@ isDebug(void)
return (cp = variable_get(VAR_DEBUG)) && strcmp(cp, "no");
}
+static Boolean
+isNetworkUp(void)
+{
+ if (!(RunningAsInit) ||
+ (variable_check("NETWORK_CONFIGURED=NO")) != TRUE) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+void
+msgSyslog(const char *errstr)
+{
+ struct sockaddr_in server;
+ struct hostent *hp;
+ char *host, *line;
+ int sock;
+
+ if (!isNetworkUp())
+ return;
+
+ if (!(host = variable_get(VAR_SYSLOG_SERVER)))
+ return;
+
+ if (!(hp = gethostbyname2(host, AF_INET)))
+ return;
+
+ if (!(sock = socket(AF_INET, SOCK_DGRAM, 0)))
+ return;
+
+ bzero(&server, sizeof(struct sockaddr_in));
+ server.sin_family = AF_INET;
+ server.sin_port = htons(514);
+ bcopy((char *)hp->h_addr, (char *)&server.sin_addr, hp->h_length);
+
+ asprintf(&line, "<%d>%s", LOG_NOTICE, errstr);
+ sendto(sock, line, strlen(line), 0, (struct sockaddr *)&server,
+ sizeof(struct sockaddr_in));
+
+ close(sock);
+ free(line);
+}
+
/* Whack up an informational message on the status line, in stand-out */
void
msgYap(char *fmt, ...)
@@ -99,6 +151,8 @@ msgInfo(char *fmt, ...)
attrset(attrs);
move(StatusLine, 79);
refresh();
+
+ msgSyslog(errstr);
}
/* Whack up a warning on the status line */
@@ -120,8 +174,15 @@ msgWarn(char *fmt, ...)
mvaddstr(StatusLine, 0, errstr);
attrset(attrs);
refresh();
- if (OnVTY && isDebug())
- msgDebug("Warning message `%s'\n", errstr);
+
+ /* we don't want this hitting syslog twice */
+ if (isDebug()) {
+ if (OnVTY)
+ msgDebug("Warning message `%s'\n", errstr);
+ else
+ msgSyslog(errstr);
+ }
+
}
/* Whack up an error on the status line */
@@ -143,8 +204,14 @@ msgError(char *fmt, ...)
mvaddstr(StatusLine, 0, errstr);
attrset(attrs);
refresh();
- if (OnVTY && isDebug())
- msgDebug("Error message `%s'\n", errstr);
+
+ /* we don't want this hitting syslog twice */
+ if (isDebug()) {
+ if (OnVTY)
+ msgDebug("Error message `%s'\n", errstr);
+ else
+ msgSyslog(errstr);
+ }
}
/* Whack up a fatal error on the status line */
@@ -174,6 +241,8 @@ msgFatal(char *fmt, ...)
refresh();
if (OnVTY)
msgDebug("Fatal error `%s'!\n", errstr);
+ else
+ msgSyslog(errstr);
getch();
systemShutdown(1);
}
@@ -316,6 +385,9 @@ msgDebug(char *fmt, ...)
va_start(args, fmt);
vsnprintf((char *)(dbg + strlen(dbg)), FILENAME_MAX, fmt, args);
va_end(args);
+
+ msgSyslog(dbg);
+
write(DebugFD, dbg, strlen(dbg));
}
Modified: stable/8/usr.sbin/sysinstall/sysinstall.h
==============================================================================
--- stable/8/usr.sbin/sysinstall/sysinstall.h Sun Mar 3 09:09:35 2013 (r247696)
+++ stable/8/usr.sbin/sysinstall/sysinstall.h Sun Mar 3 09:09:59 2013 (r247697)
@@ -183,6 +183,7 @@
#define VAR_SERIAL_SPEED "serialSpeed"
#define VAR_SLOW_ETHER "slowEthernetCard"
#define VAR_SWAP_SIZE "swapSize"
+#define VAR_SYSLOG_SERVER "syslogdServer"
#define VAR_TRY_DHCP "tryDHCP"
#define VAR_TRY_RTSOL "tryRTSOL"
#define VAR_UFS_PATH "ufs"
More information about the svn-src-stable
mailing list