aboutsummaryrefslogtreecommitdiff
path: root/src/lib/exec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/exec.c')
-rw-r--r--src/lib/exec.c63
1 files changed, 2 insertions, 61 deletions
diff --git a/src/lib/exec.c b/src/lib/exec.c
index eb0aebc..4fa98df 100644
--- a/src/lib/exec.c
+++ b/src/lib/exec.c
@@ -9,65 +9,6 @@
#include "util.h"
struct line runextension(struct line *data, char *filename, size_t n) {
- struct line line;
-
- int in[2];
- int out[2];
- if (pipe(out) == -1 || pipe(in) == -1)
- die("pipe");
-
- pid_t pid = fork();
- if (pid == -1)
- die("fork");
-
- if (pid == 0) {
- // child
- dup2(out[1], STDOUT_FILENO);
- close(out[0]);
- close(out[1]);
-
- dup2(in[1], STDIN_FILENO);
- close(in[0]);
- close(in[1]);
-
- char *eargv[4];
- eargv[0] = conf.extension;
- eargv[1] = filename;
- eargv[2] = malloc((intlen(n) + 1) * sizeof(char));
- if (eargv[2] == NULL)
- die("malloc");
- sprintf(eargv[2], "%zu", n);
- eargv[3] = NULL;
-
- if (execvp(conf.extension, eargv) == -1)
- die("exec");
- } else {
- // parent
- close(out[1]);
- close(in[1]);
-
- write(in[0], "test\0", 4);
-
- char *buf = malloc(256);
- memset(buf, '\0', 256);
-
- size_t len = read(out[0], buf, 256);
-
- line.buf = buf;
- line.len = len;
-
- int status;
- waitpid(pid, &status, 0);
-
- if (WEXITSTATUS(status) != EXIT_SUCCESS) {
- die("exec fail");
- }
- }
-
- close(out[0]);
- close(out[1]);
- close(in[0]);
- close(in[1]);
-
- return line;
+ // TODO: Implement as unix socket
+ return *data;
}