Permalink
Browse files

Add SmartIrc4net v0.4.5.1

  • Loading branch information...
1 parent 88ddb30 commit f27f3020e466229704ef3a49911bb9f5666c51e9 @rolfbjarne rolfbjarne committed Sep 14, 2011
Showing with 20,713 additions and 0 deletions.
  1. +78 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/API_CHANGE
  2. +189 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/CHANGELOG
  3. +35 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/CREDITS
  4. +34 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/FEATURES
  5. +509 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/LICENSE
  6. +14 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/Makefile.am
  7. +595 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/Makefile.in
  8. +2,836 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/Meebey.SmartIrc4net.xml
  9. +55 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/README
  10. +154 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/SmartIrc4net.csproj
  11. +49 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/SmartIrc4net.mdp
  12. +25 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/SmartIrc4net.mds
  13. +24 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/TODO
  14. +779 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/aclocal.m4
  15. +3,782 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/configure
  16. +52 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/configure.ac
  17. +50 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/expansions.m4
  18. +519 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/install-sh
  19. +367 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/missing
  20. +55 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/mono.m4
  21. +15 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/programs.m4
  22. +8 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/smartirc4net.pc.in
  23. BIN SmartIrc4net/SmartIrc4net-0.4.5.1/smartirc4net.snk
  24. +70 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/AssemblyInfo.cs
  25. +70 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/AssemblyInfo.cs.in
  26. +239 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/Consts.cs
  27. +56 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/EventArgs.cs
  28. +138 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/Exceptions.cs
  29. +64 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/BanInfo.cs
  30. +247 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/Channel.cs
  31. +64 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/ChannelInfo.cs
  32. +193 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/ChannelUser.cs
  33. +58 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/Delegates.cs
  34. +853 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/EventArgs.cs
  35. +2,620 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/IrcClient.cs
  36. +193 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/IrcMessageData.cs
  37. +211 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/IrcUser.cs
  38. +77 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/NonRfcChannel.cs
  39. +70 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/NonRfcChannelUser.cs
  40. +173 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcClient/WhoInfo.cs
  41. +2,292 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcCommands/IrcCommands.cs
  42. +666 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcCommands/Rfc2812.cs
  43. +34 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcConnection/Delegates.cs
  44. +106 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcConnection/EventArgs.cs
  45. +1,273 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcConnection/IrcConnection.cs
  46. +48 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcConnection/IrcProperties.cs
  47. +45 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/IrcConnection/IrcTcpClient.cs
  48. +201 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/Logger.cs
  49. +41 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/Makefile.am
  50. +387 −0 SmartIrc4net/SmartIrc4net-0.4.5.1/src/Makefile.in
@@ -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!
@@ -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
@@ -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
@@ -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.

0 comments on commit f27f302

Please sign in to comment.