Commit 3fc73607 authored by jan.koester's avatar jan.koester
Browse files

pw support for reconnect included

parent 4b670020
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -46,5 +46,6 @@ namespace blogi {
    private:
        bool reconnect();
        redisContext *_RedisCTX;
        std::string   _pw;
    };
};
+2 −2
Original line number Diff line number Diff line
@@ -508,11 +508,11 @@ namespace blogi {
                curres.setVersion(HTTPVERSION(1.1));

                if(n>0){
                    curres.setContentType(res[0][0]);
                    curres.setState(HTTP200);
                    try{
                        std::string value;
                        _store->load(suuid,value);
                        curres.setContentType(res[0][0]);
                        curres.setState(HTTP200);
                        curres.send(curcon, value.c_str(), value.length());
                    }catch(...){
                        curres.setState(HTTP404);
+12 −1
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ blogi::RedisStore::RedisStore(const char *host,int port,const char *password){
            exp[libhttppp::HTTPException::Error] << "media plugin err: " << _RedisCTX->errstr;
            throw exp;
        }
        _pw=password;
        freeReplyObject(reply);
    }

@@ -79,8 +80,18 @@ REDISLOAD:
}

bool blogi::RedisStore::reconnect(){
    if(redisReconnect(_RedisCTX)!=REDIS_ERR)
    if(redisReconnect(_RedisCTX) && !_RedisCTX->err){
        if(!_pw.empty()){
            redisReply *reply = (redisReply*)redisCommand(_RedisCTX, "AUTH %s", _pw.c_str());
            if (reply->type == REDIS_REPLY_ERROR) {
                freeReplyObject(reply);
                return false;
            }else{
                return true;
            }
        }
        return true;
    }
    return false;
}