A nice patch from Larry Doolittle that adds -Wshadow and
cleans up most of the now-revealed problems.
diff --git a/rdate.c b/rdate.c
index 5f31282..ead1e7c 100644
--- a/rdate.c
+++ b/rdate.c
@@ -40,7 +40,7 @@
 static time_t askremotedate(const char *host)
 {
 	struct hostent *h;
-	struct sockaddr_in sin;
+	struct sockaddr_in s_in;
 	struct servent *tserv;
 	unsigned long int nett, localt;
 	int fd;
@@ -54,11 +54,11 @@
 	if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)    /* get net connection */
 		perror_msg_and_die("%s", "socket");
 
-	memcpy(&sin.sin_addr, h->h_addr, sizeof(sin.sin_addr));
-	sin.sin_port= tserv->s_port;
-	sin.sin_family = AF_INET;
+	memcpy(&s_in.sin_addr, h->h_addr, sizeof(s_in.sin_addr));
+	s_in.sin_port= tserv->s_port;
+	s_in.sin_family = AF_INET;
 
-	if (connect(fd, (struct sockaddr *)&sin, sizeof(sin)) < 0)      /* connect to time server */
+	if (connect(fd, (struct sockaddr *)&s_in, sizeof(s_in)) < 0)      /* connect to time server */
 		perror_msg_and_die("%s", host);
 
 	if (read(fd, (void *)&nett, 4) != 4)    /* read time from server */
@@ -79,7 +79,7 @@
 
 int rdate_main(int argc, char **argv)
 {
-	time_t time;
+	time_t remote_time;
 	int opt;
 	int setdate = 0;
 	int printdate= 0;
@@ -111,15 +111,15 @@
 	if (optind == argc)
 		show_usage();
 
-	time = askremotedate(argv[optind]);
+	remote_time = askremotedate(argv[optind]);
 
 	if (setdate) {
-		if (stime(&time) < 0)
+		if (stime(&remote_time) < 0)
 			perror_msg_and_die("Could not set time of day");
 	}
 
 	if (printdate)
-		printf("%s", ctime(&time));
+		printf("%s", ctime(&remote_time));
 
 	return EXIT_SUCCESS;
 }