X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/e19d853bbf16b7ba8c58c71c1da488b9034e0fb3..86318ffd8cbf7af4968dfc89d2c99513dced92de:/projects/sgconf/common_sg.cpp diff --git a/projects/sgconf/common_sg.cpp b/projects/sgconf/common_sg.cpp index a15f7588..9c1b7283 100644 --- a/projects/sgconf/common_sg.cpp +++ b/projects/sgconf/common_sg.cpp @@ -52,6 +52,12 @@ struct GetUserCbData void * data; bool * result; }; +//----------------------------------------------------------------------------- +struct AuthByCbData +{ + void * data; + bool * result; +}; //--------------------------------------------------------------------------- struct HelpParams { @@ -84,7 +90,7 @@ HelpParams hp[] = {"set credit expire", "get credit expire", "-E", ""}, {"set password", "get password", "-o", ""}, {"set prepaid traffic", "get prepaid traffic", "-e", ""}, - {"set IP-addresses", "get IP-addresses", "-I", "<*|ip_addr[,ip_addr...]>"}, + {"set IP-addresses", "get IP-addresses", "-I", "<*|ip_addr[,ip_addr...]>"}, {"set name", "get name", "-A", ""}, {"set note", "get note", "-N", ""}, {"set street address", "get street address", "-D", "
"}, @@ -253,7 +259,7 @@ if (cd == (iconv_t) -1) exit(ICONV_ERR_CODE); } -#if defined(FREE_BSD) || defined(FREE_BSD5) +#if defined(CONST_ICONV) nconv = iconv(cd, (const char **)&inbuf, &insize, &outbuf, &outsize); #else nconv = iconv(cd, &inbuf, &insize, &outbuf, &outsize); @@ -329,13 +335,13 @@ if (ud->login == "") return; } -if (!req->cash.res_empty()) +if (!req->cash.empty()) cout << "cash=" << ud->cash << endl; -if (!req->credit.res_empty()) +if (!req->credit.empty()) cout << "credit=" << ud->credit << endl; -if (!req->creditExpire.res_empty()) +if (!req->creditExpire.empty()) { char buf[32]; struct tm brokenTime; @@ -355,32 +361,32 @@ if (!req->creditExpire.res_empty()) cout << "creditExpire=" << buf << endl; } -if (!req->down.res_empty()) +if (!req->down.empty()) cout << "down=" << ud->down << endl; -if (!req->passive.res_empty()) +if (!req->passive.empty()) cout << "passive=" << ud->passive << endl; -if (!req->disableDetailStat.res_empty()) +if (!req->disableDetailStat.empty()) cout << "disableDetailStat=" << ud->disableDetailStat << endl; -if (!req->alwaysOnline.res_empty()) +if (!req->alwaysOnline.empty()) cout << "alwaysOnline=" << ud->alwaysOnline << endl; -if (!req->prepaidTraff.res_empty()) +if (!req->prepaidTraff.empty()) cout << "prepaidTraff=" << ud->prepaidTraff << endl; for (int i = 0; i < DIR_NUM; i++) { - if (!req->u[i].res_empty()) + if (!req->u[i].empty()) cout << "u" << i << "=" << ud->stat.mu[i] << endl; - if (!req->d[i].res_empty()) + if (!req->d[i].empty()) cout << "d" << i << "=" << ud->stat.md[i] << endl; } for (int i = 0; i < USERDATA_NUM; i++) { - if (!req->ud[i].res_empty()) + if (!req->ud[i].empty()) { string str; ConvertFromKOI8(ud->userData[i], &str); @@ -398,11 +404,11 @@ StringReqParams strReqParams[] = {"group", req->group, &ud->group}, {"tariff", req->tariff, &ud->tariff}, {"password", req->usrPasswd, &ud->password}, - {"ip", req->ips, &ud->ips} // IP-address of user + {"ip", req->ips, &ud->ips} // IP-address of user }; for (unsigned i = 0; i < sizeof(strReqParams) / sizeof(StringReqParams); i++) { - if (!strReqParams[i].reqParam.res_empty()) + if (!strReqParams[i].reqParam.empty()) { string str; ConvertFromKOI8(*strReqParams[i].value, &str); @@ -412,11 +418,18 @@ for (unsigned i = 0; i < sizeof(strReqParams) / sizeof(StringReqParams); i++) *result = true; } //----------------------------------------------------------------------------- -void RecvAuthByData(const PARSER_AUTH_BY::INFO & list, void *) +void RecvAuthByData(const std::vector & list, void * d) { +AuthByCbData * abcbd; +abcbd = (AuthByCbData *)d; + +bool * result = abcbd->result; + for (std::vector::const_iterator it = list.begin(); it != list.end(); ++it) cout << *it << "\n"; cout << endl; + +*result = true; } //----------------------------------------------------------------------------- int ProcessSetUser(const std::string &server, @@ -516,21 +529,33 @@ int ProcessAuthBy(const std::string &server, { SERVCONF sc; -sc.SetServer(server.c_str()); -sc.SetPort(port); -sc.SetAdmLogin(admLogin.c_str()); +bool result = false; + +sc.SetServer(server.c_str()); // õÓÔÁÎÁ×ÌÉ×ÁÅÍ ÉÍÑ ÓÅÒ×ÅÒÁ Ó ËÏÔÏÒÇÏ ÚÁÂÉÒÁÔØ ÉÎÆÕ +sc.SetPort(port); // ÁÄÍÉÎÓËÉÊ ÐÏÒÔ ÓÅÒ×ÅÒÁÐÏÒÔ +sc.SetAdmLogin(admLogin.c_str()); // ÷ÙÓÔÁ×ÌÑÅÍ ÌÏÇÉÎ É ÐÁÒÏÌØ ÁÄÍÉÎÁ sc.SetAdmPassword(admPasswd.c_str()); -sc.SetAuthByCallback(RecvAuthByData, NULL); -sc.AuthBy(login.c_str()); +// TODO Good variable name :) +AuthByCbData abcbd; + +abcbd.data = data; +abcbd.result = &result; + +sc.SetGetUserAuthByRecvCb(RecvAuthByData, &abcbd); +sc.GetUserAuthBy(login.c_str()); -if (sc.GetError()) +if (result) + { + printf("Ok\n"); + return 0; + } +else { printf("Error\n"); return -1; } -printf("Ok\n"); return 0; } //-----------------------------------------------------------------------------