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/rdate.c | |
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/rdate.c')
-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; |