X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/359e4b28458d352dc55ac39db7e4b5bb308eb361..1b2e8014ab6bc93d0ab0fe320ad3cfc8ed94ab81:/stglibs/srvconf.lib/include/stg/netunit.h diff --git a/stglibs/srvconf.lib/include/stg/netunit.h b/stglibs/srvconf.lib/include/stg/netunit.h index 4d3bcfb0..664eee63 100644 --- a/stglibs/srvconf.lib/include/stg/netunit.h +++ b/stglibs/srvconf.lib/include/stg/netunit.h @@ -27,25 +27,72 @@ #ifndef NetUnitH #define NetUnitH -#include "stg/os_int.h" +#include +#include +#include +#include #include -typedef bool (* RxCallback_t)(void *, const std::string &, bool); +#include "stg/blowfish.h" +#define STG_HEADER "SG04" +#define OK_HEADER "OKHD" +#define ERR_HEADER "ERHD" +#define OK_LOGIN "OKLG" +#define ERR_LOGIN "ERLG" +#define OK_LOGINS "OKLS" +#define ERR_LOGINS "ERLS" + +// äÌÉÎÎÁ ÛÉÆÒÕÅÍÏÇÏ É ÐÅÒÅÄÁ×ÁÅÍÏÇ ÚÁ ÏÄÉÎ ÒÁÚ ÂÌÏËÁ ÉÎÆÏÒÍÁÃÉÉ +#define ENC_MSG_LEN (8) + +#define MAX_ERR_STR_LEN (64) + +typedef int(*RxCallback_t)(void *, std::list *); + +enum status +{ +st_ok = 0, +st_conn_fail, +st_send_fail, +st_recv_fail, +st_header_err, +st_login_err, +st_logins_err, +st_data_err, +st_unknown_err, +st_dns_err, +st_xml_parse_error, +st_data_error +}; + +enum CONF_STATE +{ +confHdr = 0, +confLogin, +confLoginCipher, +confData +}; //--------------------------------------------------------------------------- class NETTRANSACT { public: - NETTRANSACT(const std::string & server, uint16_t port, - const std::string & login, const std::string & password); + NETTRANSACT(); int Transact(const char * data); const std::string & GetError() const; void SetRxCallback(void * data, RxCallback_t); + void SetServer(const char * serverName); + void SetServerPort(short unsigned p); + + void SetLogin(const char * l); + void SetPassword(const char * p); + //////////////////////////////////////////// int Connect(); int Disconnect(); + void Reset(); private: int TxHeader(); int RxHeaderAnswer(); @@ -57,14 +104,14 @@ private: int RxLoginSAnswer(); int TxData(const char * text); - int TxData(char * data); int RxDataAnswer(); std::string server; - uint16_t port; + short unsigned port; std::string login; std::string password; int outerSocket; + std::list answerList; RxCallback_t RxCallBack; void * dataRxCallBack; std::string errorMsg;