diff options
author | Mattias Andrée <maandree@member.fsf.org> | 2015-12-25 22:11:48 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@member.fsf.org> | 2015-12-25 22:11:48 +0100 |
commit | 8ff7ea824ce12a40901dd9d81e7bf0dd46c4ee54 (patch) | |
tree | 346295f74b92e55bca0e22cfa1cad4e6cfa0eadf /src | |
parent | satr run select jobs + satrm can remove multiple jobs (diff) | |
download | sat-8ff7ea824ce12a40901dd9d81e7bf0dd46c4ee54.tar.gz sat-8ff7ea824ce12a40901dd9d81e7bf0dd46c4ee54.tar.bz2 sat-8ff7ea824ce12a40901dd9d81e7bf0dd46c4ee54.tar.xz |
send job
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/sat.c | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -69,8 +69,8 @@ main(int argc, char *argv[], char *envp[]) { struct timespec ts; clockid_t clk; - char *message; - size_t message_size; + char *msg = NULL; + size_t n; if ((argc < 3) || (argv[1][0] == '-')) { usage(); @@ -105,16 +105,25 @@ main(int argc, char *argv[], char *envp[]) argv += 2; /* Construct message to send to the daemon. */ - message_size = measure_array(argv) + measure_array(envp); - message = malloc(message_size); - if (!message) + n = measure_array(argv) + measure_array(envp); + if (!(msg = malloc(n + sizeof(clk) + sizeof(ts)))) goto fail; - store_array(store_array(message, argv), envp); + store_array(store_array(msg, argv), envp); + memcpy(msg + n, clk, sizeof(clk)); + memcpy(msg + n + sizeof(clk), ts, sizeof(ts)); - /* TODO start atd (if not started) and queue the job */ + /* Send job to daemon, start daemon if necessary. */ + if (send_command(SAT_QUEUE, n, msg)) { + if (errno) + goto fail; + free(msg); + return 3; + } + return 0; fail: perror(argv0); + free(msg); return 1; } |