- Move old 7.3 sources to branches/ircd-hybrid-newconf
Some fixes, and pushing non-loaded data down into the file formats. I'm so going to get killed over this commit, but hey, where would be the fun otherwise? ;-)
Some more work on conf stores Untested, misses includes, but should get you the general idea.
- move buf_cb_sendto_one() into send.c from strbuf - add kludge to Makefile to force strbuf.o functions to be linked into ircd - add temp kludges to deny. and kill.c to allow ircd to link (FIX!!!) - Finally! modify m_names.c to use strbuf
+ "oper" and "added" are for admin's information; NULL (i.e. smalldate) is indeed redundant, but I believe it still belongs in conf/ rather than reanalysing stuff in conf/parser/ (which additionally makes a reverse dependence, i.e. conf parser on store types)
Remove legacy fields from ConfStoreField[] arrays, a legacy csv imple- mentation will be able to generate them itself, nobody else needs them. Also store conf file name in the ConfStore struct.
Move some logic from m_kline.c to conf/kill.c, integrate stuff with new csvlib, clean up / simplify / centralize some code. parse_aline.c should really be called aline.c or so now
make stuff compile again
+ added two middle layer between ircd and e.g. csv + sample for kill.c, please implement the rest
+ added import_conf_flags, removed CT_FLAG in favour of a simplier solution
match args wrong way around preventing you from doing CONNECT *
- Add src/modules.c - This gives us back MOD((UN|RE)LOAD|RESTART) (doesnt take core modules into account) - Add CT_FLAG - a generic way of adding backward compatible foo = yes; flags - Correct a couple of conf entries which didnt quite match 7.2 - Allow bools to be passed through to a CT_LIST properly
dlinkDelete the node not the data
Fix double free caused by tmpserver not being reset after its used in a field.
+ allow no class limit
+ fixed 99% cpu
+ fixed compile error
+ implemented oper override
+ found a better way to implement this
+ modularised oper flags + somebody please do the same with auth,connect
+ only filename changes
- Misc. general{} conf fixes
- Fixed resvs
+ fixed win32 build (at least under BCC) + newconf adjustments aiming at simple.conf compatibility + added missing init_resv() call
- Oops, serverinfo{} should be read in the first, and listen{} in
the second pass.
- Read listen{} blocks in the first parsing pass. Just in case
a listen{} block comes before servinfo{}
+ corrections to the new code + first succeeded soft reboot attempts.
+ after fixing a bunch of bugs, ircd is finally able to start up and /connect. + problems: kline/xline and such refuse to load (missing write_csv_line), modload & co are also not present (need to implement module-like m_ files?)
+ added a missing callback initialization
+ resolved a filename conflict
+ restored class limits plus reworked them to be a bit more sane.
+ restored number_per_cidr stuff
+ restored ip hashing code (moved to hash.c)
+ added parser files. + ip hashing is to come
+ implemented RESV hashing where it's possible (i.e. no wildcards) + ok, all this list/hash manipulation should be moved to src/conf
+ make everything compile, but not yet link
+ fixed everything except m_gline and m_spoof. + still to do: ban storage, limits, iphash, parser, conf_connect_allowed
+ make most modules compile, except a few ones which need deeper changes
+ make parse_aline compile + to do: parser executive, limits, ip hash, conf_connect_allowed replacement
+ fixed server.c
+ make ircd core compile except server.c and parse_aline.c
+ moved isupport handling from s_conf.c
+ removed s_conf.h and superseded parts of s_conf.c
+ removed oldconf
+ finished implementing newconf base
+ implemented newconf/gecos
+ moved parser files to its dedicated subdirectory
+ implemented shared and cluster + added todo marks
+ implemented conf/glines
+ implemented resvs
+ implemented exempt{} blocks
+ added support for deny{} blocks
+ added report_klines()
+ implemented K-lines, yet without callback for kline.conf load/store
+ implemented auth{}
+ added find_access_conf
+ turned a variable static
+ began implementing hashtable confs (ACB)
+ save user= entries in the order they're entered
+ added missing class unreference when multiple "class=" lines were encountered.
+ reworked operator{} blocks to make them independent from oldconf
+ moved some utilities from s_conf.* to libio
+ added stub for auth{} blocks
- Also show the full path of .included configuration files when reporting syntax errors. This is just cosmetical.
- Fixed off-by-one error in do_parse_error() when reporting the line number Spotted by stu
+ fixed small memory leak on newconf's .include
+ rebuilt y.tab.c + ServerInfo -> ServerInfoX for now to avoid hidden name conflicts + serv_list nodes are localClient->lnode, so don't free them with balloc
- lexer.l: added proper support for quotes in strings. Cleaned up C comment style handling. Added support for C++ comments.
+ added implementation for listen{}
+ fixed header in conf_channel.c
- Renamed basename() to libio_basename() and use it everywhere instead of glibc's basename - Updated configure.ac accordingly
Added contrib module for character set recoding
Note it doesn't work at the moment because listen{} itself
is not yet modularised. Will probably also need some modifications
to include iconv headers and libraries in the build process.
- Fix shadowed declare.
- Made cleanup_pending_glines() an event started off when loading the m_gline module - Removed s_gline.c, s_gline.h and metadata.c
- basename the right variable.
- name conflict was confusing Makefile
+ fixed modload log notice
- Moved tstats() to m_stats.c and killed s_stats.(c|h) - Got rid of extra ServerStats pointer - Killed ms_error which was basically a duplication of m_error
- Moved m_error to core modules and made remaining command handlers use m_ignore instead of m_error
+ additional parameter 'exact' for find_module(): if NO, match only the canonical name i.e. m_part.ABC will match m_part.so or built-in m_part (used to check if any version of a module is loaded) if YES, match the whole file name (used with /modunload and friends)
- Get operator.c to compile (with a few warnings)
+ make it compile, and maybe even run...
+ finished modules API + now we need to put these mo_modload etc somewhere
+ don't allow pathnames when loading modules *kiss*
+ module manager
+ default field support for class{}
+ support for oper "name" { ... } syntax
- Added conf_operator_report()
+ make conf_add_field return pointer to ConfField
+ added support for syntax SECTION "value" { ...fields... };
ConfSection has a field 'def_field', if non-NULL it will be
assigned with the provided value.
- As suggested by adx, allow oper{} as well as operator{}
- Added reset_operator(), also do some error reporting
- Added initial version of operator.c which still isn't finished and propably won't even compile.
- Ripped out lazylinks as discussed on irc. the main concept wasn't very well designed and will be done in a better way some day. Anyways, they propably never worked and were considered bloat by most people. Good bye!
+ added support for integer enumeration in conf manager
+ will need this for listen{}
+ s/extern/EXTERN/ in include/conf
+ implemented class{} from scratch; it's almost done,
I only need to add limit checking code
+ added nice syntax e.g. number_per_ip = 3, global:5;
+ added some aliases ie host_limit === number_per_ip,
userhost_limit === number_per_userhost
(replaces max_local & max_global mess)
+ check example.conf for more details.
+ forgot to update newconf as well
+ missing header
+ added logging{} block. I hate to add this rusty code to new conf
but it's the only way for now..
+ style corrections
+ moved max_watch to the beginning of 'registered users' subsection
- Finished WATCH implementation - Added missing 'return' after register_remote_user() call in nick_from_server() which would cause an extra hash_del/strcpy/hash_add combination.
+ simple implementation of modules{}
+ ok this sucks, we need new module manager
- reorganisations which aim at: 1) moving read_conf_files() at the end of daemon bootup process, 2) making load_*_modules a part of conf parsing, after the 1st pass
+ use L_CRIT not L_WARN in parse_fatal
+ coded new serverinfo + added parse_fatal, similar to parse_error but using L_CRIT and server_die + cold moved out from reset_conf, verify_conf callbacks to a global conf_cold
- s/init_serverhide/init_admin/
+ implemented admin{} support
+ implemented serverhide{}
+ added splitmode activation/deactivation to conf/channel.c
+ added missing call in init_conf()
+ added serverhide{} skeleton
+ implemented channel{}
+ removed invite_ops_only, controlled by +p now
+ sorted ircd.conf:channel{} a bit
+ added newconf framework for channel{}
+ added missing 7.2 RELNOTES
- copyright fixes
* implemented general{}
* finish last commit
* added general{} framework
- rearranged new conf headers a bit
- Split out most of the *line *resv stuff into separate file parse_aline.c should go eventually into the subdir conf - removed double -o in Makefile.in in src, this caused compile to fail for me
- Finialise svn:ignore keywords to fix everything
- added dynamically extensible conf parser (compiles ok); enough to start
modularising general{} -> general.c, auth{} -> auth.c and so on.