diff options
author | vm <vm@vm.vm> | 2020-06-08 17:43:47 +0200 |
---|---|---|
committer | vm <vm@vm.vm> | 2020-06-08 17:43:47 +0200 |
commit | 3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f (patch) | |
tree | 881eee57ad0443af6e5291035b37cdbabcc4d564 /03_exercise/srv | |
parent | 7ab92ebb3424e904ee78862683eb65fb60d878f6 (diff) | |
download | betriebssysteme-3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f.tar.gz betriebssysteme-3c13b7ad6bc7a1a3b84d27c8c9fd4c8da1d2112f.zip |
get works again?
Diffstat (limited to '03_exercise/srv')
-rw-r--r-- | 03_exercise/srv/shell.c | 11 |
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); |