Commit 73a0db3c authored by jan.koester's avatar jan.koester
Browse files

nginx filter finished

parent f46aeaf0
Loading
Loading
Loading
Loading
+24 −30
Original line number Diff line number Diff line
@@ -287,42 +287,36 @@ namespace blogi {
                        }
                    }while(rlen>0);
                }else{
READCHUNK:
                    if(recv >= chunklen){
                        chunklen-=cpos;
                        std::cerr << "recv: " << chunklen << std::endl;
                        json.append(data+cpos,chunklen);
                        cpos+=(chunklen-1);
                        recv-=chunklen;
                    }else{
                    do{
                        recv-=cpos;
                        std::cerr << "chuncklen: " << recv << std::endl;
                        json.append(data+cpos,recv);
                        cpos+=(recv-1);
                        chunklen-=recv;
                    }
                        chunklen-=cpos;

                    std::cerr << "recv: " << recv << std::endl;
                        int &culen= ( recv < chunklen ) ? recv : chunklen;

                    if(chunklen!=0){
                        for(;;){
                        if(recv<cpos && chunklen>0){
                            cpos=0;
                            recv=srvsock->recvData(cltsock,data,16384);
                            if(recv>0)
                                break;
                            if(tries>5){
                                netplus::NetException e;
                                e[netplus::NetException::Error] << "nginxfiler: can't reach nginx server !";
                                throw e;
                            }
                            ++tries;
                            std::this_thread::sleep_for(std::chrono::milliseconds(100));
                        }
                        cpos=0;
                        goto READCHUNK;

                        if(culen<0 && recv > 0){
                            culen*=-1;
                            json.append(data+cpos,culen);
                            cpos+=culen;
                            continue;
                        }else if(culen>0){
                            json.append(data+cpos,culen);
                            cpos+=culen;
                            continue;
                        }

                    if((chunklen=readchunk(data,recv,cpos)) > 0)
                        goto READCHUNK;

                        chunklen=readchunk(data,recv,cpos);


                        std::cout << chunklen << std::endl;

                    }while(chunklen>0);

                }

                std::cout << json << std::endl;