diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-09-26 10:46:18 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-09-26 10:46:18 +0000 |
commit | 3982407ba4bb39f09a0eb5873003130245ad5512 (patch) | |
tree | 53305ad44bfe47d05d944e893e0277dad624111b | |
parent | 4dd4e6d6b98001d164cddbdfa8fe90460257884a (diff) | |
download | busybox-w32-3982407ba4bb39f09a0eb5873003130245ad5512.tar.gz busybox-w32-3982407ba4bb39f09a0eb5873003130245ad5512.tar.bz2 busybox-w32-3982407ba4bb39f09a0eb5873003130245ad5512.zip |
inetd: move struct fields around -> save .25 k of code
function old new delta
freeconfig 75 76 +1
register_rpc 200 196 -4
dupconfig 165 159 -6
reapchild 173 166 -7
retry 93 82 -11
goaway 112 101 -11
getconfigent 1241 1222 -19
setup 645 592 -53
inetd_main 2160 2107 -53
config 1602 1518 -84
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/9 up/down: 1/-248) Total: -247 bytes
text data bss dec hex filename
773951 1038 10332 785321 bfba9 busybox_old
773703 1038 10332 785073 bfab1 busybox_unstripped
-rw-r--r-- | networking/inetd.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/networking/inetd.c b/networking/inetd.c index b3a00cfa5..b16427882 100644 --- a/networking/inetd.c +++ b/networking/inetd.c | |||
@@ -222,6 +222,9 @@ struct BUG_too_small { | |||
222 | }; | 222 | }; |
223 | 223 | ||
224 | typedef struct servtab_t { | 224 | typedef struct servtab_t { |
225 | /* The most frequently referenced one: */ | ||
226 | int se_fd; /* open descriptor */ | ||
227 | /* NB: 'biggest fields last' saves on code size (~250 bytes) */ | ||
225 | char *se_hostaddr; /* host address to listen on */ | 228 | char *se_hostaddr; /* host address to listen on */ |
226 | char *se_service; /* name of service */ | 229 | char *se_service; /* name of service */ |
227 | char *se_proto; /* protocol used */ | 230 | char *se_proto; /* protocol used */ |
@@ -242,10 +245,14 @@ typedef struct servtab_t { | |||
242 | #ifdef INETD_FEATURE_ENABLED | 245 | #ifdef INETD_FEATURE_ENABLED |
243 | const struct builtin *se_bi; /* if built-in, description */ | 246 | const struct builtin *se_bi; /* if built-in, description */ |
244 | #endif | 247 | #endif |
248 | int se_ctrladdr_size; | ||
249 | int se_max; /* max # of instances of this service */ | ||
250 | int se_count; /* number started since se_time */ | ||
251 | struct servtab_t *se_next; | ||
252 | struct timeval se_time; /* start of se_count */ | ||
245 | char *se_server; /* server program */ | 253 | char *se_server; /* server program */ |
246 | #define MAXARGV 20 | 254 | #define MAXARGV 20 |
247 | char *se_argv[MAXARGV + 1]; /* program arguments */ | 255 | char *se_argv[MAXARGV + 1]; /* program arguments */ |
248 | int se_fd; /* open descriptor */ | ||
249 | union { | 256 | union { |
250 | struct sockaddr se_un_ctrladdr; | 257 | struct sockaddr se_un_ctrladdr; |
251 | struct sockaddr_in se_un_ctrladdr_in; | 258 | struct sockaddr_in se_un_ctrladdr_in; |
@@ -258,11 +265,6 @@ typedef struct servtab_t { | |||
258 | #define se_ctrladdr_in se_un.se_un_ctrladdr_in | 265 | #define se_ctrladdr_in se_un.se_un_ctrladdr_in |
259 | #define se_ctrladdr_in6 se_un.se_un_ctrladdr_in6 | 266 | #define se_ctrladdr_in6 se_un.se_un_ctrladdr_in6 |
260 | #define se_ctrladdr_un se_un.se_un_ctrladdr_un | 267 | #define se_ctrladdr_un se_un.se_un_ctrladdr_un |
261 | int se_ctrladdr_size; | ||
262 | int se_max; /* max # of instances of this service */ | ||
263 | int se_count; /* number started since se_time */ | ||
264 | struct timeval se_time; /* start of se_count */ | ||
265 | struct servtab_t *se_next; | ||
266 | } servtab_t; | 268 | } servtab_t; |
267 | 269 | ||
268 | #ifdef INETD_FEATURE_ENABLED | 270 | #ifdef INETD_FEATURE_ENABLED |