#ifndef __NET_H__ #define __NET_H__ #include "common.h" #include #include // Nuke +1 0902: For queuing control #include #include #include "link.h" #undef EXTERN #ifdef __NET_C__ #define EXTERN #else #define EXTERN extern #endif /* * 夫弘奶件仄化中卅中} 夫弘奶件仄化中月} 夫弘奶件 平乓仿综曰 * 夫弘失它玄 ( 本□皮 ) , 夫弘失它玄 ( 失件夫永弁 ) * N 反 NOT } W 反 WHILE , UL 反 UNLOCK 及仪 */ typedef enum { NOTLOGIN, /* 夫弘奶件仄化中卅中 */ LOGIN, /* 夫弘奶件 */ WHILELOGIN, /* 夫弘奶件仄化中月 */ WHILECREATE, /* 综匀化中月 */ WHILELOGOUTSAVE, /* 夫弘失它玄及本□皮 */ WHILECANNOTLOGIN, /* 夫弘奶件匹五卅井匀凶凛及失件夫永弁质 */ WHILECHARDELETE, /* 平乓仿绰轮 */ WHILEDOWNLOADCHARLIST, /* 平乓仿伉旦玄母它件夫□玉 */ WHILECHANGEPASSWD, /* 由旦伐□玉 凳 */ WHILELOSTCHARSAVE, /* 夫旦玄匹平乓仿本□皮仄 */ WHILELOSTCHARDELETE,/* 夫旦玄匹平乓仿壅仄 */ WHILECLOSEALLSOCKETSSAVE, /* closeallsockets 匹平乓仿本□皮仄 */ WHILESAVEWAIT, /* 夫弘失它玄及本□皮卞垫仁蟆及赐 谨切 */ }LoginType; /* 仄化中卅中}失市它件玄扔□田}弁仿奶失件玄}失玉丞 */ typedef enum { NOTDETECTED,AC,CLI,ADM }ConnectType; /* 扔□田互忡绣仄化云仁赢今 */ #define CDKEYLEN 16 #define PASSWDLEN 16 /* 仇木及 凳反尕第(允月卅日 Char 及STRING64 手赝濠卅袄卞濠曰晶月仇午*/ #define CHARNAMELEN 32 #define CLITIMEOUT_SEC 120 /* 弁仿奶失件玄井日read仄卅井匀凶日} 仇及凛棉匹正奶丞失它玄}夫弘失它玄[ */ #define NET_STRING_SUCCESSFULL "successful" #define NET_STRING_FAILED "failed" // 孔勾丹及 及伉□玉]仿奶玄田永白央扔奶术 #define RBSIZE (1024*64*8) #define WBSIZE (1024*64*8) // 失市它件玄扔□田□迕 //#define AC_RBSIZE (65536*48) //#define AC_RBSIZE (65536*32) #define AC_RBSIZE (1024*64*8) //ttom modify because the second version had this //#define AC_WBSIZE (65536*16) extern int AC_WBSIZE; EXTERN int bindedfd; /*夫□市伙失玉伊旦卞田奶件玉仄凶末弗永玄*/ EXTERN int acfd; /*失市它件玄扔□田卞戊生弁玄扑正末弗永玄*/ EXTERN int ConnectLen; /*票及袄及赢今*/ #define CONNECT_WINDOWBUFSIZE 7 /* 湘 凶切 */ BOOL initConnect( int size ); void endConnect( void ); #define CONNECT_endOne( sockfd, lin) \ _CONNECT_endOne( __FILE__, __LINE__, sockfd, lin) BOOL _CONNECT_endOne( char *file, int fromline, int sockfd , int lin); #define CONNECT_attendOne( sockfd, lin) \ _CONNECT_attendOne( __FILE__, __LINE__, sockfd, lin) BOOL _CONNECT_attendOne( char *file, int fromline, int sockfd , int lin); BOOL netloop( void ); BOOL netloop_faster( void ); int lsrpcClientWriteFunc( int fd , char* buf , int size ); char* GetOneLine( int fd ); BOOL initConnectOne( int sockfd, struct sockaddr_in* sin ,int len ); #ifdef _CAX_LNS_NLSUOXU void SetTimerLua( void ); BOOL DelTimer_net(int ID); #endif /* CA , CD */ void CAcheck( void ); void CAflush( int charaindex ); void CAsend( int fd ); void CDcheck( void ); void CDflush( int charaindex ); void CDsend( int fd ); BOOL CONNECT_appendCAbuf( int fd , char* data, int size ); BOOL CONNECT_appendCDbuf( int fd , char* data, int size ); /* Serverstate */ void SERVSTATE_decrementCloseallsocketnum(void); int SERVSTATE_getCloseallsocketnum( void ); int SERVSTATE_SetAcceptMore( int nvalue ); int SERVSTATE_getShutdown(void); void SERVSTATE_setShutdown(int a); int SERVSTATE_getLimittime(void); int SERVSTATE_getDsptime(void); void SERVSTATE_setDsptime(int a); void SERVSTATE_setLimittime(int a); /* 公及幻井 */ void outputNetProcLog( int fd, int mode); void chardatasavecheck( void ); void closeAllConnectionandSaveData( void ); BOOL SetShutdown( BOOL nvalue ); int GetShutdown( void ); /* 伙□皿仄化腹绸楮醒 */ int getfdFromCdkey( char* cd ); int getfdFromCharaIndex( int charaindex ); int getcdkeyFromCharaIndex( int charaindex , char *out, int outlen ); int getCharindexFromFdid( int fdid ); int getFdidFromCharaIndex( int charind ); int getfdFromFdid( int fdid ); int getfdFromCdkeyWithLogin( char* cd ); /* 仄日屯 */ INLINE int CONNECT_checkfd( int fd ); BOOL CONNECT_isCLI( int fd ); BOOL CONNECT_isAC( int fd ); BOOL CONNECT_isUnderLogin( int fd ); BOOL CONNECT_isWhileLogout( int fd ); BOOL CONNECT_isWhileLogin( int fd ); BOOL CONNECT_isNOTLOGIN( int fd ); BOOL CONNECT_isLOGIN( int fd ); int CONNECT_getUse( int fd ); int CONNECT_getUse_debug( int fd, int i ); void CONNECT_setCharaindex( int fd, int a ); int CONNECT_getCharaindex( int fd ); void CONNECT_getCdkey( int fd , char *out, int outlen ); void CONNECT_setCdkey( int fd , char *in); void CONNECT_getPcid( int fd , char *out, int outlen ); void CONNECT_setPcid( int sockfd, char *pcid ); #ifdef _CAX_NEWMAC_LOGIN void CONNECT_getMAC( int fd , char *out, int outlen ); void CONNECT_setMAC( int sockfd, char *mac ); #endif void CONNECT_getOldPcid( int fd , char *out, int outlen ); void CONNECT_setOldPcid( int sockfd, char *pcid ); void CONNECT_getDefaultKey( int fd , char *out, int outlen ); void CONNECT_setDefaultKey( int sockfd, char *defaultkey ); void CONNECT_getPasswd( int fd , char *out, int outlen ); void CONNECT_setPasswd( int fd, char *in ); void CONNECT_getCharname( int fd , char *out, int outlen ); void CONNECT_setCharname( int fd, char *in ); int CONNECT_getFdid( int fd ); int CONNECT_getCtype( int fd ); void CONNECT_setCtype( int fd , int a ); void CONNECT_setDuelcharaindex( int fd, int i , int a ); int CONNECT_getDuelcharaindex( int fd, int i ); void CONNECT_setBattlecharaindex( int fd, int i , int a ); int CONNECT_getBattlecharaindex( int fd, int i ); void CONNECT_setJoinpartycharaindex( int fd, int i , int a); int CONNECT_getJoinpartycharaindex( int fd, int i ); void CONNECT_setTradecardcharaindex( int fd, int i , int a ); int CONNECT_getTradecardcharaindex( int fd, int i ); /* MT犯田永弘迕穴弁夫 */ #define CONNECT_endOne_debug(a) CONNECT_endOne( (a) , __LINE__ ) #define CONNECT_attendOne_debug(a) CONNECT_attendOne( (a) , __LINE__ ) /* 犯□正丑综楮醒(引月切允木匀升覆杀迕) */ void CONNECT_setCDKEY( int sockfd, char *cd ); void CONNECT_getCDKEY( int sockfd , char *out, int outlen ); void CONNECT_setState( int fd, int s ); int CONNECT_getState( int fd ); void CONNECT_checkStatecount( int a ); int CONNECT_checkStateSomeOne( int a, int maxcount); BOOL CONNECT_acfdInitRB( int fd ); BOOL CONNECT_acfdInitWB( int fd ); // Nuke +3 int checkWalkTime(int fd); int setBtime(int fd); #ifdef _BATTLE_TIMESPEED //void setDefBTime( int fd, unsigned int times); //unsigned int getDefBTime( int fd); BOOL CheckDefBTime( int charaindex, int fd, unsigned int lowTime, unsigned int battletime, unsigned int addTime); #endif #ifdef _TYPE_TOXICATION void setToxication( int fd, int flg); int getToxication( int fd); #endif int checkBEOTime(int fd); void sigusr1(int i); void sigusr2(int i); // Arminius 6.26 signal //ttom start void CONNECT_set_watchmode(int fd, BOOL B_Watch); BOOL CONNECT_get_watchmode(int fd); void CONNECT_set_shutup(int fd,BOOL b_shut);//the avoid the user wash the screen BOOL CONNECT_get_shutup(int fd); unsigned long CONNECT_get_userip(int fd); void CONNECT_set_pass(int fd,BOOL b_ps); BOOL CONNECT_get_pass(int fd); void CONNECT_set_state_trans(int fd,int a); int CONNECT_get_state_trans(int fd); //ttom end // CoolFish: +9 2001/4/18 void CONNECT_setCloseRequest( int fd, int count); void CONNECT_set_first_warp(int fd, BOOL b_ps); BOOL CONNECT_get_first_warp(int fd); int isDie(int fd); void setDie(int fd); // Arminius 6/22 encounter int CONNECT_get_CEP(int fd); void CONNECT_set_CEP(int fd, int cep); // Arminius 7.12 login announce int CONNECT_get_announced(int fd); void CONNECT_set_announced(int fd, int a); // shan trade(DoubleCheck) begin int CONNECT_get_confirm(int fd); void CONNECT_set_confirm(int fd, BOOL b); // end void CONNECT_setTradecharaindex( int fd, int i , int a); void CONNECT_setLastrecvtime( int fd, struct timeval *a ); void CONNECT_getLastrecvtime( int fd, struct timeval *a ); void CONNECT_setLastrecvtime_D( int fd, struct timeval *a ); void CONNECT_getLastrecvtime_D( int fd, struct timeval *a ); void CONNECT_SetBattleRecvTime( int fd, struct timeval *a ); void CONNECT_GetBattleRecvTime( int fd, struct timeval *a ); void CONNECT_setTradeTmp(int fd, char* a); void CONNECT_getTradeTmp(int fd, char *trademsg, int trademsglen); int checkNu(int fd); #ifdef _NO_WARP // shan hjj add Begin int CONNECT_get_seqno(int fd); void CONNECT_set_seqno(int fd,int a); int CONNECT_get_selectbutton(int fd); void CONNECT_set_selectbutton(int fd, int a); // shan End #endif // Arminius 7.2 Ra's amulet void setNoenemy(int fd); void clearNoenemy(int fd); int getNoenemy(int fd); void setEqNoenemy(int fd, int level); void clearEqNoenemy(int fd); int getEqNoenemy(int fd); #ifdef _Item_MoonAct void setEqRandenemy(int fd, int level); void clearEqRandenemy(int fd); int getEqRandenemy(int fd); #endif #ifdef _CHIKULA_STONE void setChiStone(int fd, int nums); int getChiStone(int fd); #endif // Arminius 7.31 cursed stone void setStayEncount(int fd); void clearStayEncount(int fd); int getStayEncount(int fd); void CONNECT_setBDTime( int fd, int nums); int CONNECT_getBDTime( int fd); // Arminius debug void CONNECT_setUse( int fd , int a); void CONNECT_setStarttime( int fd , int a); #ifdef _ITEM_PILEFORTRADE void CONNECT_setTradeList( int fd, int num); int CONNECT_getTradeList(int fd); #endif #define QUEUE_LENGTH1 6 #define QUEUE_LENGTH2 7 BOOL MSBUF_CHECKbuflen( int size, float defp); void SetTcpBuf( int sockfd); #endif