The InspIRCd Project
Home | Developers | Wiki | Forums | Bug Tracker | GIT | Download | Stats

Go Back   Inspire IRCd Forums -- InspIRCd > Releases and announcements > News and Releases
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

News and Releases News of new releases and fixes etc will be posted here.

Reply
 
Thread Tools Search this Thread Display Modes
Old 25-09-2008, 09:36 PM   #1
w00t
InspIRCd Developer
 
Join Date: Apr 2004
Posts: 532
Send a message via MSN to w00t
Cool Happy Birthday & 1.2 Beta

Happy Birthday!

It's been six years since the year 2002 - when the dot com bubble collapsed, people started realising that maybe Visual Basic did suck, and InspIRCd was concieved, and I think we've come a long long way, both in terms of technology, people, and not to mention stability.

From no users at all, to over 130 servers (estimated).

From dodgy meshing that only worked over localhost to full fledged spanning-tree links using all the modern concepts of IRC, and then a few of our own (such as metadata).

From servers that crashed twice a day to servers that crash when Brain "accidentally" pulls the cable out...

We've hit 1.0, 1.1, and now we're well on our way to 1.2, the latest of milestones we are about to announce shortly!

First of all, though, I would like to give a *very* big thanks to all our users on behalf of myself and the rest of the dev team and volunteers, for all your feedback, support, and tolerance over the years. It's been a bumpy ride, but I'm quite happy at how things are going for us, and I hope you all are too.

On the note of change, 1.2 marks the last release we will be making under the old schedule of release we have adopted for previous majors (1.0, 1.1). Instead of a protracted development schedule involving a lot of change, after 1.2, we will be pushing out major updates with less changes more frequently, meaning less to go wrong, and that you get more toys sooner.

We think this is a good change, and we hope you will agree.

Now, on to business, I'll keep the rest of this mush-free and short and sweet: 1.2 is as of now officially beta quality, meaning that there won't be many feature changes left (unless they are extremely minor), there won't be any more rewriting, and that, generally speaking things are now in the push to go stable.

In other words, we're releasing 1.2.0-beta1 today.

This is a (CAUTIOUSLY) recommended release to the smaller networks that aren't afraid of running software that may explode, though we hope it won't. If stability is very important to you, or you're a larger network, we recommend you take this guideline with a very large grain of salt (in other words, don't switch).

We will try (from now on) to keep changes relatively small for you, if you do choose to adopt it. However, please keep up with the changes.

1.1 users, 1.1 will still be maintained, so don't panic.

For the insanely curious, a changelog between alpha 6 and beta 1 is attached.
__________________
Master of all trades; jack of none.
w00t is offline   Reply With Quote
Old 25-09-2008, 09:44 PM   #2
w00t
InspIRCd Developer
 
