diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2012-06-11 02:06:11 +0200 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2012-06-11 02:06:11 +0200 |
| commit | 93c32f2dd2b9d7c06bc46be8adac704c08929da8 (patch) | |
| tree | a05060b2ac7f70d1069bb4d84ac1b9b3eb3c8b26 /util-linux | |
| parent | 605f2641d83f4294147bede9403a590a29a6674a (diff) | |
| download | busybox-w32-93c32f2dd2b9d7c06bc46be8adac704c08929da8.tar.gz busybox-w32-93c32f2dd2b9d7c06bc46be8adac704c08929da8.tar.bz2 busybox-w32-93c32f2dd2b9d7c06bc46be8adac704c08929da8.zip | |
rdate: code shrink
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux')
| -rw-r--r-- | util-linux/rdate.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/util-linux/rdate.c b/util-linux/rdate.c index 1f36d8f37..2ca585fec 100644 --- a/util-linux/rdate.c +++ b/util-linux/rdate.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* vi: set sw=4 ts=4: */ | 1 | /* vi: set sw=4 ts=4: */ |
| 2 | /* | 2 | /* |
| 3 | * The Rdate command will ask a time server for the RFC 868 time | 3 | * The Rdate command will ask a time server for the RFC 868 time |
| 4 | * and optionally set the system time. | 4 | * and optionally set the system time. |
| 5 | * | 5 | * |
| 6 | * by Sterling Huxley <sterling@europa.com> | 6 | * by Sterling Huxley <sterling@europa.com> |
| 7 | * | 7 | * |
| @@ -11,9 +11,9 @@ | |||
| 11 | //usage:#define rdate_trivial_usage | 11 | //usage:#define rdate_trivial_usage |
| 12 | //usage: "[-sp] HOST" | 12 | //usage: "[-sp] HOST" |
| 13 | //usage:#define rdate_full_usage "\n\n" | 13 | //usage:#define rdate_full_usage "\n\n" |
| 14 | //usage: "Get and possibly set the system date and time from a remote HOST\n" | 14 | //usage: "Get and possibly set the system date/time from a remote HOST\n" |
| 15 | //usage: "\n -s Set the system date and time (default)" | 15 | //usage: "\n -s Set the system date/time (default)" |
| 16 | //usage: "\n -p Print the date and time" | 16 | //usage: "\n -p Print the date/time" |
| 17 | 17 | ||
| 18 | #include "libbb.h" | 18 | #include "libbb.h" |
| 19 | 19 | ||
| @@ -35,15 +35,16 @@ static time_t askremotedate(const char *host) | |||
| 35 | 35 | ||
| 36 | fd = create_and_connect_stream_or_die(host, bb_lookup_port("time", "tcp", 37)); | 36 | fd = create_and_connect_stream_or_die(host, bb_lookup_port("time", "tcp", 37)); |
| 37 | 37 | ||
| 38 | if (safe_read(fd, (void *)&nett, 4) != 4) /* read time from server */ | 38 | if (safe_read(fd, &nett, 4) != 4) /* read time from server */ |
| 39 | bb_error_msg_and_die("%s did not send the complete time", host); | 39 | bb_error_msg_and_die("%s did not send the complete time", host); |
| 40 | close(fd); | 40 | if (ENABLE_FEATURE_CLEAN_UP) |
| 41 | close(fd); | ||
| 41 | 42 | ||
| 42 | /* convert from network byte order to local byte order. | 43 | /* Convert from network byte order to local byte order. |
| 43 | * RFC 868 time is the number of seconds | 44 | * RFC 868 time is the number of seconds |
| 44 | * since 00:00 (midnight) 1 January 1900 GMT | 45 | * since 00:00 (midnight) 1 January 1900 GMT |
| 45 | * the RFC 868 time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT | 46 | * the RFC 868 time 2,208,988,800 corresponds to 00:00 1 Jan 1970 GMT |
| 46 | * Subtract the RFC 868 time to get Linux epoch | 47 | * Subtract the RFC 868 time to get Linux epoch. |
| 47 | */ | 48 | */ |
| 48 | 49 | ||
| 49 | return ntohl(nett) - RFC_868_BIAS; | 50 | return ntohl(nett) - RFC_868_BIAS; |
| @@ -53,14 +54,14 @@ int rdate_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |||
| 53 | int rdate_main(int argc UNUSED_PARAM, char **argv) | 54 | int rdate_main(int argc UNUSED_PARAM, char **argv) |
| 54 | { | 55 | { |
| 55 | time_t remote_time; | 56 | time_t remote_time; |
| 56 | unsigned long flags; | 57 | unsigned flags; |
| 57 | 58 | ||
| 58 | opt_complementary = "-1"; | 59 | opt_complementary = "-1"; |
| 59 | flags = getopt32(argv, "sp"); | 60 | flags = getopt32(argv, "sp"); |
| 60 | 61 | ||
| 61 | remote_time = askremotedate(argv[optind]); | 62 | remote_time = askremotedate(argv[optind]); |
| 62 | 63 | ||
| 63 | if ((flags & 2) == 0) { | 64 | if (!(flags & 2)) { |
| 64 | time_t current_time; | 65 | time_t current_time; |
| 65 | 66 | ||
| 66 | time(¤t_time); | 67 | time(¤t_time); |
| @@ -71,7 +72,7 @@ int rdate_main(int argc UNUSED_PARAM, char **argv) | |||
| 71 | bb_perror_msg_and_die("can't set time of day"); | 72 | bb_perror_msg_and_die("can't set time of day"); |
| 72 | } | 73 | } |
| 73 | 74 | ||
| 74 | if ((flags & 1) == 0) | 75 | if ((flags & 2) || !(flags & 1)) |
| 75 | printf("%s", ctime(&remote_time)); | 76 | printf("%s", ctime(&remote_time)); |
| 76 | 77 | ||
| 77 | return EXIT_SUCCESS; | 78 | return EXIT_SUCCESS; |
