aboutsummaryrefslogtreecommitdiff
path: root/networking/inetd.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/inetd.c')
-rw-r--r--networking/inetd.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/networking/inetd.c b/networking/inetd.c
index 01e659f13..39169a935 100644
--- a/networking/inetd.c
+++ b/networking/inetd.c
@@ -1513,8 +1513,11 @@ int inetd_main(int argc UNUSED_PARAM, char **argv)
1513 } /* for (;;) */ 1513 } /* for (;;) */
1514} 1514}
1515 1515
1516#if !BB_MMU 1516#if ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_ECHO \
1517 || ENABLE_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
1518# if !BB_MMU
1517static const char *const cat_args[] = { "cat", NULL }; 1519static const char *const cat_args[] = { "cat", NULL };
1520# endif
1518#endif 1521#endif
1519 1522
1520/* 1523/*
@@ -1525,14 +1528,14 @@ static const char *const cat_args[] = { "cat", NULL };
1525/* ARGSUSED */ 1528/* ARGSUSED */
1526static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM) 1529static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM)
1527{ 1530{
1528#if BB_MMU 1531# if BB_MMU
1529 while (1) { 1532 while (1) {
1530 ssize_t sz = safe_read(s, line, LINE_SIZE); 1533 ssize_t sz = safe_read(s, line, LINE_SIZE);
1531 if (sz <= 0) 1534 if (sz <= 0)
1532 break; 1535 break;
1533 xwrite(s, line, sz); 1536 xwrite(s, line, sz);
1534 } 1537 }
1535#else 1538# else
1536 /* We are after vfork here! */ 1539 /* We are after vfork here! */
1537 /* move network socket to stdin/stdout */ 1540 /* move network socket to stdin/stdout */
1538 xmove_fd(s, STDIN_FILENO); 1541 xmove_fd(s, STDIN_FILENO);
@@ -1542,7 +1545,7 @@ static void FAST_FUNC echo_stream(int s, servtab_t *sep UNUSED_PARAM)
1542 xopen(bb_dev_null, O_WRONLY); 1545 xopen(bb_dev_null, O_WRONLY);
1543 BB_EXECVP("cat", (char**)cat_args); 1546 BB_EXECVP("cat", (char**)cat_args);
1544 /* on failure we return to main, which does exit(EXIT_FAILURE) */ 1547 /* on failure we return to main, which does exit(EXIT_FAILURE) */
1545#endif 1548# endif
1546} 1549}
1547static void FAST_FUNC echo_dg(int s, servtab_t *sep) 1550static void FAST_FUNC echo_dg(int s, servtab_t *sep)
1548{ 1551{
@@ -1566,10 +1569,10 @@ static void FAST_FUNC echo_dg(int s, servtab_t *sep)
1566/* ARGSUSED */ 1569/* ARGSUSED */
1567static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM) 1570static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM)
1568{ 1571{
1569#if BB_MMU 1572# if BB_MMU
1570 while (safe_read(s, line, LINE_SIZE) > 0) 1573 while (safe_read(s, line, LINE_SIZE) > 0)
1571 continue; 1574 continue;
1572#else 1575# else
1573 /* We are after vfork here! */ 1576 /* We are after vfork here! */
1574 /* move network socket to stdin */ 1577 /* move network socket to stdin */
1575 xmove_fd(s, STDIN_FILENO); 1578 xmove_fd(s, STDIN_FILENO);
@@ -1580,7 +1583,7 @@ static void FAST_FUNC discard_stream(int s, servtab_t *sep UNUSED_PARAM)
1580 xdup2(STDOUT_FILENO, STDERR_FILENO); 1583 xdup2(STDOUT_FILENO, STDERR_FILENO);
1581 BB_EXECVP("cat", (char**)cat_args); 1584 BB_EXECVP("cat", (char**)cat_args);
1582 /* on failure we return to main, which does exit(EXIT_FAILURE) */ 1585 /* on failure we return to main, which does exit(EXIT_FAILURE) */
1583#endif 1586# endif
1584} 1587}
1585/* ARGSUSED */ 1588/* ARGSUSED */
1586static void FAST_FUNC discard_dg(int s, servtab_t *sep UNUSED_PARAM) 1589static void FAST_FUNC discard_dg(int s, servtab_t *sep UNUSED_PARAM)