X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/3dbb744fcc0931bfd85b1bd3cbf4194577de0de7..30e4ac71eccb745ff3dc7f944ea09936f8ea7f42:/stglibs/ia_auth_c.lib/ia_auth_c.cpp diff --git a/stglibs/ia_auth_c.lib/ia_auth_c.cpp b/stglibs/ia_auth_c.lib/ia_auth_c.cpp index a7620692..25e4d8c9 100644 --- a/stglibs/ia_auth_c.lib/ia_auth_c.cpp +++ b/stglibs/ia_auth_c.lib/ia_auth_c.cpp @@ -108,19 +108,13 @@ return 0; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- IA_CLIENT_PROT::IA_CLIENT_PROT(const string & sn, unsigned short p, uint16_t localPort) - : stat(), - action(IA_NONE), + : action(IA_NONE), phase(1), phaseTime(0), - messageText(), - infoText(), - strError(), codeError(0), - nonstop(true), + nonstop(false), isNetPrepared(false), proxyMode(false), - password(), - login(), serverName(sn), port(p), ip(0), @@ -142,7 +136,6 @@ IA_CLIENT_PROT::IA_CLIENT_PROT(const string & sn, unsigned short p, uint16_t loc infoCbData(NULL), errorCbData(NULL), dirNameCbData(NULL), - packetTypes(), connSyn8(NULL), connSynAck8(NULL), connAck8(NULL), @@ -151,7 +144,6 @@ IA_CLIENT_PROT::IA_CLIENT_PROT(const string & sn, unsigned short p, uint16_t loc disconnSyn8(NULL), disconnSynAck8(NULL), disconnAck8(NULL), - err(), info(NULL) { memset(&stat, 0, sizeof(stat)); @@ -175,9 +167,21 @@ packetTypes["INFO_7"] = INFO_7_N; packetTypes["INFO_8"] = INFO_8_N; unsigned char key[IA_PASSWD_LEN]; -memset(key, 0, IA_LOGIN_LEN); +memset(key, 0, IA_PASSWD_LEN); strncpy((char *)key, "pr7Hhen", 8); Blowfish_Init(&ctxHdr, key, IA_PASSWD_LEN); + +memset(key, 0, IA_PASSWD_LEN); +Blowfish_Init(&ctxPass, key, IA_PASSWD_LEN); + +for (size_t i = 0; i < DIR_NUM; ++i) + { + selectedDirs[i] = false; + } + +servAddr.sin_family = AF_INET; +servAddr.sin_port = htons(port); +servAddr.sin_addr.s_addr = ip; } //--------------------------------------------------------------------------- void IA_CLIENT_PROT::PrepareNet() @@ -198,7 +202,7 @@ if (ip == INADDR_NONE) strError = string("Unknown host ") + "\'" + serverName + "\'"; codeError = IA_GETHOSTBYNAME_ERROR; if (pErrorCb != NULL) - pErrorCb(messageText, IA_GETHOSTBYNAME_ERROR, errorCbData); + pErrorCb(strError, IA_GETHOSTBYNAME_ERROR, errorCbData); } } @@ -210,10 +214,7 @@ closesocket(sockr); sockr = socket(AF_INET, SOCK_DGRAM, 0); // Cîêåò ÷åðåç êîòîðûé øëåì è ïðèíèìàåì -localAddrS.sin_family = AF_INET; -localAddrS.sin_port = htons(port); -localAddrS.sin_addr.s_addr = inet_addr("0.0.0.0"); - +struct sockaddr_in localAddrR; // Íàø àäðåñ localAddrR.sin_family = AF_INET; if (localPort) @@ -232,7 +233,7 @@ if (res == -1) strError = "bind error"; codeError = IA_BIND_ERROR; if (pErrorCb != NULL) - pErrorCb(messageText, IA_BIND_ERROR, errorCbData); + pErrorCb(strError, IA_BIND_ERROR, errorCbData); return; } @@ -245,7 +246,7 @@ if (0 != fcntl(sockr, F_SETFL, O_NONBLOCK)) strError = "fcntl error"; codeError = IA_FCNTL_ERROR; if (pErrorCb != NULL) - pErrorCb(messageText, IA_FCNTL_ERROR, errorCbData); + pErrorCb(strError, IA_FCNTL_ERROR, errorCbData); } #endif