[23561] in Source-Commits

home help back first fref pref prev next nref lref last post

/svn/athena r23202 - trunk/athena/etc/gettime

daemon@ATHENA.MIT.EDU (rbasch@MIT.EDU)
Fri Oct 10 17:37:50 2008

Date: Fri, 10 Oct 2008 17:37:20 -0400 (EDT)
From: rbasch@MIT.EDU
Message-Id: <200810102137.RAA23064@drugstore.mit.edu>
To: source-commits@MIT.EDU
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Author: rbasch
Date: 2008-10-10 17:37:19 -0400 (Fri, 10 Oct 2008)
New Revision: 23202

Modified:
   trunk/athena/etc/gettime/gettime.c
Log:
In gettime:
  * Fix for 64-bit systems, where a time_t is 64 bits.


Modified: trunk/athena/etc/gettime/gettime.c
===================================================================
--- trunk/athena/etc/gettime/gettime.c	2008-10-07 22:54:23 UTC (rev 23201)
+++ trunk/athena/etc/gettime/gettime.c	2008-10-10 21:37:19 UTC (rev 23202)
@@ -47,7 +47,7 @@
   struct hostent *host_info = NULL;
   struct sockaddr_in time_address;
   char *time_hostname;
-  unsigned char buffer[20];
+  uint32_t rfc868_time;
   int tries, time_socket, result;
   fd_set read_set;
   struct timeval timeout, current_time;
@@ -155,7 +155,7 @@
   for (tries = 0; tries < MAX_TRIES; tries++)
     {
       /* Just send an empty packet. */
-      send(time_socket, buffer, 0, 0);
+      send(time_socket, NULL, 0, 0);
 
       /* Wait a little while for a reply. */
       FD_SET(time_socket, &read_set);
@@ -173,7 +173,7 @@
 	}
 
       /* There must be data available. */
-      result = recv(time_socket, buffer, sizeof(buffer), 0);
+      result = recv(time_socket, &rfc868_time, sizeof(rfc868_time), 0);
       if (result < 0)
 	{
 	  fprintf(stderr, "%s: receive failed: %s\n", program_name,
@@ -198,9 +198,8 @@
     }
 
   /* Convert RFC868 time to Unix time, and print it. */
-  now = (time_t)(((buffer[0] << 24) | (buffer[1] << 16) |
-		  (buffer[2] << 8) | buffer[3])
-		 - UNIX_OFFSET_TO_1900);
+  now = (time_t)(ntohl(rfc868_time) - UNIX_OFFSET_TO_1900);
+
   fprintf(stdout, "%s", ctime(&now));
 
   /* Set the time if requested. */


home help back first fref pref prev next nref lref last post