src/server/daemon/httprequest.c

branch
webdav
changeset 361
570026d3a685
parent 360
79ddd772e807
child 396
77d81f2bb9f7
equal deleted inserted replaced
360:79ddd772e807 361:570026d3a685
577 if(sn->pos < sn->cursize) { 577 if(sn->pos < sn->cursize) {
578 log_ereport(LOG_WARN, "nsapi_finish_request: TODO: remaining bytes in buffer"); 578 log_ereport(LOG_WARN, "nsapi_finish_request: TODO: remaining bytes in buffer");
579 // TODO: reuse buffer in next request 579 // TODO: reuse buffer in next request
580 rq->rq.rq_attr.keep_alive = 0; // workaround 580 rq->rq.rq_attr.keep_alive = 0; // workaround
581 } 581 }
582 if(!rq->rq.senthdrs) { 582
583 if(rq->rq.senthdrs) {
584 // flush buffer and add termination if chunked encoding
585 // is enabled
586 net_finish(sn->sn.csd);
587 } else {
583 // why was no response sent? 588 // why was no response sent?
584 // something must have gone wrong 589 // something must have gone wrong
585 // terminate the session 590 // terminate the session
586 char *clf_req = pblock_findkeyval(pb_key_clf_request, rq->rq.reqpb); 591 char *clf_req = pblock_findkeyval(pb_key_clf_request, rq->rq.reqpb);
587 log_ereport(LOG_WARN, "nsapi_finish_request: no response header: request: %s", clf_req); 592 log_ereport(LOG_WARN, "nsapi_finish_request: no response header: request: %s", clf_req);
896 // execute the saf 901 // execute the saf
897 ret = nsapi_exec(d, sn, rq); 902 ret = nsapi_exec(d, sn, rq);
898 } 903 }
899 904
900 if(ret != REQ_NOACTION) { 905 if(ret != REQ_NOACTION) {
901 if(ret == REQ_PROCEED) { 906 if(ret == REQ_PROCEED && !rq->rq.senthdrs) {
902 if(rq->rq.senthdrs) { 907 // a service SAF must send a response
903 // flush buffer and add termination if chunked encoding 908 // senthdrs == 0 indicators something has gone
904 // is enabled 909 // wrong
905 net_finish(sn->sn.csd); 910 protocol_status(&sn->sn, &rq->rq, 500, NULL);
906 } else { 911 ret = REQ_ABORTED;
907 // a service SAF must send a response
908 // senthdrs == 0 indicators something has gone
909 // wrong
910 protocol_status(&sn->sn, &rq->rq, 500, NULL);
911 ret = REQ_ABORTED;
912 }
913 } else if(ret == REQ_PROCESSING) { 912 } else if(ret == REQ_PROCESSING) {
914 // save nsapi context 913 // save nsapi context
915 rq->context.objset_index = i; 914 rq->context.objset_index = i;
916 915
917 // add +1 to start next round with next function 916 // add +1 to start next round with next function

mercurial