Commit 9a46b757 authored by jan.koester's avatar jan.koester
Browse files

test

parent b27c85d2
Loading
Loading
Loading
Loading
Loading
+6 −0
Changes for client/client.cpp: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -257,6 +257,12 @@ bool Client::ClientAuth() {
    int fcount = json_object_array_length(jrequest);
    for (int i = 0; i < fcount; ++i) {
        json_object_object_foreach(json_object_array_get_idx(jrequest, i), key, val) {
            if (strcmp(key, "error") == 0) {
                std::string msg = json_object_get_string(val);
                json_object_put(jrequest);
                json_tokener_free(jtok);
                throw authdb::AuthBackendError(msg);
            }
            if (strcmp(key, "connectionid") == 0) {
                _Con._ClientId = json_object_get_string(val);
                json_object_put(jrequest);
+10 −3
Changes for src/authdb.cpp: 10 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -314,15 +314,22 @@ namespace authdb {
                        }catch(std::exception &e){
                            g_Log.error(clientAddr,e.what());
                            g_Log.access(clientAddr,method,curreq.getRequestURL(),500);
                            json_object *jerr = json_object_new_array();
                            json_object *eobj = json_object_new_object();
                            json_object_object_add(eobj,"error",json_object_new_string(e.what()));
                            json_object_array_add(jerr,eobj);
                            const char *errstr = json_object_to_json_string(jerr);
                            libhttppp::HttpResponse rep;
                            rep.setState(HTTP500);
                            rep.setContentType("text/html");
                            rep.send(curreq,e.what(),strlen(e.what()));
                            rep.setContentType("application/json");
                            rep.send(curreq,errstr,strlen(errstr));
                            json_object_put(jerr);
                        }catch(...){
                            g_Log.access(clientAddr,method,curreq.getRequestURL(),500);
                            libhttppp::HttpResponse rep;
                            rep.setState(HTTP500);
                            rep.setContentType("text/html");
                            rep.setContentType("application/json");
                            rep.send(curreq,"[{\"error\":\"internal error\"}]",28);
                            rep.send(curreq,"internal error",14);
                        }
                    }else{