inetd: small shrink for NOMMU case
function old new delta cat_args - 8 +8 echo_stream 64 63 -1 discard_stream 64 63 -1 static.args 32 12 -20 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/3 up/down: 8/-22) Total: -14 bytes
This commit is contained in:
parent
cae11b51aa
commit
02f12f53e8
@ -1413,6 +1413,10 @@ int inetd_main(int argc ATTRIBUTE_UNUSED, char **argv)
|
|||||||
} /* for (;;) */
|
} /* for (;;) */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !BB_MMU
|
||||||
|
static const char *const cat_args[] = { "cat", NULL };
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Internet services provided internally by inetd:
|
* Internet services provided internally by inetd:
|
||||||
*/
|
*/
|
||||||
@ -1430,13 +1434,13 @@ static void echo_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* We are after vfork here! */
|
/* We are after vfork here! */
|
||||||
static const char *const args[] = { "cat", NULL };
|
/* move network socket to stdin/stdout */
|
||||||
/* move network socket to stdin */
|
|
||||||
xmove_fd(s, STDIN_FILENO);
|
xmove_fd(s, STDIN_FILENO);
|
||||||
xdup2(STDIN_FILENO, STDOUT_FILENO);
|
xdup2(STDIN_FILENO, STDOUT_FILENO);
|
||||||
/* no error messages please... */
|
/* no error messages please... */
|
||||||
xmove_fd(xopen("/dev/null", O_WRONLY), STDERR_FILENO);
|
close(STDERR_FILENO);
|
||||||
BB_EXECVP("cat", (char**)args);
|
xopen("/dev/null", O_WRONLY);
|
||||||
|
BB_EXECVP("cat", (char**)cat_args);
|
||||||
/* on failure we return to main, which does exit(1) */
|
/* on failure we return to main, which does exit(1) */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -1467,13 +1471,14 @@ static void discard_stream(int s, servtab_t *sep ATTRIBUTE_UNUSED)
|
|||||||
continue;
|
continue;
|
||||||
#else
|
#else
|
||||||
/* We are after vfork here! */
|
/* We are after vfork here! */
|
||||||
static const char *const args[] = { "dd", "of=/dev/null", NULL };
|
|
||||||
/* move network socket to stdin */
|
/* move network socket to stdin */
|
||||||
xmove_fd(s, STDIN_FILENO);
|
xmove_fd(s, STDIN_FILENO);
|
||||||
xdup2(STDIN_FILENO, STDOUT_FILENO);
|
/* discard output */
|
||||||
/* no error messages */
|
close(STDOUT_FILENO);
|
||||||
xmove_fd(xopen("/dev/null", O_WRONLY), STDERR_FILENO);
|
xopen("/dev/null", O_WRONLY);
|
||||||
BB_EXECVP("dd", (char**)args);
|
/* no error messages please... */
|
||||||
|
xdup2(STDOUT_FILENO, STDERR_FILENO);
|
||||||
|
BB_EXECVP("cat", (char**)cat_args);
|
||||||
/* on failure we return to main, which does exit(1) */
|
/* on failure we return to main, which does exit(1) */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user