git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Додано видалення файлу .gitignore із архіву
[stg.git]
/
stglibs
/
srvconf.lib
/
netunit.cpp
diff --git
a/stglibs/srvconf.lib/netunit.cpp
b/stglibs/srvconf.lib/netunit.cpp
index 63bb8861ce6dd8010d9e5b2b41c4751be7d9ac76..bcfc113ea34293b5a2f13b0cdcf5b8d49edabfc9 100644
(file)
--- a/
stglibs/srvconf.lib/netunit.cpp
+++ b/
stglibs/srvconf.lib/netunit.cpp
@@
-25,12
+25,13
@@
*/
//---------------------------------------------------------------------------
*/
//---------------------------------------------------------------------------
-#include <stdio.h>
-#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <unistd.h>
+#include <cstdio>
+#include <cstring>
+
#include "netunit.h"
#include "common.h"
#include "netunit.h"
#include "common.h"
@@
-51,13
+52,16
@@
//---------------------------------------------------------------------------
NETTRANSACT::NETTRANSACT()
//---------------------------------------------------------------------------
NETTRANSACT::NETTRANSACT()
+ : port(0),
+ outerSocket(-1),
+ RxCallBack(NULL),
+ dataRxCallBack(NULL)
{
{
-RxCallBack = NULL;
}
//-----------------------------------------------------------------------------
}
//-----------------------------------------------------------------------------
-void NETTRANSACT::EnDecryptInit(const char * passwd, int
passwdLen
, BLOWFISH_CTX *ctx)
+void NETTRANSACT::EnDecryptInit(const char * passwd, int, BLOWFISH_CTX *ctx)
{
{
-unsigned char * keyL = NULL;
//[PASSWD_LEN]; // ��� ������
+unsigned char * keyL = NULL;
keyL = new unsigned char[PASSWD_LEN];
keyL = new unsigned char[PASSWD_LEN];
@@
-72,28
+76,12
@@
delete[] keyL;
//-----------------------------------------------------------------------------
void NETTRANSACT::Encrypt(char * d, const char * s, BLOWFISH_CTX *ctx)
{
//-----------------------------------------------------------------------------
void NETTRANSACT::Encrypt(char * d, const char * s, BLOWFISH_CTX *ctx)
{
-/*unsigned char ss[8];
-
-memcpy(ss, s, 8);
-
-Blowfish_Encrypt(ctx, (uint32_t *)ss, (uint32_t *)(ss + 4));
-
-memcpy(d, ss, 8);*/
EncodeString(d, s, ctx);
EncodeString(d, s, ctx);
-
}
//---------------------------------------------------------------------------
void NETTRANSACT::Decrypt(char * d, const char * s, BLOWFISH_CTX *ctx)
{
}
//---------------------------------------------------------------------------
void NETTRANSACT::Decrypt(char * d, const char * s, BLOWFISH_CTX *ctx)
{
-/*unsigned char ss[8];
-
-memcpy(ss, s, 8);
-
-Blowfish_Decrypt(ctx, (uint32_t *)ss, (uint32_t *)(ss + 4));
-
-memcpy(d, ss, 8);*/
DecodeString(d, s, ctx);
DecodeString(d, s, ctx);
-
}
//---------------------------------------------------------------------------
int NETTRANSACT::Connect()
}
//---------------------------------------------------------------------------
int NETTRANSACT::Connect()
@@
-103,25
+91,25
@@
int ret;
outerSocket = socket(PF_INET, SOCK_STREAM, 0);
if (outerSocket < 0)
{
outerSocket = socket(PF_INET, SOCK_STREAM, 0);
if (outerSocket < 0)
{
-
strcpy(errorMsg, CREATE_SOCKET_ERROR)
;
+
errorMsg = CREATE_SOCKET_ERROR
;
return st_conn_fail;
}
return st_conn_fail;
}
+struct sockaddr_in outerAddr;
memset(&outerAddr, 0, sizeof(outerAddr));
memset(&outerAddr, 0, sizeof(outerAddr));
-memset(&localAddr, 0, sizeof(localAddr));
struct hostent he;
struct hostent * phe;
unsigned long ip;
struct hostent he;
struct hostent * phe;
unsigned long ip;
-ip = inet_addr(server);
+ip = inet_addr(server
.c_str()
);
if (ip == INADDR_NONE)
{
if (ip == INADDR_NONE)
{
- phe = gethostbyname(server);
+ phe = gethostbyname(server
.c_str()
);
if (phe == NULL)
{
if (phe == NULL)
{
-
sprintf(errorMsg, "DNS error.\nCan not reslove %s", server)
;
+
errorMsg = "DNS error.\nCan not reslove " + server
;
return st_dns_err;
}
return st_dns_err;
}
@@
-136,7
+124,7
@@
ret = connect(outerSocket, (struct sockaddr*)&outerAddr, sizeof(outerAddr));
if (ret < 0)
{
if (ret < 0)
{
-
strcpy(errorMsg, CONNECT_FAILED)
;
+
errorMsg = CONNECT_FAILED
;
close(outerSocket);
return st_conn_fail;
}
close(outerSocket);
return st_conn_fail;
}
@@
-209,7
+197,7
@@
int ret;
ret = send(outerSocket, STG_HEADER, strlen(STG_HEADER), 0);
if (ret <= 0)
{
ret = send(outerSocket, STG_HEADER, strlen(STG_HEADER), 0);
if (ret <= 0)
{
-
strcpy(errorMsg, SEND_HEADER_ERROR)
;
+
errorMsg = SEND_HEADER_ERROR
;
return st_send_fail;
}
return st_send_fail;
}
@@
-219,13
+207,12
@@
return st_ok;
int NETTRANSACT::RxHeaderAnswer()
{
char buffer[sizeof(STG_HEADER)+1];
int NETTRANSACT::RxHeaderAnswer()
{
char buffer[sizeof(STG_HEADER)+1];
-int ret;
//, we;
+int ret;
ret = recv(outerSocket, buffer, strlen(OK_HEADER), 0);
if (ret <= 0)
{
ret = recv(outerSocket, buffer, strlen(OK_HEADER), 0);
if (ret <= 0)
{
- //we = WSAGetLastError();
- strcpy(errorMsg, RECV_HEADER_ANSWER_ERROR);
+ errorMsg = RECV_HEADER_ANSWER_ERROR;
return st_recv_fail;
}
return st_recv_fail;
}
@@
-237,12
+224,12
@@
else
{
if (strncmp(ERR_HEADER, buffer, strlen(ERR_HEADER)) == 0)
{
{
if (strncmp(ERR_HEADER, buffer, strlen(ERR_HEADER)) == 0)
{
-
strcpy(errorMsg, INCORRECT_HEADER)
;
+
errorMsg = INCORRECT_HEADER
;
return st_header_err;
}
else
{
return st_header_err;
}
else
{
-
strcpy(errorMsg, UNKNOWN_ERROR)
;
+
errorMsg = UNKNOWN_ERROR
;
return st_unknown_err;
}
}
return st_unknown_err;
}
}
@@
-254,12
+241,12
@@
char loginZ[ADM_LOGIN_LEN];
int ret;
memset(loginZ, 0, ADM_LOGIN_LEN);
int ret;
memset(loginZ, 0, ADM_LOGIN_LEN);
-strncpy(loginZ, login, ADM_LOGIN_LEN);
+strncpy(loginZ, login
.c_str()
, ADM_LOGIN_LEN);
ret = send(outerSocket, loginZ, ADM_LOGIN_LEN, 0);
if (ret <= 0)
{
ret = send(outerSocket, loginZ, ADM_LOGIN_LEN, 0);
if (ret <= 0)
{
-
strcpy(errorMsg, SEND_LOGIN_ERROR)
;
+
errorMsg = SEND_LOGIN_ERROR
;
return st_send_fail;
}
return st_send_fail;
}
@@
-269,12
+256,12
@@
return st_ok;
int NETTRANSACT::RxLoginAnswer()
{
char buffer[sizeof(OK_LOGIN)+1];
int NETTRANSACT::RxLoginAnswer()
{
char buffer[sizeof(OK_LOGIN)+1];
-int ret;
//, we;
+int ret;
ret = recv(outerSocket, buffer, strlen(OK_LOGIN), 0);
if (ret <= 0)
{
ret = recv(outerSocket, buffer, strlen(OK_LOGIN), 0);
if (ret <= 0)
{
-
strcpy(errorMsg, RECV_LOGIN_ANSWER_ERROR)
;
+
errorMsg = RECV_LOGIN_ANSWER_ERROR
;
return st_recv_fail;
}
return st_recv_fail;
}
@@
-286,12
+273,12
@@
else
{
if (strncmp(ERR_LOGIN, buffer, strlen(ERR_LOGIN)) == 0)
{
{
if (strncmp(ERR_LOGIN, buffer, strlen(ERR_LOGIN)) == 0)
{
-
strcpy(errorMsg, INCORRECT_LOGIN)
;
+
errorMsg = INCORRECT_LOGIN
;
return st_login_err;
}
else
{
return st_login_err;
}
else
{
-
strcpy(errorMsg, UNKNOWN_ERROR)
;
+
errorMsg = UNKNOWN_ERROR
;
return st_unknown_err;
}
}
return st_unknown_err;
}
}
@@
-304,10
+291,10
@@
char ct[ENC_MSG_LEN];
int ret;
memset(loginZ, 0, ADM_LOGIN_LEN);
int ret;
memset(loginZ, 0, ADM_LOGIN_LEN);
-strncpy(loginZ, login, ADM_LOGIN_LEN);
+strncpy(loginZ, login
.c_str()
, ADM_LOGIN_LEN);
BLOWFISH_CTX ctx;
BLOWFISH_CTX ctx;
-EnDecryptInit(password, PASSWD_LEN, &ctx);
+EnDecryptInit(password
.c_str()
, PASSWD_LEN, &ctx);
for (int j = 0; j < ADM_LOGIN_LEN / ENC_MSG_LEN; j++)
{
for (int j = 0; j < ADM_LOGIN_LEN / ENC_MSG_LEN; j++)
{
@@
-315,7
+302,7
@@
for (int j = 0; j < ADM_LOGIN_LEN / ENC_MSG_LEN; j++)
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
-
strcpy(errorMsg, SEND_LOGIN_ERROR)
;
+
errorMsg = SEND_LOGIN_ERROR
;
return st_send_fail;
}
}
return st_send_fail;
}
}
@@
-331,7
+318,7
@@
int ret;
ret = recv(outerSocket, buffer, strlen(OK_LOGINS), 0);
if (ret <= 0)
{
ret = recv(outerSocket, buffer, strlen(OK_LOGINS), 0);
if (ret <= 0)
{
-
strcpy(errorMsg, RECV_LOGIN_ANSWER_ERROR)
;
+
errorMsg = RECV_LOGIN_ANSWER_ERROR
;
return st_recv_fail;
}
return st_recv_fail;
}
@@
-343,12
+330,12
@@
else
{
if (strncmp(ERR_LOGINS, buffer, strlen(ERR_LOGINS)) == 0)
{
{
if (strncmp(ERR_LOGINS, buffer, strlen(ERR_LOGINS)) == 0)
{
-
strcpy(errorMsg, INCORRECT_LOGIN)
;
+
errorMsg = INCORRECT_LOGIN
;
return st_logins_err;
}
else
{
return st_logins_err;
}
else
{
-
strcpy(errorMsg, UNKNOWN_ERROR)
;
+
errorMsg = UNKNOWN_ERROR
;
return st_unknown_err;
}
}
return st_unknown_err;
}
}
@@
-365,7
+352,7
@@
int n = strlen(text) / ENC_MSG_LEN;
int r = strlen(text) % ENC_MSG_LEN;
BLOWFISH_CTX ctx;
int r = strlen(text) % ENC_MSG_LEN;
BLOWFISH_CTX ctx;
-EnDecryptInit(password, PASSWD_LEN, &ctx);
+EnDecryptInit(password
.c_str()
, PASSWD_LEN, &ctx);
for (j = 0; j < n; j++)
{
for (j = 0; j < n; j++)
{
@@
-374,7
+361,7
@@
for (j = 0; j < n; j++)
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
-
strcpy(errorMsg, SEND_DATA_ERROR)
;
+
errorMsg = SEND_DATA_ERROR
;
return st_send_fail;
}
}
return st_send_fail;
}
}
@@
-383,13
+370,13
@@
memset(textZ, 0, ENC_MSG_LEN);
if (r)
strncpy(textZ, text + j*ENC_MSG_LEN, ENC_MSG_LEN);
if (r)
strncpy(textZ, text + j*ENC_MSG_LEN, ENC_MSG_LEN);
-EnDecryptInit(password, PASSWD_LEN, &ctx);
+EnDecryptInit(password
.c_str()
, PASSWD_LEN, &ctx);
Encrypt(ct, textZ, &ctx);
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
Encrypt(ct, textZ, &ctx);
ret = send(outerSocket, ct, ENC_MSG_LEN, 0);
if (ret <= 0)
{
-
strcpy(errorMsg, SEND_DATA_ERROR)
;
+
errorMsg = SEND_DATA_ERROR
;
return st_send_fail;
}
return st_send_fail;
}
@@
-403,7
+390,7
@@
char buffS[ENC_MSG_LEN];
char passwd[ADM_PASSWD_LEN];
memset(passwd, 0, ADM_PASSWD_LEN);
char passwd[ADM_PASSWD_LEN];
memset(passwd, 0, ADM_PASSWD_LEN);
-strncpy(passwd, password, ADM_PASSWD_LEN);
+strncpy(passwd, password
.c_str()
, ADM_PASSWD_LEN);
memset(buff, 0, ENC_MSG_LEN);
int l = strlen(data)/ENC_MSG_LEN;
memset(buff, 0, ENC_MSG_LEN);
int l = strlen(data)/ENC_MSG_LEN;
@@
-431,7
+418,7
@@
char bufferS[ENC_MSG_LEN];
char buffer[ENC_MSG_LEN + 1];
BLOWFISH_CTX ctx;
char buffer[ENC_MSG_LEN + 1];
BLOWFISH_CTX ctx;
-EnDecryptInit(password, PASSWD_LEN, &ctx);
+EnDecryptInit(password
.c_str()
, PASSWD_LEN, &ctx);
while (1)
{
while (1)
{
@@
-439,13
+426,12
@@
while (1)
if (ret <= 0)
{
close(outerSocket);
if (ret <= 0)
{
close(outerSocket);
-
strcpy(errorMsg, RECV_DATA_ANSWER_ERROR)
;
+
errorMsg = RECV_DATA_ANSWER_ERROR
;
return st_recv_fail;
}
if (n == ENC_MSG_LEN)
{
return st_recv_fail;
}
if (n == ENC_MSG_LEN)
{
-
n = 0;
Decrypt(buffer, bufferS, &ctx);
buffer[ENC_MSG_LEN] = 0;
n = 0;
Decrypt(buffer, bufferS, &ctx);
buffer[ENC_MSG_LEN] = 0;
@@
-470,17
+456,17
@@
while (1)
//---------------------------------------------------------------------------
void NETTRANSACT::SetLogin(const char * l)
{
//---------------------------------------------------------------------------
void NETTRANSACT::SetLogin(const char * l)
{
-
strncpy(login, l, ADM_LOGIN_LEN)
;
+
login = l
;
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetPassword(const char * p)
{
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetPassword(const char * p)
{
-
strncpy(password, p, ADM_PASSWD_LEN)
;
+
password = p
;
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetServer(const char * serverName)
{
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetServer(const char * serverName)
{
-s
trncpy(server, serverName, SERVER_NAME_LEN)
;
+s
erver = serverName
;
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetServerPort(short unsigned p)
}
//---------------------------------------------------------------------------
void NETTRANSACT::SetServerPort(short unsigned p)
@@
-494,7
+480,7
@@
RxCallBack = cb;
dataRxCallBack = data;
}
//---------------------------------------------------------------------------
dataRxCallBack = data;
}
//---------------------------------------------------------------------------
-c
har * NETTRANSACT::GetError()
+c
onst std::string & NETTRANSACT::GetError() const
{
return errorMsg;
}
{
return errorMsg;
}
@@
-504,4
+490,3
@@
void NETTRANSACT::Reset()
answerList.clear();
}
//---------------------------------------------------------------------------
answerList.clear();
}
//---------------------------------------------------------------------------
-