X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/641204dfbdb9fc870cdd2e7f9e3169a44693e7bf..8f1d13e63e83c5f590d59f6d09f2d1dae69ba526:/projects/sgconf/common_sg.cpp diff --git a/projects/sgconf/common_sg.cpp b/projects/sgconf/common_sg.cpp index 77d7476f..b73a79c8 100644 --- a/projects/sgconf/common_sg.cpp +++ b/projects/sgconf/common_sg.cpp @@ -34,10 +34,10 @@ #include #include +#include "stg/common.h" +#include "sg_error_codes.h" #include "common_sg.h" #include "version_sg.h" -#include "common.h" -#include "sg_error_codes.h" using namespace std; @@ -81,6 +81,7 @@ HelpParams hp[] = { {"set tariff", "get tariff", "-t", ""}, {"set credit", "get credit", "-r", ""}, + {"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...]>"}, @@ -121,6 +122,9 @@ printf("sgconf set -s -p -a -w -u -- printf("To get userdata<0...9> use:\n"); printf("sgconf get -s -p -a -w -u --ud0 [--ud1 ...]\n\n"); +printf("To get user's authorizers list use:\n"); +printf("sgconf get -s -p -a -w -u --authorized-by\n\n"); + printf("To send message use:\n"); printf("sgconf set -s -p -a -w -u -m \n\n"); @@ -148,6 +152,7 @@ for (int i = 0; i < (int)strlen(login); i++) if (!(( login[i] >= 'a' && login[i] <= 'z') || (login[i] >= 'A' && login[i] <= 'Z') || (login[i] >= '0' && login[i] <= '9') + || login[i] == '.' || login[i] == '_' || login[i] == '-')) { @@ -218,12 +223,12 @@ char charsetT[100]; if (encType == TO_KOI8) { strcpy(charsetF, nl_langinfo(CODESET)); - strcpy(charsetT, "koi8-r"); + strcpy(charsetT, "koi8-ru"); } else { strcpy(charsetT, nl_langinfo(CODESET)); - strcpy(charsetF, "koi8-r"); + strcpy(charsetF, "koi8-ru"); } size_t nconv = 1; @@ -330,6 +335,26 @@ if (!req->cash.res_empty()) if (!req->credit.res_empty()) cout << "credit=" << ud->credit << endl; +if (!req->creditExpire.res_empty()) + { + char buf[32]; + struct tm brokenTime; + time_t tt = ud->creditExpire; + + brokenTime.tm_wday = 0; + brokenTime.tm_yday = 0; + brokenTime.tm_isdst = 0; + brokenTime.tm_hour = 0; + brokenTime.tm_min = 0; + brokenTime.tm_sec = 0; + + gmtime_r(&tt, &brokenTime); + + strftime(buf, 32, "%Y-%m-%d", &brokenTime); + + cout << "creditExpire=" << buf << endl; + } + if (!req->down.res_empty()) cout << "down=" << ud->down << endl; @@ -387,6 +412,13 @@ for (unsigned i = 0; i < sizeof(strReqParams) / sizeof(StringReqParams); i++) *result = true; } //----------------------------------------------------------------------------- +void RecvAuthByData(const PARSER_AUTH_BY::INFO & list, void *) +{ +for (std::vector::const_iterator it = list.begin(); it != list.end(); ++it) + cout << *it << "\n"; +cout << endl; +} +//----------------------------------------------------------------------------- int ProcessSetUser(const std::string &server, int port, const std::string &admLogin, @@ -475,5 +507,30 @@ else return 0; } //----------------------------------------------------------------------------- +int ProcessAuthBy(const std::string &server, + int port, + const std::string &admLogin, + const std::string &admPasswd, + const std::string &login, + void * data) +{ +SERVCONF sc; + +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()); +if (sc.GetError()) + { + printf("Error\n"); + return -1; + } +printf("Ok\n"); +return 0; +} +//-----------------------------------------------------------------------------