/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* * Author : Boris Mikhailenko <stg34@stargazer.dp.ua> */ /* $Revision: 1.6 $ $Date: 2008/02/09 16:22:18 $ $Author: nobunaga $ */ #include <stdio.h> #include <string.h> #include "servconf.h" //----------------------------------------------------------------------------- void RecvUserData(USERDATA * ud, void * d) { // ôÕÔ ×Ù×ÏÄÉÔÓÑ ÞÁÓÔØ ÉÎÆÙ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ, ÎÏ × ud ÐÅÒÅÄÁÅÔÓÑ ×ÓÑ ÉÎÆÁ printf("login: %s password :%s cash:%8.2f ip:%16s\n", ud->login, ud->password, ud->cash, ud->ips); } //----------------------------------------------------------------------------- void RecvServerInfoData(SERVERINFO * si, void * d) { // ôÕÔ ÔÏÖÅ ÔÏÌØËÏ ÞÁÓÔØ ÉÎÆÙ ×Ù×ÏÄÉÔÓÑ ÎÁ ÜËÒÁÎ printf("uname: %20s\n", si->uname); printf("version: %20s\n", si->version); printf("users: %20d\n", si->usersNum); for (int i = 0; i < DIR_NUM; i++) { printf("dir name 1: >%16s<\n", si->dirName[i]); } } //----------------------------------------------------------------------------- int RecvSetUserAnswer(const char * ans, void * d) { printf("ans=%s\n", ans); if (strcasecmp("Ok", ans) == 0) *((bool*)d) = true; else *((bool*)d) = false; return 0; } //----------------------------------------------------------------------------- int RecvCheckUserAnswer(const char * ans, void * d) { if (strcmp("Ok", ans) == 0) *((bool*)d) = true; else *((bool*)d) = false; return 0; } //----------------------------------------------------------------------------- int RecvSendMessageAnswer(const char * ans, void * d) { if (strcasecmp("Ok", ans) == 0) *((bool*)d) = true; else *((bool*)d) = false; return 0; } //----------------------------------------------------------------------------- int main() { SERVCONF sc; int ret; bool userExist = false; bool result = false; sc.SetServer("127.0.0.1"); // õÓÔÁÎÁ×ÌÉ×ÁÅÍ ÉÍÑ ÓÅÒ×ÅÒÁ Ó ËÏÔÏÒÇÏ ÚÁÂÉÒÁÔØ ÉÎÆÕ sc.SetPort(5555); // ÁÄÍÉÎÓËÉÊ ÐÏÒÔ ÓÅÒ×ÅÒÁÐÏÒÔ sc.SetAdmLogin("admin"); // ÷ÙÓÔÁ×ÌÑÅÍ ÌÏÇÉÎ É ÐÁÒÏÌØ ÁÄÍÉÎÁ sc.SetAdmPassword("123456"); sc.SetUserDataRecvCb(RecvUserData, NULL); // óÔÁ×ÉÍ ËÏÌÂÜË-ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ sc.SetGetUserDataRecvCb(RecvUserData, NULL); // GET USER sc.SetServerInfoRecvCb(RecvServerInfoData, NULL); // ÂÕÄÕÔ ×ÙÚ×ÁÎÙ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÉÎÆÏÒÍÁÃÉÉ Ó ÓÅÒ×ÅÒÁ sc.SetChgUserCb(RecvSetUserAnswer, &userExist); sc.SetCheckUserCb(RecvCheckUserAnswer, &userExist); sc.SetSendMessageCb(RecvSendMessageAnswer, &result); printf("--------------- GetServerInfo ---------------\n"); ret = sc.GetServerInfo(); // úÁÐÒÁÛÉ×ÁÅÍ ÉÎÆÕ Ï ÓÅÒ×ÅÒÅ. üÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ if (ret != st_ok) // ÄÌÑ ÐÒÏ×ÅÒËÉ ÌÏÇÉÎÁ É ÐÁÒÏÌÑ ÁÄÍÉÎÁ { printf("error %d %s\n", ret, sc.GetStrError()); return 0; } /*printf("--------------- GetUsers ---------------\n"); ret = sc.GetUsers(); // úÁÐÒÁÛÉ×ÁÅÍ ÉÎÆÕ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ if (ret != st_ok) { printf("error %d %s\n", ret, sc.GetStrError()); return 0; }*/ printf("--------------- SendMessage ---------------\n"); ret = sc.SendMessage("zubr11", "test", 0); // if (ret != st_ok) { printf("error %d %s\n", ret, sc.GetStrError()); return 0; } if (result) printf("SendMessage ok\n"); else printf("SendMessage failed\n"); return 0; printf("--------------- GetUser ---------------\n"); ret = sc.GetUser("test"); // úÁÐÒÁÛÉ×ÁÅÍ ÉÎÆÕ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ if (ret != st_ok) { printf("error %d %s\n", ret, sc.GetStrError()); return 0; } return 0; printf("--------------- CheckUser ---------------\n"); sc.CheckUser("test", "123456"); if (userExist) printf("login - ok\n"); else printf("login failed\n"); printf("--------------- ChgUser ON ---------------\n"); char req[1024]; sprintf(req, "<SetUser> " "<login value=\"test\"/> " "<ips value=\"192.168.111.100\"/> " "<aonline value=\"1\"/> " "<iface value=\"ppp0\"/></SetUser>"); sc.ChgUser(req); if (userExist) printf("chg user ok\n"); else printf("chg user error\n"); printf("--------------- ChgUser OFF ---------------\n"); sprintf(req, "<SetUser> " "<login value=\"test\"/> " "<aonline value=\"0\"/> </SetUser>"); sc.ChgUser(req); if (userExist) printf("chg user ok\n"); else printf("chg user error\n"); return 0; } //-----------------------------------------------------------------------------