summaryrefslogtreecommitdiff
path: root/src/base.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Introduce VT_DEBUG to check for hanging vtablesGravatar Daniel De Graaf2010-08-031-0/+19
| | | | | This is a slow process, and uses the dladdr() function that only exists in glibc, so all added code requires -DVT_DEBUG to be specified
* ...because every now and again, i have to do a massive commit.Gravatar brain2010-01-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
* Use ServiceProvider for inter-module dependenciesGravatar danieldg2009-11-161-2/+2
| | | | | | | | | | | This will stop dependency chains from preventing module reloads when it is not actually needed; however, it removes some failsafes that will need to be reimplemented in order to avoid unmapped vtables. This deprecates Request as an inter-module signaling mechanism, although SQL still uses it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12140 e03df62e-2008-0410-955e-edbf42e46eb7
* Add Inspircd::AddServicesGravatar danieldg2009-11-151-3/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12135 e03df62e-2008-0410-955e-edbf42e46eb7
* Force heap allocation of refcountbase, create usecountbase for ↵Gravatar danieldg2009-10-251-17/+12
| | | | | | non-allocation reference counting git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11978 e03df62e-2008-0410-955e-edbf42e46eb7
* Use custom allocater to decide if refcountbase was allocated on the heap and ↵Gravatar danieldg2009-10-201-3/+24
| | | | | | should be deleted when refcount reaches zero git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11928 e03df62e-2008-0410-955e-edbf42e46eb7
* Maintain refcount of Module objects to complain about leaked pointersGravatar danieldg2009-10-191-0/+15
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11925 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix implementation of reference to const, use reference counting for ↵Gravatar danieldg2009-10-191-6/+9
| | | | | | ExtensibleItem git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11924 e03df62e-2008-0410-955e-edbf42e46eb7
* Clean up some log messagesGravatar danieldg2009-10-191-4/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11917 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix null dereference caused by tracking dummyGravatar danieldg2009-10-181-3/+8
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11902 e03df62e-2008-0410-955e-edbf42e46eb7
* Cull channels, warn when Extensible objects are not culled as they must beGravatar danieldg2009-10-181-1/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11901 e03df62e-2008-0410-955e-edbf42e46eb7
* Add more debug logging of object lifetimesGravatar danieldg2009-10-181-2/+10
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11900 e03df62e-2008-0410-955e-edbf42e46eb7
* Make classbase and refcountbase uncopyable; expand comments on their ↵Gravatar danieldg2009-10-171-6/+10
| | | | | | indended uses git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11888 e03df62e-2008-0410-955e-edbf42e46eb7
* Move static map of extensions into ServerInstance, add const-correctnessGravatar danieldg2009-10-141-34/+35
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11873 e03df62e-2008-0410-955e-edbf42e46eb7
* Add explicit reference-counting base classGravatar danieldg2009-09-301-45/+6
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11785 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix warnings from BSD build and work around the failures of BSD makeGravatar danieldg2009-09-281-0/+20
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11771 e03df62e-2008-0410-955e-edbf42e46eb7
* Create StreamSocket for IO hooking implementationGravatar danieldg2009-09-211-0/+8
| | | | | | | | | | | | | | Fixes the SSL SendQ bug Removes duplicate code between User and BufferedSocket Simplify SSL module API Simplify EventHandler API (Readable/Writeable moved to SE) Add hook for culled objects to invoke callbacks prior to destructor Replace SocketCull with GlobalCull now that sockets can close themselves Shorten common case of user read/parse/write path: User::Write is now zero-copy up to syscall/SSL invocation User::Read has only two copy/scan passes from read() to ProcessCommand git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11752 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove Extensible items from user, channel, and Membership on module unloadGravatar danieldg2009-09-151-1/+19
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11730 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix null ExtensionItem when unregistering hooks; fix CORE_FLAGS on darwinGravatar danieldg2009-09-151-1/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11729 e03df62e-2008-0410-955e-edbf42e46eb7
* Add SerializeFormat for easier metadata formattingGravatar danieldg2009-09-131-4/+21
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11704 e03df62e-2008-0410-955e-edbf42e46eb7
* Change Extensible to use strongly typed entriesGravatar danieldg2009-09-131-17/+138
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11696 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove unneeded Extensible inheritance and remove "age" field from classbaseGravatar danieldg2009-09-021-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11611 e03df62e-2008-0410-955e-edbf42e46eb7
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove last vestige of libircdfoo, by changing tag into a single ↵Gravatar w00t2008-07-291-1/+1
| | | | | | identifier marking object as requiring compilation into a .o (minor commit) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10076 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵Gravatar brain2007-10-221-0/+2
| | | | | | src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
* OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.Gravatar peavey2007-07-161-1/+95
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
* 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵Gravatar peavey2007-07-161-95/+1
| | | | | | auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
* Jesus, look who's the commit whore today. More header updates, and removal ↵Gravatar w00t2006-12-151-6/+3
| | | | | | of namespacing. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5996 e03df62e-2008-0410-955e-edbf42e46eb7
* Wahhhhhhhhhhhh bwahahaha. Mass commit to tidy up tons of messy include listsGravatar brain2006-08-301-5/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5080 e03df62e-2008-0410-955e-edbf42e46eb7
* Just to mess with om's head, remove helperfuncs.h from everywhereGravatar brain2006-08-111-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4900 e03df62e-2008-0410-955e-edbf42e46eb7
* Now two types of log macro, log() and ilog(). log() assumes an InspIRCd ↵Gravatar brain2006-08-111-10/+1
| | | | | | | | | object called ServerInstance, ilog() takes an InspIRCd object as first param. TODO: Run a regexp over these, using perl, to translate them into InspIRCd::Log calls and then eliminate the macro :) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4879 e03df62e-2008-0410-955e-edbf42e46eb7
* Removal of an externGravatar brain2006-08-111-0/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4875 e03df62e-2008-0410-955e-edbf42e46eb7
* extern time_t TIME -> InspIRCd::Time()Gravatar brain2006-08-111-2/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4873 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove commented out old methods that became templatesGravatar brain2006-07-101-35/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4296 e03df62e-2008-0410-955e-edbf42e46eb7
* If you ask me, it looks a hell of a lot tidier without forcing the cast.Gravatar brain2006-07-101-4/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4277 e03df62e-2008-0410-955e-edbf42e46eb7
* Assorted changes here, Extend() is not templated so you can pass it any ↵Gravatar om2006-04-101-21/+40
| | | | | | pointer type and it will automatically be cast to char* for you. Also some speedups, store an iterator rather than calling find() once to check if it exists and again to access the value. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3864 e03df62e-2008-0410-955e-edbf42e46eb7
* More const references, this is nearly it apart from the module API..Gravatar om2006-03-091-3/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3608 e03df62e-2008-0410-955e-edbf42e46eb7
* - Useless loop removedGravatar w00t2006-02-151-2/+2
| | | | | | | | - Intenting cleaned up - command_parse stuff (really) needs proper going over and at least commenting what stuff does. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3216 e03df62e-2008-0410-955e-edbf42e46eb7
* Updated copyrights in headers etc using perl inplace editGravatar brain2006-01-151-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2795 e03df62e-2008-0410-955e-edbf42e46eb7
* Added Metadata API (for transferring extensibles over a network transparent ↵Gravatar brain2005-12-071-1/+9
| | | | | | to the protocol) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2253 e03df62e-2008-0410-955e-edbf42e46eb7
* GCC4.0 warning fixesGravatar brain2005-05-301-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1571 e03df62e-2008-0410-955e-edbf42e46eb7
* Added operator =Gravatar brain2005-05-301-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1566 e03df62e-2008-0410-955e-edbf42e46eb7
* Added BoolSet utility classGravatar brain2005-05-301-0/+52
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1564 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixed fd_Setsize in cygwinGravatar brain2005-05-281-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1541 e03df62e-2008-0410-955e-edbf42e46eb7
* Moved a ton of functions into helperfuncs.h to speed up recompilesGravatar brain2005-05-151-0/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1383 e03df62e-2008-0410-955e-edbf42e46eb7
* Removed some debug outputGravatar brain2005-04-211-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1153 e03df62e-2008-0410-955e-edbf42e46eb7
* Added OnBackgroundTimer method, ticks every 5 seconds approximatelyGravatar brain2005-04-121-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1058 e03df62e-2008-0410-955e-edbf42e46eb7
* Major optimizations!Gravatar brain2005-04-051-0/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@982 e03df62e-2008-0410-955e-edbf42e46eb7