This repository has been archived by the owner on Dec 14, 2020. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
88ddb30
commit f27f302
Showing
50 changed files
with
20,713 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,78 @@ | |||
/** | |||
* $Id: CHANGELOG 108 2004-11-07 21:04:42Z meebey $ | |||
* $URL: svn+ssh://svn.qnetp.net/svn/smartirc/SmartIrc4net/trunk/CHANGELOG $ | |||
* $Rev: 108 $ | |||
* $Author: meebey $ | |||
* $Date: 2004-11-07 22:04:42 +0100 (Sun, 07 Nov 2004) $ | |||
*/ | |||
|
|||
API Change (0.2.0 -> 0.3.0) Documentation | |||
----------------------------------------- | |||
This file is only relevent for you if you wrote an IRC application that is | |||
SmartIrc4net 0.2.0 based! If you didn't use SmartIrc4net yet, you can safely | |||
ignore this file and just continue on hacking a great IRC application ;) | |||
|
|||
The API naming between SmartIrc4net 0.2.0 and 0.3.0 changed a lot, mostly | |||
because of .NET library standards. | |||
|
|||
Here are the changes: | |||
- All RFC commands in IrcCommands are now prefixed with "Rfc" | |||
|
|||
If you used the Join() method, then you need to change your calls to | |||
RfcJoin(). The reason is for this change is that the most commands are plain | |||
RFC wrapper methods. This way you can easily distinguish between API | |||
commands/feature and plain RFC commands. Another reason was conflicts or | |||
confusing names like Admin(), Version() or Ison(). | |||
|
|||
Message() got renamed to SendMessage() which makes more clear what that | |||
method actually does. | |||
|
|||
- All delegates now uses .NET standards conform signatures | |||
|
|||
If you used JoinEventHandler which was: | |||
JoinEventHandler(string channel, string who, Data ircdata) | |||
|
|||
it's now: | |||
JoinEventHandler(object sender, JoinEventArgs e); | |||
|
|||
This way the .NET library standards suggest, because those JoinEventArgs | |||
which extends IrcEventArgs which extends EventArgs can be easily changed at | |||
any time later for additional data. | |||
The "sender" argument is type IrcClient, the irc client object that triggered | |||
the event (very useful for multiple irc connections). | |||
IrcEventArgs always contain the property "Data" | |||
(type IrcMessageData, formerly known as type Data) | |||
|
|||
This means you have to change all your event method signatures, e.g.: | |||
|
|||
If you had an event method for OnJoin it was like this: | |||
MyOnJoinMethod(string channel, string who, Data ircdata) { | |||
System.Console.WriteLine(who+" joined on "+channel+"!"); | |||
} | |||
|
|||
you need to change that to: | |||
MyOnJoinMethod(object sender, JoinEventArgs e) { | |||
System.Console.WriteLine(e.Who+" joined on "+e.Channel+"!"); | |||
} | |||
|
|||
you still have the whole parsed IRC message in e.Data! | |||
|
|||
- Connect() Disconnect() Reconnect() don't return bool anymore | |||
|
|||
They use now proper exception handling, so catch them! | |||
There is ConnectionException which work for all 3 methods, and also more | |||
specific exception types like: | |||
CouldNotConnectException | |||
AlreadyConnectedException | |||
NotConnectionException | |||
|
|||
There is also a very general exception type which will catch ANY exception | |||
that SmartIrc4net will throw! It's called: | |||
SmartIrc4netException | |||
|
|||
- ChannelSync property is renamed to ActiveChannelSync | |||
(read more about in the CHANGELOG) | |||
|
|||
- Any method that will send a message can throw an exception! | |||
If the IRC library is not connected and you try to send any message, then | |||
a NotConnectedException will be thrown! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,189 @@ | |||
/** | |||
* $Id: CHANGELOG 267 2007-04-06 17:02:22Z meebey $ | |||
* $URL: svn+ssh://svn.qnetp.net/svn/smartirc/SmartIrc4net/trunk/CHANGELOG $ | |||
* $Rev: 267 $ | |||
* $Author: meebey $ | |||
* $Date: 2007-04-06 19:02:22 +0200 (Fri, 06 Apr 2007) $ | |||
*/ | |||
|
|||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,35 @@ | |||
/** | |||
* $Id: CREDITS 203 2005-06-10 01:42:42Z meebey $ | |||
* $URL: svn+ssh://svn.qnetp.net/svn/smartirc/SmartIrc4net/trunk/CREDITS $ | |||
* $Rev: 203 $ | |||
* $Author: meebey $ | |||
* $Date: 2005-06-10 03:42:42 +0200 (Fri, 10 Jun 2005) $ | |||
*/ | |||
|
|||
This is the creditslist for SmartIrc4net | |||
|
|||
The fields are: | |||
(N) name | |||
(E) email | |||
(W) web-address | |||
(P) PGP key ID and fingerprint | |||
(D) description | |||
(S) snail-mail address | |||
--------------------------- | |||
|
|||
N: Mirco Bauer | |||
E: meebey@meebey.net | |||
E: meebey@php.net | |||
W: www.meebey.net | |||
P: EEF946C8 / ABE1 95E1 50A8 DBE7 809D 3F42 7127 E5AB EEF9 46C8 | |||
D: Project Leader | |||
S: Kroonhorst 42 | |||
S: 22549 Hamburg | |||
S: Germany | |||
|
|||
N: Benjamin Hall | |||
E: Benjamin.Hall@orcon.net.nz | |||
D: Several patches: AutoRejoinOnKick, AutoJoinOnInvite, NicknameList, | |||
IdleWorkerThread, OnAutoConnectError, Lag, documentation | |||
S: Auckland | |||
S: New Zealand |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,34 @@ | |||
/** | |||
* $Id: FEATURES 141 2004-11-30 20:05:26Z meebey $ | |||
* $URL: svn+ssh://svn.qnetp.net/svn/smartirc/SmartIrc4net/trunk/FEATURES $ | |||
* $Rev: 141 $ | |||
* $Author: meebey $ | |||
* $Date: 2004-11-30 21:05:26 +0100 (Tue, 30 Nov 2004) $ | |||
*/ | |||
|
|||
Full featurelist of SmartIrc4net | |||
------------------------------------- | |||
|
|||
- 3 layered API | |||
- IrcConnection (low-level API) | |||
contains socket handling and message buffer | |||
- IrcCommands (extends IrcConnection, middle-level API) | |||
contains RFC IRC commands plus easy to use IRC methods (like Op/Deop/Ban/Unban...) | |||
- IrcClient (extends IrcCommands, high-level API) | |||
full featured IRC class, with channel syncing, fully event driven | |||
- send/receive floodprotection | |||
- detects and changes nickname on nickname collisions | |||
- autoreconnect, if connection is lost | |||
- autoretry for connecting to IRC servers | |||
- debugging/logging system with log levels (using log4net) | |||
- compatible with Mono and Micrsoft .NET Framework | |||
- sendbuffer with a queue that has 3 priority levels (high, medium, low) plus a bypass level (critical) | |||
- channel syncing (tracking of users/modes/topic etc in objects) | |||
- user syncing (tracking the user in channels, nick/ident/host/realname/server/hopcount in objects) | |||
- when channel syncing is acticated the following methods are available: | |||
- IsJoined | |||
- IsOpped | |||
- IsVoiced | |||
- IsBanned | |||
- on reconnect all joined channels will be rejoined, also when keys are used | |||
- own CTCP version reply can be set |
Oops, something went wrong.