aboutsummaryrefslogtreecommitdiff
path: root/networking/hostname.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-07-21 23:05:26 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-07-21 23:05:26 +0000
commit5415c856eaccd1bc5d064022770a288f43b2e94f (patch)
tree5973db4e6f81b5e311e8944700ded5db1083d440 /networking/hostname.c
parentb74a2dba571d1c5a6127c683fb50923336d9c59f (diff)
downloadbusybox-w32-5415c856eaccd1bc5d064022770a288f43b2e94f.tar.gz
busybox-w32-5415c856eaccd1bc5d064022770a288f43b2e94f.tar.bz2
busybox-w32-5415c856eaccd1bc5d064022770a288f43b2e94f.zip
libbb: [x]fopen_for_{read,write} introduced and used.
(by Valdimir) function old new delta config_open2 - 41 +41 config_read 507 542 +35 find_pair 169 187 +18 fopen_for_write - 14 +14 fopen_for_read - 14 +14 find_main 406 418 +12 xfopen_for_write - 10 +10 xfopen_for_read - 10 +10 popstring 134 140 +6 parse_inittab 396 401 +5 next_token 923 928 +5 pack_gzip 1659 1661 +2 bb__parsespent 117 119 +2 fallbackSort 1719 1717 -2 evalvar 1376 1374 -2 qrealloc 36 33 -3 ... ... ... ... singlemount 4579 4569 -10 process_stdin 443 433 -10 patch_main 1111 1101 -10 ifupdown_main 2175 2165 -10 file_action_grep 90 80 -10 uuidcache_init 649 637 -12 hush_main 797 785 -12 read_config 230 217 -13 dpkg_main 3835 3820 -15 read_line_input 3134 3110 -24 sysctl_main 232 203 -29 config_open 40 10 -30 WARN_BAD_LINE 44 - -44 login_main 1714 1575 -139 ------------------------------------------------------------------------------ (add/remove: 5/1 grow/shrink: 8/74 up/down: 174/-737) Total: -563 bytes
Diffstat (limited to 'networking/hostname.c')
-rw-r--r--networking/hostname.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/networking/hostname.c b/networking/hostname.c
index 93cbc961f..dd2a20689 100644
--- a/networking/hostname.c
+++ b/networking/hostname.c
@@ -16,28 +16,19 @@
16 16
17static void do_sethostname(char *s, int isfile) 17static void do_sethostname(char *s, int isfile)
18{ 18{
19 FILE *f;
20
21 if (!s) 19 if (!s)
22 return; 20 return;
23 if (!isfile) { 21 if (isfile) {
24 if (sethostname(s, strlen(s)) < 0) { 22 parser_t *parser = config_open2(s, xfopen_for_read);
25 if (errno == EPERM) 23 while (config_read(parser, &s, 1, 1, "# \t", 0)) {
26 bb_error_msg_and_die(bb_msg_perm_denied_are_you_root); 24 do_sethostname(s, 0);
27 bb_perror_msg_and_die("sethostname");
28 }
29 } else {
30 f = xfopen(s, "r");
31#define strbuf bb_common_bufsiz1
32 while (fgets(strbuf, sizeof(strbuf), f) != NULL) {
33 if (strbuf[0] == '#') {
34 continue;
35 }
36 chomp(strbuf);
37 do_sethostname(strbuf, 0);
38 } 25 }
39 if (ENABLE_FEATURE_CLEAN_UP) 26 if (ENABLE_FEATURE_CLEAN_UP)
40 fclose(f); 27 config_close(parser);
28 } else if (sethostname(s, strlen(s)) < 0) {
29 if (errno == EPERM)
30 bb_error_msg_and_die(bb_msg_perm_denied_are_you_root);
31 bb_perror_msg_and_die("sethostname");
41 } 32 }
42} 33}
43 34
@@ -98,5 +89,5 @@ int hostname_main(int argc, char **argv)
98 } 89 }
99 if (ENABLE_FEATURE_CLEAN_UP) 90 if (ENABLE_FEATURE_CLEAN_UP)
100 free(buf); 91 free(buf);
101 return 0; 92 return EXIT_SUCCESS;
102} 93}