Join Date: Apr 2004
Posts: 532
Send a message via MSN to w00t
Default

  • Jersey cows!
  • Also fix here; glob patterns may not start with > or <. TODO: iterate comma sep tokenlist to catch LIST >0,<10000 as other IRCDs do.
  • Fix faulty logic, glob patterns may not start with > or <. TODO: iterate comma sep tokenlist to catch LIST >0,<10000 as other IRCDs do.
  • Fix for bug #610 reported by ankit, numeric changed to 505
  • Fix for listening sockets not clearing their timeout on connected. Reported by Sazpaimon.
  • Set Id property on a bunch of modules which lack it, etc.
  • warning-free on windows
  • Windows compile fixes for RLine
  • Second part of fix for bug #605, make adding and removal of lines not case sensitive
  • Fix for bug #605 reported by MacGuyver, if a line is expired when we are adding another with the same hostmask, replace the existing line with the new one
  • Fix /STATS output to show the regex module in use
  • Update config to remove m_filter_pcre and document new tags
  • Fix leak, thanks aquanight
  • No longer needed
  • Fix re-creation of config filters
  • Because m_filter reads definitions from the conf, unlike rline, when we see our engine via OnLoadModule we must do a partial rehash to get these lines from the conf and ensure theyre applied, because they would have failed to apply initially.
  • Well, that was moronic of me
  • someone forget an instance
  • This compiles but is NOT tested yet. Do not use unless you like pain.
  • Be consistent. Use ServerInstance in all places instead of 'Instance' in half. This has bugged me forever . I think I got all of extra/ too..
  • Fixes. Dont try and catch exceptions within the RLine ctor, we dont always want crud outputting to snomask x in every situation. Its up to the caller , that creates the object as to what they want to do with the exception and if they want it shown.
  • Fix various rline bugs, implement /stats R, and fix the issue where you get no error. "Something will already have said why it fucked up" -- what , about when the rline fails due to missing provider?, Also fix the fact that we dont have a catch around the Generate() in addline, which would just make insp abort.
  • Fix bug discovered by Ankit, m_rline loaded without regex provider causes segfault because of missing check for NULL when querying RegexProvider , interface
  • Fix the 'i/o error on connection (no error)' stuff, by displaying 'connected closed unexpectedly' when errno == 0., Also trigger failover whenever a connection times out in the new authentication timeout code (the connection isnt, properly established so the failover should trigger)
  • Fix some comment which was left over from before the conversion from User* to UID
  • Make regex providers load correctly. Move m_rline to use the regex providers, and also move m_rline out of extras/. Document provider modules, <rline:engine> and particularly the uselessness of <rline engine="glob">.
  • Fix crash
  • Move m_regex.h and m_regex_glob.cpp to main modules directory, as these have no requirements.
  • Remove the old TODO comment
  • Fix a rather nasty race condition revealed by my reading through the comments and enhancing them. Back when i did executeable includes, i placed a 'todo' in the code which said something along the lines of:, 'we cant pass a User* into the config reader any more, because when the config reader thread finishes, that user may be gone and this will crash. Consider using an UID instead so that if the user vanishes, we can, detect this situation.' Of course, nobody ever did this, so i'm doing it now to ensure we dont come up against some particularly ugly race condition crashes!
  • More comments
  • More comments, and remove some unused craq. Someone (that being me) once wrote a craqy imitation of std::bitset called dynamicbitmask which took up a large amount of hashcomp.{h,cpp} before i actually knew that std::bitset existed. NOTHING has ever used this class, so whack it as tidyup, knowing it wont , break anything
  • more comments
  • Start documenting stuff for 3rd party developers. Comments only, won't affect feature freeze
  • Roll back core matcher to the 1.1 design, which doesnt fail various unit tests
  • Add test suite tests for wildcard function for failures discovered by Ankit
  • lol
  • Fix my massacre of kqueue, filters may not be or'd.
  • inbound sockets need a timeout, too. 30 secs should be pleanty
  • Don't check E:Lines when enforcing Q:Lines on connected users. Thanks MacGyver.
  • Implement timeout on outgoing server connections as per our docs <link:timeout>
  • Reinvert order of insert/erase into user hash_map to avoid a lil crash
  • Merge vc90 update patch from IronLegend, thanks
  • Roll back tweak to the starttls spec requested by kvirc devs, sorry we cant do this as we have other client devs breathing down our throats that it broke their clients
  • Shrink users properly on quit, and make cloaks for all existing users on load, for situations where the cloaking module is loaded after the ircd is booted. Thanks Ankit
  • Be more verbose in ValidateNotEmpty on failure. Patch by CyberbotX.
  • Patch by dz to remove the one usage of strdup/strtok_r, which is very un-C++ behavior (and silly, since we have sepstream)
  • dont try and cloak if no valid cloak was returned (eg. localhost)
  • Changed Allowed Modes to bitsets.
  • Merge commit 'danieldg/out-12'
  • more namespace fix0rz
  • Optimisation
  • namespace fix0rz
  • Fix setting of +x before we've processed an OnUserConnect
  • Remove unneeded namespace stuff.
  • Make the 'ancient OS' warning a bit more strongly worded.
  • Minor style tidyup.
  • Last cleanup. All trunk extras now builds again.
  • fix for listensocket, tested and also working like a charm.
  • more cleanup
  • cleanup
  • fix for listenbase, tested and works like a charm.
  • Cleanup of some internals. Tested via m_httpd.
  • Remove proxyscan, it doesn't exist now.
  • Remove some duplication, everything calls the SE equivilant anyway.
  • Remove useless parameter.
  • Fix a comment.
  • Fix KILL server-notice duplication
  • Experimental WSAPoll (thanks for not just using poll(), guys) support for Windows. Untested, uncompiled.
  • Minor stylistic improvements.
  • These socket engines may now recieve write and read events in the same cycle, same as select and poll.
  • There is absolutely no need to cache connect timeout.
  • Remove an unused member.
  • Windows doesn't need blocking connect, IOCP was the cause of that.
  • Remove WaitingForWriteEvent, it seems to do *nothing* except confuse things. Also, don't close socket on http if FlushWriteBuf doesn't write it all in one go, in fact, don't try FlushWriteBuf at all - use the sockets default of waiting to be told it's safe to write data.
  • Back out change, as this doesn't work properly with channel bans.. Prioritise before cloaking, as otherwise you may encounter usermode changes on a nonexistant user. (part of the original change too).
  • Bit of a tidyup, generate cloak whenever first set, not necessarily on connect
  • Hook conn_umodes before anything else so that config order is less of a factor
  • Clear out the string used for the temporarily stored hostname during DNS resolution. Should save at least strlen(host) per user
  • Move XMLSocket to be modulemanager-provided, flash now has real socket support (so it's not as necessary), and most networks do not have flash clients using it
  • Fixed comments for cached host fields in User; 3/4 of these were completely incorrect.
  • Remove a totally redundant method (this is already available via inheritance from EventHandler)
  • Remember to free some stuff when failing in the ctor
  • Add connmutex to mutex the connections vector, otherwise we can get access from two threads and it is stl. ew.
  • peavey, w00t, this works now. Methods werent copied right. Please feel free to base the other sql module fixes on the diffs that i used to fix this., ALSO now works on win32, tested!
  • fixed a /MT to be /MD
  • fix various bodge-ups, we must have been tired when fixing this in the first place to use the new api, methods are in the wrong places.
  • not test compiled yet: sql modules werent working because someone chopped out the important code that determines what port the new socket is bound to when binding to port "0". The GetPort() method belongs in the listensocketbase derived socket not the bufferedsocket one, and the code for determining the getsockname() belongs in the ctor for the listen derived socket.
  • Remove a (now nonexistant) reference from .h
  • Check the wrong way around is just stupid. ;p
  • Fix warning, thanks peavums
  • Growl.
  • Remove crappy, unsafe (and now unneeded!) casts.
  • More compile fixes.
  • Fix compile problems hopefully..
  • (Attempt to) convert MySQL to using listener base.
  • Remove old listening stuff from spanningtree, use a new derived listener class.
  • Give httpd a custom listener class, specialised in creating HttpServerSockets.
  • Remove listening from BufferedSocket, it's bloaty and horrid. We have a ListenSocketBase class to handle this instead now.
  • Make OnAcceptReady pure virtual, rename ListenSocket to ListenSocketBase, create ClientListenSocket and inherit from ListenSocketBase to create User objects.
  • Move this to another (yet more appropriate) place, saves some syscalls in an unlikely condition.
  • Add incoming IP to OnAcceptReady
  • Allow for silencing getmodules() output (is annoying when using modulemanager)
  • Add "list" and usage to modulemanager [danieldg]
  • Fix missing semicolon in m_ssl_openssl [danieldg]
  • Move a socket sanity check into the generic listener handler, avoiding the need to instantiate a user object in insane conditions.
  • Tidy up some of the internals a bit, making things a bit more extensible and future proof.
  • Fix windows project files
  • Merge class connection in with class user (nothing else inherits it anyway, and all the fields in here were only really useful to users anyway)
  • Merge the second interface for socket hooking into one, so it's all done by Add/Del/GetIOHook now.
  • Initialising the member we added might be an idea.
  • Make this work with older git, too (thanks danieldg)
  • Use git describe rather than git-svn, it works better with secondary clones
  • Updates
  • Invite timeout on server-to-server is already a unix timestamp
  • Fix IO hooking modules to use the new (not old) hooking call
  • Fix a stupid error, and two warnings.
  • Move socket hooking in inspsocket to utilise the new system properly.
  • Fix forward-declaration caused as a result of recent changes.
  • Start moving IO hooking from being bufferedsocket based to residing in EventHandler, this will pave the way for a generic listener type, and also simplifies a lot of code.
  • Move listensocket stuff into a file of it's own.
  • Don't execute multiple aliases after executing one.
  • Fix aliases returning multiple messages, thanks Ankit.
  • Fix compile. Try again, Ankit.
  • Merge branch 'testbranch', Conflicts:, sources.list
  • Test commit.
  • Set default values for <alias:usercommand> and <alias:channelcommand>, Ankit, please provide feedback.
  • Also redirect errors to /dev/null to avoid messy output on VCS that aren't installed/in use
  • Nicer fix for REVISION stuff when using git, thanks danieldg for the basis.
  • Another test commit
  • Test commit from git
  • Upgrade the upgrade command to ..upgrade better. Thanks danieldg.
__________________
Master of all trades; jack of none.
w00t is offline   Reply With Quote
Old 25-09-2008, 11:21 PM   #3
Mike.XIII
An inspiration to us all
 
Join Date: Mar 2008
Posts: 31
Default

Happy Birthday InspIRCd
Mike.XIII is offline   Reply With Quote
Old 26-09-2008, 10:00 AM   #4
w00t
InspIRCd Developer
 
Join Date: Apr 2004
Posts: 532
Send a message via MSN to w00t
Default

Quote:
Originally Posted by Mike.XIII View Post
Happy Birthday InspIRCd
Thanks!
__________________
Master of all trades; jack of none.
w00t is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 12 (0 members and 12 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 09:53 AM.


Powered by vBulletin®
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
(C) InspIRCd Development Team