summaryrefslogtreecommitdiff
path: root/src/configreader.cpp
AgeCommit message (Collapse)Author
2007-11-11This works properly now. Files in the file:// schema are loaded by the core.brain
Anything else will be loaded by a module, this isnt done yet. For remote includes to work, your <module> tags for the remote includes modules must be in the base inspircd.conf file. This is the only file gauranteed to be avaialble in pass 1 of the two pass config read. At the end of pass 1, all files are opened/downloaded and placed into a map. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8568 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11More stuff for this. Its starting to take shape a bit now, and is tidier ↵brain
than the craq i came up with before git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8567 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11Begin rethink on this. Warning, this WILL break your ircd if youre using trunk!brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8566 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-11In prep for remote includes, configuration reading is now two-pass.brain
Note that theres an important part missing from here, there can be a NON-BLOCKING delay between the start of pass 2 and the files being available for download. At this point, ServerConfig::Read() should probably return an ENOTREADY or such at which point it gets monitored for ready state. The socket engine is ready at this point so we can poll the socket engine for it. In the case of startup, the socket engine blocks in a private loop, its no good booting the ircd till we have a complete config! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8565 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04MODERR tidyupsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8524 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04Fix the two FIXMEsbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8521 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-04Remove our vectors of Module*/ircd_module*, replace with a map of ↵brain
std::pair<ircd_module*, Module*> git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8513 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-03More anal config parsing, validates channel fields, ip address fields ↵brain
(with/without wildcard) hostname fields, fields which may not contain spaces git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8474 e03df62e-2008-0410-955e-edbf42e46eb7
2007-11-02Tidy up, and make the identifer for a line type be std::string not charbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8459 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31Fix up to pass User*brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8442 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31More stuffbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8429 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31Fixified some morebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8428 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-31Clean up XLine conf stuff a little bit, move most of it to configreader. ↵w00t
Also, check elines and call ApplyLines on both rehash and startup. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8425 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-27Fix for bug in windows with backslash directory seperators in config path ↵brain
when used with <include> tag and a relative include path, reported by daurnimator git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8386 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-26Fix crashes and broken code in connect:parent stuff that got broken with ↵brain
introduction of connect:limit and slight refactor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8382 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-25Make install list list automatically generated from build targets and ↵brain
provide facility for installing extra files. Using this, cert.pem and key.pem are only copied to the conf dir if you enabled an ssl module. Also, this provides facility for a 'make deinstall' which should be safe for use in all situations as it always specifies a file by name and never uses wildcards to rm. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8362 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Implement <connect:limit> - limits how many clients can sit inside a ↵w00t
<connect> tag. Brain, we have a problem here in that if we User::QuitUser() a user with a NULL MyClass member (connect class), then things break (like sendq et al). What should we do with this, create a generic catchall class or something just in case? (to replicate, set up a single connect class with a low limit, and connect too many clients. Crash is the result) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8357 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Remove that goto, capt'nw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8356 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Disable all connect classes, reenable them as we find them in the config. ↵w00t
This stops users using a connect class removed from the conf (or will in a second) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8355 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Finish reference counting connect class stuff. Now rehash removes unused ↵w00t
classes (refcount == 0), and re-reads any new shit (or ones that just got removed) from the config. Possibly todo in the future: make /rehash update classes that exist in memory, make /rehash mark classes removed from conf (but still exist as refcount > 0) as inactive. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8354 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Try this w00t, compiles, test running nowbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8343 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-24Start of refcount-based rehash stuff for <connect> tags, this is broken and ↵w00t
rather ugly right now.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8342 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Visual studio doesnt like throw definitions like thisbrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8324 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23Pedantic safebrain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8314 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-22Remove the need for a bunch of the hard coded arrays/hashes by scanning the ↵brain
src/ dir for tag comments, like in modules git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8307 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15Move oper classes and types stuff from users to configreader. It may need to ↵w00t
go in a class, I'm not going to investigate that now. Also make HasPermission() a bit easier to read via same changes I did in command_parse, but the strtok/strdup stuff really really has to go somehow I think.. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8215 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15InspSocket -> BufferedSocket. Paves the way for a SimpleSocket class which ↵w00t
ident etc will use. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8206 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15In the grand tradition of huge fucking commits:w00t
- chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15class command_t -> class Command. Whey :Dw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8203 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-28Move everything module-related out of InspIRCd and into ModuleManager, there ↵om
is a ModuleManager instantiated as InspIRCd::Modules. Several of the function names have changed slightly as well. e.g. Instance->FindModule(m_foobar.so); is now Instance->Modules->Find(m_foobar.so); All modules in the core distribution should also be updated in line with these changes. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7985 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-28Fixes 1brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7964 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-28Tidy up duplicate code, provide GetSID() method on ServerConfig which ↵brain
returns the SID always 3 digits long git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7959 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Add <server:id> - this is optional, as stated in the example conf,brain
and should only be set if you are getting collisions. The comment also points out that ids where either of the last two letters are numeric are reserved for services use (e.g. 0ZZ or 5CQ) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7917 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Remove more unnecessary header trafficw00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7887 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-27Add options:maxtargets that was somehow omitted, fixes bug #400 (Reported by ↵brain
DarkStorm) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7877 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26Added new announceinvite setting i discussed briefly with w00t and i like ↵brain
myself: # The value 'dynamic' varies between 'ops' and 'all' # # settings depending on if the channel is +i or not. # # When the channel is +i, messages go only to ops, # # and when the channel is not +i, messages go to # # everyone. In short, the messages will go to every # # user who has power of INVITE on the channel. This # # is the recommended setting. # git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7841 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26Add option to set invite announcements to nobody, ops only, or all users, ↵brain
based on options:announceinvites. Part of bug #386, should not be backported. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7837 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26Revised fix for bug #367 pointed out during qa by owine, thanks :)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7830 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-20Whoops, i left a value out of the array, and gcc didnt warn!brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7768 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-20Whoops! trunk-only fix to config reader so it doesnt bomb out if you omit an ↵brain
optional tag git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7767 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Add <connect:maxchans> as per feature bug #338 - combined with the last ↵brain
feature, this allows per-oper specific maxchans values, and even the same for non-opers! git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7761 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Allow changing of an oper's host on oper up using <type:class> (give it a ↵brain
connect allow or deny line name) - implements bug #367 git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7760 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Add <connect:inherit> and <connect:name>brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7758 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Add extra stuff to make it work (and compile)brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7757 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-19Pick up a few error conditions we didnt before in the config reader, and ↵brain
also increment line number correctly when 'real' newline is found in a value git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7749 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-11Allow rehash to attempt to load missing (and new) lib/cmd_*.so files, to ↵brain
allow users to fix an emergency situation you can create by trying to reload a corrupt .so without needing a restart git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7712 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-07Check for remote and sighup rehashes here, so that it doesnt crash if there ↵brain
are ports that cant be bound git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7684 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-27Needs testbuilding in windows. I will probably do this in a minute.brain
More clever tricks to eliminate ifdefs. With a bit of function pointer and functor magic we may be able to eliminate all ifdefs git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7590 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-25Un-static InspIRCd::Exit and use SignalHandler instead.peavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7572 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.peavey
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7