summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--03_exercise/.srv_pid2
-rwxr-xr-x03_exercise/cli/clientbin35192 -> 35352 bytes
-rw-r--r--03_exercise/cli/client.c1
-rw-r--r--03_exercise/srv/shell.c3
4 files changed, 5 insertions, 1 deletions
diff --git a/03_exercise/.srv_pid b/03_exercise/.srv_pid
index af9bc34..d344ba0 100644
--- a/03_exercise/.srv_pid
+++ b/03_exercise/.srv_pid
@@ -1 +1 @@
-4125
+5015
diff --git a/03_exercise/cli/client b/03_exercise/cli/client
index 4450079..208702c 100755
--- a/03_exercise/cli/client
+++ b/03_exercise/cli/client
Binary files differ
diff --git a/03_exercise/cli/client.c b/03_exercise/cli/client.c
index 22f4e61..e42151a 100644
--- a/03_exercise/cli/client.c
+++ b/03_exercise/cli/client.c
@@ -301,6 +301,7 @@ int parse(char *buffer, ssize_t length) {
if (strspn(buffer, " \n\t") == strlen(buffer)) {
// skip empty lines - empty being just spaces or tabs
+ printf("$> ");
return CONTINUE;
}
diff --git a/03_exercise/srv/shell.c b/03_exercise/srv/shell.c
index 74c492b..b956d3c 100644
--- a/03_exercise/srv/shell.c
+++ b/03_exercise/srv/shell.c
@@ -111,13 +111,16 @@ void send_file(int client_fd, char *path) {
sprintf(buffer, "<<!%ld!", sz);
sprintf(&(buffer[3 + length + 1]), "%s!\n", path);
+ usleep(150);
if (write(client_fd, buffer, strlen(buffer)) != strlen(buffer)) {
perror("write header");
return;
}
+ usleep(150);
flag = 1;
setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));
+ usleep(150);
flag = 0;
setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));