313 |
fd_set allsock; |
fd_set allsock; |
314 |
/* Used in next_line(), and as scratch read buffer */ |
/* Used in next_line(), and as scratch read buffer */ |
315 |
char line[256]; /* _at least_ 256, see LINE_SIZE */ |
char line[256]; /* _at least_ 256, see LINE_SIZE */ |
316 |
}; |
} FIX_ALIASING; |
317 |
#define G (*(struct globals*)&bb_common_bufsiz1) |
#define G (*(struct globals*)&bb_common_bufsiz1) |
318 |
enum { LINE_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line) }; |
enum { LINE_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line) }; |
319 |
struct BUG_G_too_big { |
struct BUG_G_too_big { |
1271 |
pid = vfork(); |
pid = vfork(); |
1272 |
|
|
1273 |
if (pid < 0) { /* fork error */ |
if (pid < 0) { /* fork error */ |
1274 |
bb_perror_msg("fork"); |
bb_perror_msg("vfork"+1); |
1275 |
sleep(1); |
sleep(1); |
1276 |
restore_sigmask(&omask); |
restore_sigmask(&omask); |
1277 |
maybe_close(accepted_fd); |
maybe_close(accepted_fd); |
1380 |
sigaction_set(SIGPIPE, &saved_pipe_handler); |
sigaction_set(SIGPIPE, &saved_pipe_handler); |
1381 |
restore_sigmask(&omask); |
restore_sigmask(&omask); |
1382 |
BB_EXECVP(sep->se_program, sep->se_argv); |
BB_EXECVP(sep->se_program, sep->se_argv); |
1383 |
bb_perror_msg("exec %s", sep->se_program); |
bb_perror_msg("can't execute '%s'", sep->se_program); |
1384 |
do_exit1: |
do_exit1: |
1385 |
/* eat packet in udp case */ |
/* eat packet in udp case */ |
1386 |
if (sep->se_socktype != SOCK_STREAM) |
if (sep->se_socktype != SOCK_STREAM) |