src/server/daemon/httprequest.c

branch
webdav
changeset 360
79ddd772e807
parent 354
017eda1be105
child 361
570026d3a685
equal deleted inserted replaced
359:79b28ae7bfbd 360:79ddd772e807
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) {
583 // why was no response sent?
584 // something must have gone wrong
585 // terminate the session
586 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);
588 rq->rq.rq_attr.keep_alive = 0;
589 }
582 590
583 if(rq->rq.rq_attr.keep_alive) { 591 if(rq->rq.rq_attr.keep_alive) {
584 SessionHandler *sh = sn->connection->session_handler; 592 SessionHandler *sh = sn->connection->session_handler;
585 sh->keep_alive(sh, sn->connection); 593 sh->keep_alive(sh, sn->connection);
586 /* 594 /*
889 ret = nsapi_exec(d, sn, rq); 897 ret = nsapi_exec(d, sn, rq);
890 } 898 }
891 899
892 if(ret != REQ_NOACTION) { 900 if(ret != REQ_NOACTION) {
893 if(ret == REQ_PROCEED) { 901 if(ret == REQ_PROCEED) {
894 // flush buffer and add termination if chunked encoding 902 if(rq->rq.senthdrs) {
895 // is enabled 903 // flush buffer and add termination if chunked encoding
896 net_finish(sn->sn.csd); 904 // is enabled
905 net_finish(sn->sn.csd);
906 } else {
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 }
897 } else if(ret == REQ_PROCESSING) { 913 } else if(ret == REQ_PROCESSING) {
898 // save nsapi context 914 // save nsapi context
899 rq->context.objset_index = i; 915 rq->context.objset_index = i;
900 916
901 // add +1 to start next round with next function 917 // add +1 to start next round with next function

mercurial