Index: arpwatch/Makefile.in
diff -u arpwatch/Makefile.in:1.1.1.1 arpwatch/Makefile.in:1.1.1.1.30.1
--- arpwatch/Makefile.in:1.1.1.1	Tue Apr 17 13:31:36 2001
+++ arpwatch/Makefile.in	Thu Aug 12 15:10:44 2004
@@ -65,7 +65,7 @@
 	@rm -f $@
 	$(CC) $(CFLAGS) -c $(srcdir)/$*.c
 
-CSRC =	db.c dns.c ec.c file.c intoa.c machdep.c util.c report.c setsignal.c
+CSRC =	db.c dns.c ec.c file.c intoa.c machdep.c util.c report.c localhost.c setsignal.c
 WSRC =	arpwatch.c
 SSRC =	arpsnmp.c
 GENSRC = version.c
@@ -77,7 +77,7 @@
 OBJ =	$(WSRC:.c=.o) $(SSRC:.c=.o) $(CSRC:.c=.o) $(GENSRC:.c=.o) @LIBOBJS@
 WOBJ =	$(WSRC:.c=.o) $(CSRC:.c=.o) $(GENSRC:.c=.o) @LIBOBJS@
 SOBJ =	$(SSRC:.c=.o) $(CSRC:.c=.o) $(GENSRC:.c=.o) @LIBOBJS@
-HDR =	arpwatch.h db.h dns.h ec.h file.h machdep.h report.h setsignal.h
+HDR =	arpwatch.h db.h dns.h ec.h file.h machdep.h report.h localhost.h setsignal.h
 
 TAGHDR = \
 	/usr/include/net/if.h \
Index: arpwatch/localhost.c
diff -u /dev/null arpwatch/localhost.c:1.1.2.1
--- /dev/null	Sat Aug 14 03:19:35 2004
+++ arpwatch/localhost.c	Fri Aug 13 01:51:30 2004
@@ -0,0 +1,70 @@
+/* A slightly more convenient wrapper for gethostname
+
+   Copyright (C) 1996 Free Software Foundation, Inc.
+
+   Written by Miles Bader <miles@gnu.ai.mit.edu>
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <unistd.h>
+#include <malloc.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#include "localhost.h"
+/* Return the name of the localhost.  This is just a wrapper for gethostname,
+   which takes care of allocating a big enough buffer, and caches the result
+   after the first call (so the result should be copied before modification).
+   If something goes wrong, 0 is returned, and errno set.  */
+char *
+localhost (void)
+{
+	static char *buf = 0;
+	static size_t buf_len = 0;
+	int myerror = 0;
+
+	if (! buf) {
+		do {
+			errno = 0;
+			if (buf) {
+				buf_len += buf_len;
+				buf = realloc (buf, buf_len);
+			} else {
+				buf_len = 128;        /* Initial guess */
+				buf = malloc (buf_len);
+			}
+			if (! buf) {
+				errno = ENOMEM;
+				return 0;
+			}
+		} while ( (
+			 	(myerror = gethostname(buf, buf_len)) == 0
+					&& !memchr (buf, '\0', buf_len))
+				|| errno == ENAMETOOLONG
+			);
+
+		if (myerror) {
+			/* gethostname failed, abort.  */
+			free (buf);
+			buf = "(unknown host)";
+		}
+	}
+	return buf;
+}
Index: arpwatch/localhost.h
diff -u /dev/null arpwatch/localhost.h:1.1.2.1
--- /dev/null	Sat Aug 14 03:19:35 2004
+++ arpwatch/localhost.h	Fri Aug 13 01:51:30 2004
@@ -0,0 +1 @@
+char * localhost(void);
Index: arpwatch/report.c
diff -u arpwatch/report.c:1.1.1.1 arpwatch/report.c:1.1.1.1.30.2
--- arpwatch/report.c:1.1.1.1	Tue Apr 17 13:31:37 2001
+++ arpwatch/report.c	Fri Aug 13 01:49:30 2004
@@ -67,6 +67,7 @@
 #include "report.h"
 #include "setsignal.h"
 #include "util.h"
+#include "localhost.h"
 
 #define PLURAL(n) ((n) == 1 || (n) == -1 ? "" : "s")
 
@@ -300,7 +301,7 @@
 			syslog(LOG_ERR, "unlink(%s): %m", tempfile);
 	}
 
-	(void)fprintf(f, "From: %s\n", watchee);
+	(void)fprintf(f, "From: arpwatch (Arpwatch %s)\n", localhost());
 	(void)fprintf(f, "To: %s\n", watcher);
 	hn = gethname(a);
 	if (!isdigit(*hn))
