diff options
| author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2007-01-11 16:50:23 +0000 |
|---|---|---|
| committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2007-01-11 16:50:23 +0000 |
| commit | 2aef1bcb59b97f647bf63b5025c069200f42ec97 (patch) | |
| tree | 369636a4a765a571e1c6a6ecf2a52ca0131cc90e /util-linux | |
| parent | a4c67f25b5e304a1b0666bdf1ae3d4c96cecc1e7 (diff) | |
| download | busybox-w32-2aef1bcb59b97f647bf63b5025c069200f42ec97.tar.gz busybox-w32-2aef1bcb59b97f647bf63b5025c069200f42ec97.tar.bz2 busybox-w32-2aef1bcb59b97f647bf63b5025c069200f42ec97.zip | |
ipv6-ization efforts continue. Few bugs are found,
unknown number likely introduced...
git-svn-id: svn://busybox.net/trunk/busybox@17250 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'util-linux')
| -rw-r--r-- | util-linux/rdate.c | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/util-linux/rdate.c b/util-linux/rdate.c index 12105953d..ccbf96966 100644 --- a/util-linux/rdate.c +++ b/util-linux/rdate.c | |||
| @@ -8,21 +8,15 @@ | |||
| 8 | * Licensed under GPL v2 or later, see file License for details. | 8 | * Licensed under GPL v2 or later, see file License for details. |
| 9 | */ | 9 | */ |
| 10 | 10 | ||
| 11 | #include <sys/types.h> | 11 | //#include <sys/socket.h> |
| 12 | #include <sys/socket.h> | 12 | //#include <netinet/in.h> |
| 13 | #include <netinet/in.h> | 13 | //#include <netdb.h> |
| 14 | #include <netdb.h> | 14 | //#include <signal.h> |
| 15 | #include <stdio.h> | ||
| 16 | #include <string.h> | ||
| 17 | #include <time.h> | ||
| 18 | #include <stdlib.h> | ||
| 19 | #include <unistd.h> | ||
| 20 | #include <signal.h> | ||
| 21 | 15 | ||
| 22 | #include "busybox.h" | 16 | #include "busybox.h" |
| 23 | 17 | ||
| 24 | 18 | ||
| 25 | static const int RFC_868_BIAS = 2208988800UL; | 19 | enum { RFC_868_BIAS = 2208988800UL }; |
| 26 | 20 | ||
| 27 | static void socket_timeout(int sig) | 21 | static void socket_timeout(int sig) |
| 28 | { | 22 | { |
| @@ -31,18 +25,14 @@ static void socket_timeout(int sig) | |||
| 31 | 25 | ||
| 32 | static time_t askremotedate(const char *host) | 26 | static time_t askremotedate(const char *host) |
| 33 | { | 27 | { |
| 34 | unsigned long nett; | 28 | uint32_t nett; |
| 35 | struct sockaddr_in s_in; | ||
| 36 | int fd; | 29 | int fd; |
| 37 | 30 | ||
| 38 | bb_lookup_host(&s_in, host); | ||
| 39 | s_in.sin_port = bb_lookup_port("time", "tcp", 37); | ||
| 40 | |||
| 41 | /* Add a timeout for dead or inaccessible servers */ | 31 | /* Add a timeout for dead or inaccessible servers */ |
| 42 | alarm(10); | 32 | alarm(10); |
| 43 | signal(SIGALRM, socket_timeout); | 33 | signal(SIGALRM, socket_timeout); |
| 44 | 34 | ||
| 45 | fd = xconnect_tcp_v4(&s_in); | 35 | fd = create_and_connect_stream_or_die(host, bb_lookup_port("time", "tcp", 37)); |
| 46 | 36 | ||
| 47 | if (safe_read(fd, (void *)&nett, 4) != 4) /* read time from server */ | 37 | if (safe_read(fd, (void *)&nett, 4) != 4) /* read time from server */ |
| 48 | bb_error_msg_and_die("%s did not send the complete time", host); | 38 | bb_error_msg_and_die("%s did not send the complete time", host); |
| @@ -50,9 +40,9 @@ static time_t askremotedate(const char *host) | |||
| 50 | 40 | ||
| 51 | /* convert from network byte order to local byte order. | 41 | /* convert from network byte order to local byte order. |
| 52 | * RFC 868 time is the number of seconds | 42 | * RFC 868 time is the number of seconds |
| 53 | * since 00:00 (midnight) 1 January 1900 GMT | 43 | * since 00:00 (midnight) 1 January 1900 GMT |
| 54 | * the RFC 868 time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT | 44 | * the RFC 868 time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT |
| 55 | * Subtract the RFC 868 time to get Linux epoch | 45 | * Subtract the RFC 868 time to get Linux epoch |
| 56 | */ | 46 | */ |
| 57 | 47 | ||
| 58 | return ntohl(nett) - RFC_868_BIAS; | 48 | return ntohl(nett) - RFC_868_BIAS; |
