]> git.stg.codes - stg.git/blobdiff - stglibs/srvconf.lib/netunit.h
USER_STAT refactoring.
[stg.git] / stglibs / srvconf.lib / netunit.h
index 72d3b721f7caf5bc0c21897bd80c7d587c272fea..fb2a1e289bdcd162281ede57fdb5536473c1e27a 100644 (file)
 #ifndef NetUnitH
 #define NetUnitH
 
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <list>
-#include <string>
-
-#include "common.h"
-#include "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"
+#include "stg/os_int.h"
 
-// äÌÉÎÎÁ ÛÉÆÒÕÅÍÏÇÏ É ÐÅÒÅÄÁ×ÁÅÍÏÇ ÚÁ ÏÄÉΠÒÁÚ ÂÌÏËÁ ÉÎÆÏÒÍÁÃÉÉ
-#define  ENC_MSG_LEN    (8)
-
-#define MAX_ERR_STR_LEN (64)
-
-typedef int(*RxCallback_t)(void *, std::list<std::string> *);
+#include <string>
 
-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
-};
+typedef bool (* RxCallback_t)(void *, const std::string &, bool);
 
-enum CONF_STATE
-{
-confHdr = 0,
-confLogin,
-confLoginCipher,
-confData
-};
 //---------------------------------------------------------------------------
 class NETTRANSACT
 {
 public:
-    NETTRANSACT();
+    NETTRANSACT(const std::string & server, uint16_t port,
+                const std::string & login, const std::string & password);
     int     Transact(const char * data);
-    char   *GetError();
-
-    void    SetRxCallback(void * data, RxCallback_t);
+    const std::string & GetError() const { return errorMsg; }
 
-    void    SetServer(const char * serverName);
-    void    SetServerPort(short unsigned p);
+    void    SetRxCallback(void * data, RxCallback_t cb);
 
-    void    SetLogin(const char * l);
-    void    SetPassword(const char * p);
-    ////////////////////////////////////////////
     int     Connect();
     int     Disconnect();
-    void    Reset();
 private:
     int     TxHeader();
     int     RxHeaderAnswer();
@@ -107,24 +60,14 @@ private:
     int     TxData(char * data);
     int     RxDataAnswer();
 
-    void Encrypt(char * d, const char * s, BLOWFISH_CTX *ctx);
-    void EnDecryptInit(const char * passwd, int passwdLen, BLOWFISH_CTX *ctx);
-    void Decrypt(char * d, const char * s, BLOWFISH_CTX *ctx);
-
-    //unsigned ip;
-    char    server[SERVER_NAME_LEN];
-    short unsigned  port;
-    char    login[ADM_LOGIN_LEN];
-    char    password[ADM_PASSWD_LEN];
-    int     outerSocket;
-    int     localSocket;
-    struct  sockaddr_in outerAddr;
-    struct  sockaddr_in localAddr;
-    int     error;
-    std::list<std::string>   answerList;
+    std::string server;
+    uint16_t  port;
+    std::string login;
+    std::string password;
+    int outerSocket;
     RxCallback_t RxCallBack;
-    void *  dataRxCallBack;
-    char    errorMsg[MAX_ERR_STR_LEN];
+    void * dataRxCallBack;
+    std::string errorMsg;
 };
 //---------------------------------------------------------------------------
 #endif