Changes in benchmark/io/http/protocol.cfa [197df9b:e54d0c3]
- File:
-
- 1 edited
-
benchmark/io/http/protocol.cfa (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
benchmark/io/http/protocol.cfa
r197df9b re54d0c3 5 5 #include <fcntl.h> 6 6 } 7 8 #define xstr(s) str(s)9 #define str(s) #s10 7 11 8 #include <fstream.hfa> … … 24 21 25 22 #define PLAINTEXT_1WRITE 26 #define PLAINTEXT_MEMCPY27 23 #define PLAINTEXT_NOCOPY 28 24 … … 89 85 #if defined(PLAINTEXT_NOCOPY) 90 86 int answer_plaintext( int fd ) { 91 return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator 92 } 93 #elif defined(PLAINTEXT_MEMCPY) 94 #define TEXTSIZE 15 95 int answer_plaintext( int fd ) { 96 char text[] = "Hello, World!\n\n"; 97 char ts[] = xstr(TEXTSIZE) " \n\n"; 98 _Static_assert(sizeof(text) - 1 == TEXTSIZE); 99 char buffer[512 + TEXTSIZE]; 100 char * it = buffer; 101 memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len); 102 it += http_msgs[OK200]->len; 103 int len = http_msgs[OK200]->len; 104 memcpy(it, ts, sizeof(ts) - 1); 105 it += sizeof(ts) - 1; 106 len += sizeof(ts) - 1; 107 memcpy(it, text, TEXTSIZE); 108 return answer(fd, buffer, len + TEXTSIZE); 87 return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len + 1); // +1 cause snprintf doesn't count nullterminator 109 88 } 110 89 #elif defined(PLAINTEXT_1WRITE) 111 90 int answer_plaintext( int fd ) { 112 char text[] = "Hello, World!\n \n";91 char text[] = "Hello, World!\n"; 113 92 char buffer[512 + sizeof(text)]; 114 93 char * it = buffer; … … 124 103 #else 125 104 int answer_plaintext( int fd ) { 126 char text[] = "Hello, World!\n \n";105 char text[] = "Hello, World!\n"; 127 106 int ret = answer_header(fd, sizeof(text)); 128 107 if( ret < 0 ) return ret; … … 214 193 215 194 const char * original_http_msgs[] = { 216 "HTTP/1.1 200 OK\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: ",217 "HTTP/1.1 200 OK\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 15\n\nHello, World!\n\n",218 "HTTP/1.1 400 Bad Request\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",219 "HTTP/1.1 404 Not Found\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",220 "HTTP/1.1 405 Method Not Allowed\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",221 "HTTP/1.1 408 Request Timeout\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",222 "HTTP/1.1 413 Payload Too Large\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",223 "HTTP/1.1 414 URI Too Long\nServer: Htt pForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n",195 "HTTP/1.1 200 OK\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: ", 196 "HTTP/1.1 200 OK\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 15\n\nHello, World!\n", 197 "HTTP/1.1 400 Bad Request\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 198 "HTTP/1.1 404 Not Found\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 199 "HTTP/1.1 405 Method Not Allowed\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 200 "HTTP/1.1 408 Request Timeout\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 201 "HTTP/1.1 413 Payload Too Large\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 202 "HTTP/1.1 414 URI Too Long\nServer: HttoForall\nDate: %s \nContent-Type: text/plain\nContent-Length: 0 \n\n", 224 203 }; 225 204 … … 251 230 Time now = timeHiRes(); 252 231 strftime( buff, 100, "%a, %d %b %Y %H:%M:%S %Z", now ); 253 if( options.log )sout | "Updated date to '" | buff | "'";232 sout | "Updated date to '" | buff | "'"; 254 233 255 234 for(i; KNOWN_CODES) { … … 264 243 this.idx = (this.idx + 1) % 2; 265 244 266 if( options.log )sout | "Date thread sleeping";245 sout | "Date thread sleeping"; 267 246 268 247 sleep(1`s);
Note:
See TracChangeset
for help on using the changeset viewer.