* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- * E-mail:
- * <brain@chatspike.net>
- * <Craig@chatspike.net>
- *
- * Written by Craig Edwards, Craig McLure, and others.
+ * InspIRCd: (C) 2002-2008 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
* This program is free but copyrighted software; see
* the file COPYING for details.
*
* ---------------------------------------------------
*/
-#include "inspircd_config.h"
-#include "base.h"
-#include <string>
-#include <map>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <errno.h>
-#include <time.h>
-#include <vector>
-#include <deque>
-#include <sstream>
-
#ifndef __CONNECTION_H__
#define __CONNECTION_H__
-/** Please note: classes serverrec and userrec both inherit from class connection.
+#include <time.h>
+#include "inspircd_config.h"
+#include "base.h"
+#include "socketengine.h"
+
+/** connection is the base class of User, and holds basic user properties.
+ * This can be extended for holding other user-like objects in the future.
*/
-class connection : public Extensible
+class CoreExport connection : public EventHandler
{
public:
- /** File descriptor of the connection
+ /** Hostname of connection.
+ * This should be valid as per RFC1035.
*/
- int fd;
-
- /** Hostname of connection. Not used if this is a serverrec
- */
- char host[160];
+ char host[65];
/** Stats counter for bytes inbound
*/
*/
int cmds_out;
- /** True if server/user has authenticated, false if otherwise
+ /** True if 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;
-
- /** Used by userrec to indicate the registration status of the connection
+ /** Used by User to indicate the registration status of the connection
+ * It is a bitfield of the REG_NICK, REG_USER and REG_ALL bits to indicate
+ * the connection state.
*/
char registered;
*/
time_t lastping;
- /** Time the connection was created, set in the constructor
+ /** Time the connection was created, set in the constructor. This
+ * may be different from the time the user's classbase object was
+ * created.
*/
time_t signon;
- /** Time that the connection last sent data, used to calculate idle time
+ /** Time that the connection last sent a message, used to calculate idle time
*/
time_t idle_lastmsg;
- /** Used by PING checks with clients
+ /** Used by PING checking code
*/
time_t nping;
-
- /** Default constructor
- */
- connection()
- {
- this->fd = -1;
- }
};
#endif
-
-