MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / pending

Method pending

plugins/HTTPServer/HTTPServer.cpp:398–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

396}
397
398void HTTPServer::pending(int connectionID, void* d, unsigned int s) {
399 HTTPConnectionMap::iterator itr = liveConnections.find(connectionID);
400
401 if (itr == liveConnections.end()) {
402 return;
403 }
404
405 HTTPConnection& connection = itr->second;
406
407 // grab the current data
408 if (d && s) {
409 char* t = (char*)malloc(s + 1);
410 memcpy(t, d, s);
411 t[s] = 0;
412 connection.currentData += t;
413 free(t);
414 }
415
416 // see what our status is
417 if (!connection.request) {
418 std::stringstream stream(connection.currentData);
419
420 std::string request, resource, httpVersion;
421 stream >> request >> resource >> httpVersion;
422
423 if (request.size() && resource.size() && httpVersion.size()) {
424 if (compare_nocase(request, "get") == 0) {
425 connection.request = eGet;
426 }
427 else if (compare_nocase(request, "head") == 0) {
428 connection.request = eHead;
429 }
430 else if (compare_nocase(request, "post") == 0) {
431 connection.request = ePost;
432 }
433 else if (compare_nocase(request, "put") == 0) {
434 connection.request = ePut;
435 }
436 else if (compare_nocase(request, "delete") == 0) {
437 connection.request = eDelete;
438 }
439 else if (compare_nocase(request, "trace") == 0) {
440 connection.request = eTrace;
441 }
442 else if (compare_nocase(request, "options") == 0) {
443 connection.request = eOptions;
444 }
445 else if (compare_nocase(request, "connect") == 0) {
446 connection.request = eConnect;
447 }
448 else {
449 connection.request = eOther;
450 }
451
452 if (httpVersion != "HTTP/1.1" && httpVersion != "HTTP/1.0") {
453 bz_debugMessagef(1, "HTTPServer HTTP version of %s requested", httpVersion.c_str());
454 }
455

Callers

nothing calls this directly

Calls 15

bz_debugMessagefFunction · 0.85
find_first_substrFunction · 0.85
trimLeadingWhitespaceFunction · 0.85
bz_sendNonPlayerDataFunction · 0.85
c_strMethod · 0.80
fillRequestMethod · 0.80
compare_nocaseFunction · 0.50
tokenizeFunction · 0.50
findMethod · 0.45
endMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected