X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/682d1942bc6ada61a8f1e37221b0c8374e4355c5..ba6a9aa642d0960f3c429748f860918572206f92:/projects/sgconf/main.cpp?ds=sidebyside diff --git a/projects/sgconf/main.cpp b/projects/sgconf/main.cpp index 0a2e12b4..2aaacbc0 100644 --- a/projects/sgconf/main.cpp +++ b/projects/sgconf/main.cpp @@ -37,9 +37,9 @@ #include #include +#include "stg/common.h" +#include "stg/netunit.h" #include "request.h" -#include "common.h" -#include "netunit.h" #include "common_sg.h" #include "sg_error_codes.h" @@ -312,6 +312,22 @@ delete[] s; return ss; } //----------------------------------------------------------------------------- +time_t ParseCreditExpire(const char * str) +{ +struct tm brokenTime; + +brokenTime.tm_wday = 0; +brokenTime.tm_yday = 0; +brokenTime.tm_isdst = 0; +brokenTime.tm_hour = 0; +brokenTime.tm_min = 0; +brokenTime.tm_sec = 0; + +stg_strptime(str, "%Y-%m-%d", &brokenTime); + +return stg_timegm(&brokenTime); +} +//----------------------------------------------------------------------------- void ParseAnyString(const char * c, string * msg, const char * enc) { iconv_t cd; @@ -419,6 +435,12 @@ if (!req->credit.res_empty()) strcat(r, str); } +if (!req->creditExpire.res_empty()) + { + sprintf(str, "\n", req->creditExpire.const_data()); + strcat(r, str); + } + if (!req->prepaidTraff.res_empty()) { sprintf(str, "\n", req->prepaidTraff.const_data()); @@ -681,7 +703,7 @@ REQUEST req; RESETABLE t1; int missedOptionArg = false; -const char * short_options_get = "s:p:a:w:u:crtmodieNADLPGISO"; +const char * short_options_get = "s:p:a:w:u:crtmodieNADLPGISOE"; int option_index = -1; while (1) @@ -726,6 +748,10 @@ while (1) req.credit = 1; break; + case 'E': //credit expire + req.creditExpire = 1; + break; + case 'd': //down req.down = 1; break; @@ -860,7 +886,7 @@ REQUEST req; RESETABLE t1; -const char * short_options_set = "s:p:a:w:u:c:r:t:m:o:d:i:e:v:nlN:A:D:L:P:G:I:S:O:"; +const char * short_options_set = "s:p:a:w:u:c:r:t:m:o:d:i:e:v:nlN:A:D:L:P:G:I:S:O:E:"; int missedOptionArg = false; @@ -912,6 +938,10 @@ while (1) req.credit = ParseCredit(optarg); break; + case 'E': //credit expire + req.creditExpire = ParseCreditExpire(optarg); + break; + case 'd': //down req.down = ParseDownPassive(optarg); break; @@ -943,22 +973,22 @@ while (1) break; case 'N': //Note - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.note = str; break; case 'A': //nAme - ParseAnyString(optarg, &str, "koi8-r"); + ParseAnyString(optarg, &str, "koi8-ru"); req.name = str; break; case 'D': //aDdress - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.address = str; break; case 'L': //emaiL - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.email = str; //printf("EMAIL=%s\n", optarg); break; @@ -969,7 +999,7 @@ while (1) break; case 'G': //Group - ParseAnyString(optarg, &str); + ParseAnyString(optarg, &str, "koi8-ru"); req.group = str; break;