X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fconnection.h;h=ab7bd81e1f68c46fce734c801cfdeee1c19c0316;hb=bfcc7d5ff4dcd453a89725d482d59b87b57a3c68;hp=9a72e6d6bbb854fe8723ec31b6c3b6c3516e1ffd;hpb=d495cec5003dda047af0bc95ba7fc4b33c252597;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/connection.h b/include/connection.h index 9a72e6d6b..ab7bd81e1 100644 --- a/include/connection.h +++ b/include/connection.h @@ -1,74 +1,106 @@ -/* - -*/ +/* +------------------------------------+ + * | Inspire Internet Relay Chat Daemon | + * +------------------------------------+ + * + * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. + * E-mail: + * + * + * + * Written by Craig Edwards, Craig McLure, and others. + * This program is free but copyrighted software; see + * the file COPYING for details. + * + * --------------------------------------------------- + */ #include "inspircd_config.h" #include "base.h" #include #include -#include #include +#include #include #include #include #include #include +#include +#include +#include #ifndef __CONNECTION_H__ #define __CONNECTION_H__ -#define PT_SYN_ONLY 0 -#define PT_ACK_ONLY 1 -#define PT_SYN_WITH_DATA 2 -#define PT_KEY_EXCHANGE 3 - - -class packet : public classbase +/** Please note: classes serverrec and userrec both inherit from class connection. + */ +class connection : public Extensible { public: - long key; - short int id; - short int type; - char data[MAXBUF]; + /** File descriptor of the connection + */ + int fd; + + /** Hostname of connection. Not used if this is a serverrec + */ + char host[160]; + + /** IP of connection. + */ + char ip[16]; + + /** Stats counter for bytes inbound + */ + int bytes_in; - packet(); - ~packet(); -}; + /** Stats counter for bytes outbound + */ + int bytes_out; + /** Stats counter for commands inbound + */ + int cmds_in; -class connection : public classbase -{ - public: - long key; - int fd; // file descriptor - char host[256]; // hostname - long ip; // ipv4 address - char inbuf[MAXBUF]; // recvQ - long bytes_in; - long bytes_out; - long cmds_in; - long cmds_out; + /** Stats counter for commands outbound + */ + int cmds_out; + + /** True if server/user has authenticated, false if otherwise + */ bool haspassed; + + /** Port number + * For a userrec, this is the port they connected to the network on. + * For a serverrec this is the current listening port of the serverrec object. + */ int port; - int registered; + + /** Used by userrec to indicate the registration status of the connection + */ + char registered; + + /** Time the connection was last pinged + */ time_t lastping; + + /** Time the connection was created, set in the constructor + */ time_t signon; + + /** Time that the connection last sent data, used to calculate idle time + */ time_t idle_lastmsg; + + /** Used by PING checks with clients + */ time_t nping; - char internal_addr[1024]; - int internal_port; + /** Default constructor + */ connection(); - bool CreateListener(char* host, int p); - bool BeginLink(char* targethost, int port, char* password); - void TerminateLink(char* targethost); - bool SendPacket(char *message, char* host, int port, long ourkey); - bool RecvPacket(char *message, char* host, int &prt, long &theirkey); - bool SendSYN(char* host, int port); - bool SendACK(char* host, int port, int reply_id); - long GenKey(); }; #endif +