KVIrc 5.2.6
Developer APIs
KviIrcConnectionUserInfo.h
Go to the documentation of this file.
1#ifndef _KVI_IRCCONNECTIONUSERINFO_H_
2#define _KVI_IRCCONNECTIONUSERINFO_H_
3//=============================================================================
4//
5// File : KviIrcConnectionUserInfo.h
6// Creation date : Sun 20 Jun 2004 01:45:42 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2004-2010 Szymon Stefanek <pragma at kvirc dot net>
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// of the License, or (at your option) any later version.
15//
16// This program is distributed in the HOPE that it will be USEFUL,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
27#include "kvi_settings.h"
28#include "KviTimeUtils.h"
29
30#include <QString>
31
33{
34 friend class KviIrcConnection;
35 friend class KviIrcServerParser;
36 friend class KviConsoleWindow;
37
38protected:
41
42private:
43 QString m_szRealName; // the actual real name sent from the server
44 QString m_szNickName; // the actual nick name acknowledged by the server
45 QString m_szPassword; // the password used connecting to the server
46 QString m_szUserMode; // the actual user mode
47 QString m_szUserName; // user name with ident char
48 QString m_szLocalHostIp; // the local host ip as found by resolveLocalHost() at connection startup
49 QString m_szHostName; // the local host name that the server reports
50 QString m_szHostIp; // the host name above resolved, if possible
52 bool m_bAway = false; // is the user away ?
53 kvi_time_t m_tAway; // time at that the user went away
54 QString m_szNickBeforeAway; // the nickname that the user had just before going away
55 // From bugtrack:
56 // On many IRC networks the host is masked or hashed, and if one also is connected through a LAN,
57 // it is basically impossible to initiate DCC transfers, as 192.168.0.13 or similar will be sent as IP.
58 // But IRC servers usually (at least in my experience) send the unmasked host in the 001 raw event
59 // with something like ":Welcome to the Internet Relay Chat network, nick!ident@host". I think
60 // it'd be a good idea to just grab the IP from that event and use it for DCC transfers by default.
62
63public:
64 const QString & realName() const { return m_szRealName; }
65 const QString & nickName() const { return m_szNickName; }
66 const QString & userMode() const { return m_szUserMode; }
67 const QString & userName() const { return m_szUserName; }
68 const QString & password() const { return m_szPassword; }
69 const QString & localHostIp() const { return m_szLocalHostIp; }
70 const QString & hostName() const { return m_szHostName; }
71 const QString & unmaskedHostName() const { return m_szUnmaskedHostName; }
72 const QString & hostIp() const { return m_szHostIp; }
73 const QString & awayReason() const { return m_szAwayReason; }
74 bool hasUserMode(const QChar & m);
75 bool isAway() const { return m_bAway; }
76 kvi_time_t awayTime() const { return m_tAway; }
77 const QString & nickNameBeforeAway() const { return m_szNickBeforeAway; }
78protected:
79 void setRealName(const QString & szRealName) { m_szRealName = szRealName; }
80 void setNickName(const QString & szNickName) { m_szNickName = szNickName; }
81 void setUserMode(const QString & szUserMode) { m_szUserMode = szUserMode; }
82 void setUserName(const QString & szUserName) { m_szUserName = szUserName; }
83 void setPassword(const QString & szPassword) { m_szPassword = szPassword; }
84 void setHostName(const QString & szHostName) { m_szHostName = szHostName; }
85 void setUnmaskedHostName(const QString & szHostName) { m_szUnmaskedHostName = szHostName; }
86 void setHostIp(const QString & szHostIp) { m_szHostIp = szHostIp; }
87 void setLocalHostIp(const QString & szLocalHostIp) { m_szLocalHostIp = szLocalHostIp; }
88 bool addUserMode(const QChar & m); // returns false if the mode was already there
89 bool removeUserMode(const QChar & m); // returns fales if the mode was not there
90 void setAwayReason(const QString & szReazon) { m_szAwayReason = szReazon; }
91 void setAway();
92 void setBack();
93};
94
95#endif
Time management.
#define kvi_time_t
Definition KviTimeUtils.h:43
kvi_time_t awayTime() const
Definition KviIrcConnectionUserInfo.h:76
QString m_szRealName
Definition KviIrcConnectionUserInfo.h:43
friend class KviIrcServerParser
Definition KviIrcConnectionUserInfo.h:35
void setHostIp(const QString &szHostIp)
Definition KviIrcConnectionUserInfo.h:86
QString m_szNickBeforeAway
Definition KviIrcConnectionUserInfo.h:54
const QString & hostIp() const
Definition KviIrcConnectionUserInfo.h:72
friend class KviIrcConnection
Definition KviIrcConnectionUserInfo.h:34
QString m_szNickName
Definition KviIrcConnectionUserInfo.h:44
kvi_time_t m_tAway
Definition KviIrcConnectionUserInfo.h:53
void setUserMode(const QString &szUserMode)
Definition KviIrcConnectionUserInfo.h:81
QString m_szHostName
Definition KviIrcConnectionUserInfo.h:49
const QString & nickNameBeforeAway() const
Definition KviIrcConnectionUserInfo.h:77
QString m_szLocalHostIp
Definition KviIrcConnectionUserInfo.h:48
void setLocalHostIp(const QString &szLocalHostIp)
Definition KviIrcConnectionUserInfo.h:87
void setAwayReason(const QString &szReazon)
Definition KviIrcConnectionUserInfo.h:90
const QString & hostName() const
Definition KviIrcConnectionUserInfo.h:70
QString m_szHostIp
Definition KviIrcConnectionUserInfo.h:50
void setUserName(const QString &szUserName)
Definition KviIrcConnectionUserInfo.h:82
const QString & unmaskedHostName() const
Definition KviIrcConnectionUserInfo.h:71
friend class KviConsoleWindow
Definition KviIrcConnectionUserInfo.h:36
const QString & userName() const
Definition KviIrcConnectionUserInfo.h:67
~KviIrcConnectionUserInfo()=default
bool m_bAway
Definition KviIrcConnectionUserInfo.h:52
void setRealName(const QString &szRealName)
Definition KviIrcConnectionUserInfo.h:79
QString m_szPassword
Definition KviIrcConnectionUserInfo.h:45
const QString & userMode() const
Definition KviIrcConnectionUserInfo.h:66
QString m_szUserMode
Definition KviIrcConnectionUserInfo.h:46
const QString & password() const
Definition KviIrcConnectionUserInfo.h:68
const QString & awayReason() const
Definition KviIrcConnectionUserInfo.h:73
void setHostName(const QString &szHostName)
Definition KviIrcConnectionUserInfo.h:84
const QString & localHostIp() const
Definition KviIrcConnectionUserInfo.h:69
void setUnmaskedHostName(const QString &szHostName)
Definition KviIrcConnectionUserInfo.h:85
const QString & realName() const
Definition KviIrcConnectionUserInfo.h:64
bool isAway() const
Definition KviIrcConnectionUserInfo.h:75
void setNickName(const QString &szNickName)
Definition KviIrcConnectionUserInfo.h:80
QString m_szUnmaskedHostName
Definition KviIrcConnectionUserInfo.h:61
void setPassword(const QString &szPassword)
Definition KviIrcConnectionUserInfo.h:83
QString m_szAwayReason
Definition KviIrcConnectionUserInfo.h:51
const QString & nickName() const
Definition KviIrcConnectionUserInfo.h:65
QString m_szUserName
Definition KviIrcConnectionUserInfo.h:47
#define m
Definition detector.cpp:78
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127