From 9629104f494a441681fd28295f98531682875fc7 Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Sun, 7 Jun 2020 12:51:27 +0200 Subject: put works --- 03_exercise/srv/shell.c | 72 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 55 insertions(+), 17 deletions(-) (limited to '03_exercise/srv/shell.c') diff --git a/03_exercise/srv/shell.c b/03_exercise/srv/shell.c index 449905b..aea1a68 100644 --- a/03_exercise/srv/shell.c +++ b/03_exercise/srv/shell.c @@ -38,24 +38,21 @@ void receive_file(int sock, char *path, int size) { if ((file_fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0644)) == -1) { perror("Open"); } - while (true) { - received = 0; - - /* Read all data */ - while (received < size) { - if ((nread = read(sock, buffer + received, size - received)) < 0) { - perror("Read"); - //pthread_exit(NULL); - exit(1); - } + received = 0; - received += nread; + /* Read all data */ + while (received < size) { + if ((nread = read(sock, buffer + received, size - received)) < 0) { + perror("Read"); + //pthread_exit(NULL); + exit(1); } - if (strncmp(buffer, "end", 4) == 0) { break; } - - write_all(file_fd, buffer, strlen(buffer) + 1); + received += nread; } + + write_all(file_fd, buffer, strlen(buffer) + 1); + close(file_fd); } void signal_handler(int signal) { @@ -69,6 +66,44 @@ void signal_handler(int signal) { } } +bool check_put(char *buffer, int sock) { + // "<