コード例 #1
0
PRStatus FcgiParser::formatRequest(CircularBuffer& from, CircularBuffer& to, PRUint8 streamType) {
    int toLen = 0; 
    int fromLen = 0; 
    char *toBuf = NULL;
    int available = to.requestSpace(toBuf, toLen) - sizeof(FCGI_Header);
    int dataSize = from.hasData();
    int dataToBeMoved = min(dataSize, available);
    if(dataToBeMoved > 0) {
        if(toBuf) {
            //if(makePacketHeader(streamType, maxLen, to) == PR_SUCCESS) {
            if(makePacketHeader(streamType, dataToBeMoved, to) == PR_SUCCESS) {
                if(from.move(to, dataToBeMoved) < dataToBeMoved)
                        return PR_FAILURE;
            } else
                return PR_FAILURE;
        }
    }

    return PR_SUCCESS;
}