-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
189 lines (177 loc) · 8.37 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
/**
* $Id$
* $URL$
* $Rev$
* $Author$
* $Date$
*/
v0.4.0 (SVN r266)
------
fixes:
- fixed null reference exception when CTCP PING contains no data
(thanks to Nick 'Zaf' Clifford, closes sf.net patch #1199630)
- fixed NonRfcSupport, it didn't check for NonRfcSupport in _Event_RPL_NAMREPLY
(thanks to the anonymous poster on the sf.net forum for reporting this)
- added sanity checks to the mode change parser in IrcClient._InterpretChannelMode(),
otherwise some nasty IRCd servers might break us.
- catch ObjectDisposedExceptions in connection handling code.
new:
- IrcConnection now uses an active pinger to better detect network problems,
by default every 60 seconds a ping will be send to the server, if it
doesn't respond the class will disconnect or reconnect depending on
the IrcConnection.AutoReconnect property.
- added IrcConnection.OnAutoConnectError event, raised when there is a problem
with the connection, it passes in AutoConnectErrorEventArgs which server and port
was used and which exception was thrown, this way application can display and
handle connection errors.
- reconnect handling will now store/use keys if ActiveChannelSyncing and
AutoRejoin is activated.
- UTF-8 support
now you can set IrcConnection.Encoding = Encoding.UTF8 and all messages send
and receives will be encoded/decoded to/from UTF-8
- added lots of documentation stabs
- added IrcClient.IsAway property.
- added IrcClient.OnAway, IrcClient.OnAway, IrcClient.OnUnAway and IrcClient.OnNowAway events.
- added IrcClient.OnPong event.
- added IrcClient.AutoJoinOnInvite property, if enabled and the class receives an
invite it will join that channel automatic (don't worry it will not join "0").
- added IrcClient.AutoRejoinOnKick property, if enabled and the class was in a
channel and got kicked, it will try to rejoin that channel.
- added IrcClient.AutoNickHandling property, now you can deactivate the
automatic nick change when a nick collision happens, so you can handle
it on your application instead.
- added IrcCLient.NicknameList property, set in Login() call, will try the
different nicks when the nick was already used, in order.
- added IrcClient.Login() overload for passing a nickname list.
- added some documentation.
- added IrcConnection.Lag property, indicates how much lag is between the
IRCd server and the IRC client.
- added VisualStudio 2005 project files.
changes:
- IrcConnection.Encoding now uses the system encoding as default!
So you might have to set it to Encoding.GetEncoding("ISO-8859-1") manually.
- IrcClient.Reconnect() now stores channel keys too for rejoining them.
- IrcClient.OnCtcpRequest and IrcClient.OnCtcpReply events now passes parsed
CTCP data as CtcpEventArgs.
- Removed log4net initialization, as this can conflict with applications using log4net.
If you need debug output, use the debug build and add this code to your application:
log4net.Config.BasicConfigurator.Configure();
or if you want the old config style with a config file:
FileInfo fi = new FileInfo("SmartIrc4net_log.config");
log4net.Config.DOMConfigurator.ConfigureAndWatch(fi);
- When IrcClient.CtcpVersion is set, the library will no longer advertise
itself in CTCP VERSION replies.
v0.3.5 (SVN r184)
------
fixes:
- fixed bug in channel sync that caused duplicate exception
(Closes sf.net bug #1064190)
- fixed tracking of ops and voices list on join
(thanks to Clément Bourgeois, closes sf.net bug #1075942)
- fixed bug that the initial channel mode is not synced (on join).
- fixed a crash bug in the channel sync code
when a user was voiced/opped/banned 2 times, an ArgumentException was thrown
(thanks to Clément Bourgeois for spotting this)
- fixed handling of a stalled connection
IOException was not catched in the write thread, and in the read thread
the IsConnectionError was not set
- fixed InviteEventArgs, mixed who with channel name
- fixed OnConnected event
now it's raised when the connection is ready for sending data.
- fixed Reconnect() handling in the Listen() loop, moved to ReadLine().
- fixed InviteEventArgs.Channel property,
initialized with the right value now.
- fixed nullref exception in _Event_QUIT()
added sanity checks, FreshIRC network does very ugly things with the IRC
protocol.
changes:
- improved handling of rejoining channels after reconnect.
- using keep-alive socket now.
- removed underscores in parameter names (violates .NET library standards)
- renamed parameters with "text" to different names
(violates .NET library standards)
- using new case-insensitive hashtables (FxCop spotted this)
- improved the example/test program
- main bin/ directory is now used for the example programs
- changed overrides to new (method hiding is sufficient here).
- updated all MS VS.NET project files.
new:
- added Halfop support (with OnHalfop and OnDehalfop events)
if you want to use it do:
irc.NonRfcSupport = true;
NonRfcChannel nchan = GetChannel("#channel");
nchan.Halfops....
or
NonRfcChannelUser nuser = GetChannelUser("#channel", "nick");
nuser.Halfop.....
- added Halfop() and Dehalfop() command to IrcCommands
- added OnErrorMessage event as general hook for all ERR_ messages
- added SendReply(), easy way of replying to a message
(regardless if its a channel, query or notice message)
- added OnMotd event (with MotdEventArgs)
- added IrcClient.Motd property
- added OnChannelPassiveSynced event
- added channel sync timings to channels (Channel.ActiveSyncTime).
- added IrcClient.AutoRelogin setting.
- added IrcConnection.AutoRetryDelay property.
- added IrcConnection.OnConnectionError event.
- added Rfc2812.IsValidNickname() method.
- added IrcConnection.SocketSendTimeout and IrcConnection.SocketReceiveTimeout
- added little benchmark program (examples/benchmark).
- added stresstest program (examples/stresstest).
- added sign target to the makefile
v0.3.0 (SVN r123)
-------
fixes:
- fine tuned the "#ifdef LOG4NET" statements (thanks to prencher for noticing this
log4net is fully optional! (only required for debugging the library)
- fixed bug, the class changed the Op and Voice list of a copy *boing*
(FxCop pointed me to it)
- added check for "~" userflag on nameslist (thanks to Giacomo Di Ciocco)
this broke the library on IRC networks using that userflag on channels
- fixed channel sync bug, when the connection is re-established
(Closes sf.net bug #1043536)
- fixed rejoining channels when using Reconnect()
- added sanity checks in _Event_WHOREPLY()
this will prevent exceptions when the IRC server voilates the RFC
(like some psybnc version do)
- fixed string handling in _Event_PRIVMSG() for CTCP messages
(Closes sf.net bug #1039286)
changes:
- making SmartIrc4net CLS and .NET standards conform
changed all delegates to use EventArgs
- made a few constructors "internal"
- directory struture changed
the structure now represents the API layers
(IrcConnection, IrcCommands and IrcClient)
- regex optimizations (thanks to prencher for the hints)
- renamed all ReplyCodes to conform to .NET standards
(e.g. ReyplCode.RPL_Welcome -> ReplyCode.Welcome)
- renamed IrcConnection.Version to IrcConnection.VersionNumber
- renamed ChannelSync to ActiveChannelSync
later I will introduce PassiveChannelSync, this means only the received
data is used for channel sync no extra commands are send to the IRC server.
new:
- parts of SmartIrc4net have now XML documentation tags
- added *EventArgs for the events
- added exception handling for Connect() Reconnect() Disconnect()
- added VisualStudio project files (thanks to prencher for creating them)
- added constructors to the exception classes (.NET standards)
- added log calls for queue, when data could not be sent and is requeued
- added missing overloads for RFC commands (Closes sf.net bug #1061503)
(Join, Part, Kick, List, Names)
- added more RFC commands, now all RFC 2812 commands are implemented!
(Oper, Motd, Luser, Version, Stats, Service, Squit, Links, Time, Connect,
Trace, Admin, Info, Servlist, Squery, Whois, Whowas, Kill, Ping, Pong,
Away, Rehash, Die, Restart, Summon, Users, Wallops, Userhost, Ison)
- WriteLine() will throw an NotConnectedException now when it's used without
having a connection to an IRC server
- added timeout values for the tcp socket (6 minutes), and activated nodelay flag
- prefixed all IrcCommands that are actually plain RFC commands with "Rfc"
e.g. Join() is now called RfcJoin()
v0.2.0 (SVN r83)
-------
fixes:
changes:
new:
- first public release