summaryrefslogtreecommitdiffstats
path: root/03_exercise/srv/shell.c
diff options
context:
space:
mode:
authorvm <vm@vm.vm>2020-06-08 17:43:47 +0200
committervm <vm@vm.vm>2020-06-08 17:43:47 +0200
commit3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f (patch)
tree881eee57ad0443af6e5291035b37cdbabcc4d564 /03_exercise/srv/shell.c
parent7ab92ebb3424e904ee78862683eb65fb60d878f6 (diff)
downloadbetriebssysteme-3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f.tar.gz
betriebssysteme-3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f.zip
get works again?
Diffstat (limited to '03_exercise/srv/shell.c')
-rw-r--r--03_exercise/srv/shell.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/03_exercise/srv/shell.c b/03_exercise/srv/shell.c
index c7155c6..74c492b 100644
--- a/03_exercise/srv/shell.c
+++ b/03_exercise/srv/shell.c
@@ -100,6 +100,13 @@ void send_file(int client_fd, char *path) {
return;
}
+ int flag = 1;
+ // force flush
+ flag = 1;
+ setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));
+ flag = 0;
+ setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));
+
int length = snprintf(NULL, 0, "%ld", sz);
sprintf(buffer, "<<!%ld!", sz);
sprintf(&(buffer[3 + length + 1]), "%s!\n", path);
@@ -109,10 +116,10 @@ void send_file(int client_fd, char *path) {
return;
}
- int flag = 1;
- // force flush
+ flag = 1;
setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));
flag = 0;
+ setsockopt(client_fd, IPPROTO_TCP, TCP_NODELAY, (char *) &flag, sizeof(int));
usleep(150);