Lines Matching refs:redirect

5 static bool redirect_is_set(reproc_redirect redirect)  in redirect_is_set()  argument
7 return redirect.type || redirect.handle || redirect.file || redirect.path; in redirect_is_set()
10 static int parse_redirect(reproc_redirect *redirect, in parse_redirect() argument
17 ASSERT(redirect); in parse_redirect()
20 ASSERT_EINVAL(!redirect_is_set(*redirect)); in parse_redirect()
22 redirect->type = REPROC_REDIRECT_FILE; in parse_redirect()
23 redirect->file = file; in parse_redirect()
27 ASSERT_EINVAL(!redirect_is_set(*redirect)); in parse_redirect()
29 redirect->type = REPROC_REDIRECT_PATH; in parse_redirect()
30 redirect->path = path; in parse_redirect()
33 if (redirect->type == REPROC_REDIRECT_HANDLE || redirect->handle) { in parse_redirect()
34 ASSERT_EINVAL(redirect->type == REPROC_REDIRECT_DEFAULT || in parse_redirect()
35 redirect->type == REPROC_REDIRECT_HANDLE); in parse_redirect()
36 ASSERT_EINVAL(redirect->handle); in parse_redirect()
37 ASSERT_EINVAL(!redirect->file && !redirect->path); in parse_redirect()
38 redirect->type = REPROC_REDIRECT_HANDLE; in parse_redirect()
41 if (redirect->type == REPROC_REDIRECT_FILE || redirect->file) { in parse_redirect()
42 ASSERT_EINVAL(redirect->type == REPROC_REDIRECT_DEFAULT || in parse_redirect()
43 redirect->type == REPROC_REDIRECT_FILE); in parse_redirect()
44 ASSERT_EINVAL(redirect->file); in parse_redirect()
45 ASSERT_EINVAL(!redirect->handle && !redirect->path); in parse_redirect()
46 redirect->type = REPROC_REDIRECT_FILE; in parse_redirect()
49 if (redirect->type == REPROC_REDIRECT_PATH || redirect->path) { in parse_redirect()
50 ASSERT_EINVAL(redirect->type == REPROC_REDIRECT_DEFAULT || in parse_redirect()
51 redirect->type == REPROC_REDIRECT_PATH); in parse_redirect()
52 ASSERT_EINVAL(redirect->path); in parse_redirect()
53 ASSERT_EINVAL(!redirect->handle && !redirect->file); in parse_redirect()
54 redirect->type = REPROC_REDIRECT_PATH; in parse_redirect()
57 if (redirect->type == REPROC_REDIRECT_DEFAULT) { in parse_redirect()
60 redirect->type = REPROC_REDIRECT_PARENT; in parse_redirect()
63 redirect->type = REPROC_REDIRECT_DISCARD; in parse_redirect()
65 redirect->type = stream == REPROC_STREAM_ERR ? REPROC_REDIRECT_PARENT in parse_redirect()
95 r = parse_redirect(&options->redirect.in, REPROC_STREAM_IN, in parse_options()
96 options->redirect.parent, options->redirect.discard, NULL, in parse_options()
102 r = parse_redirect(&options->redirect.out, REPROC_STREAM_OUT, in parse_options()
103 options->redirect.parent, options->redirect.discard, in parse_options()
104 options->redirect.file, options->redirect.path); in parse_options()
109 r = parse_redirect(&options->redirect.err, REPROC_STREAM_ERR, in parse_options()
110 options->redirect.parent, options->redirect.discard, in parse_options()
111 options->redirect.file, options->redirect.path); in parse_options()
117 ASSERT_EINVAL(options->redirect.in.type == REPROC_REDIRECT_PIPE); in parse_options()