- Move old 7.3 sources to branches/ircd-hybrid-newconf
- remove old m_ungline code
- strbuf accept listing
- strbuf this, much cleaner looking
- use strbuf here
- 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
- forward port 709 and 708 changes
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
- forward port - add +C - add -full to etrace Reviewed by: cryogen, Bear
Make m_names compile again
Throttle 'wildcard' NAMES, this does look like it eats some CPU on a big net
remove outdated comment
Fix wrong comment
+ only filename changes
- Fixed resvs
- propset
+ fixed win32 build (at least under BCC) + newconf adjustments aiming at simple.conf compatibility + added missing init_resv() call
- More TBURST fixes
- Small cleanups for better readability to whois_person()
+ 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?)
- Fixed src/Makefile.in - Have KLINE and friends deal properly with write_csv_line(). It's currently kinda ugly, but the whole csvlib crap will have to be rewritten to use some proper database anyways. /UN*LINE may core for now.
+ restored class limits plus reworked them to be a bit more sane.
+ 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
+ removed s_conf.h and superseded parts of s_conf.c
+ reworked operator{} blocks to make them independent from oldconf
+ moved some utilities from s_conf.* to libio
+ added stub for auth{} blocks
- Avoid header files including other header files - Killed supported.h, fixed misc. compile errors
- Moved show_ports() to m_stats.c
- Moved can_join() to m_join.c - Use const keyword in channel.c whenever possible, fixed comments too
- m_names(): removed useless check_channel_name()
- Moved ircd_get_platform to libio and killed version.c
- Fixed several compile errors
+ do not report +g on /whois if target_p is in +G mode
+ slight numeric changes, updated polish translation + show "%s is in +g mode" on /whois
- Fixed function naming convention in some places - Moved win32 uname() to libio
- Got rid of Server::dep_user,dep_server and renamed Server::user and Server::servers dlink lists to client_list and server_list
- Removed all common.h header includes from libio sources - Moved IRCD_MIN/IRCD_MAX macros to libio and renamed them to LIBIO_MIN/LIBIO_MAX
- Fixed old bug that would forbid SPAMNUM to be disabled via "SET SPAMNUM 0"
- Moved split_users and split_servers ints to GlobalSetOptions struct
- Killed get_maxrss(). Kinda useless and not very portable. - count_memory(): replaced all longs with size_t
- Replaced several strchr(x, '*'), etc. with hash_wildcard() - Removed useless collapse() call in hunt_server(). It's match()'s job to deal with multiple ***. No need to re-copy the entire string again.
- Moved logging and announcement of *LINES out of csvlib into their specific modules where they belong to.
- Use get_oper_name() in each place an oper action is logged. (KLINE/XLINE/DLINE, etc.)
- Got rid of several pointless irc_getnameinfo() calls in places where we can simply use client->sockhost. - Removed contrib/m_ltrace.c. Use TRACE instead. - Fixed compile errors in m_gline.c and m_info.c
- Properly fixed /dline nick and removed inetntoa()
- Fixed /dline nick for ipv6 servers
- Killed the client_p parameter of hunt_server() as suggested by adx some time ago.
- Merged mo_whowas() and m_whowas() and doxyfied it while at it - Made whowas_do() only take 3 params and don't longer cut off a nick after the first comma. As per rfc1459, a comma separated nick list isn't supported anyways.
- Made find_chasing() only take 3 arguments - Cleaned up find_person()
- Moved GLINE_PENDING_EXPIRE and CLEANUP_GLINES_TIME defines to m_gline.c
- Made cleanup_pending_glines() an event started off when loading the m_gline module - Removed s_gline.c, s_gline.h and metadata.c
- Fixed compile warnings in send_caplist()
- Minor changes to pending_gline struct to improve readability - Fixed compile error in channel.c
- Forward-ported gline voting fix
- Forward-ported r560 (negative traffic stats in STATS ?; reported by ThaPrince)
- fix compile error in m_stats.c - wrap header in balloc.h
- Made heap_list a dlink_list type - Killed Block::used_list
- "deglobalized" heap_list and added block_heap_get_heap_list() instead. Note that block_heap_get_heap_list is a const function and the data pointed by it can't and should never be modified externally.
- Fix compile error.
- misc cleanups for better readability to m_stats.c
- Removed redundant tests in ms_server()
- Added missing INIT_MODULE/CLEANUP_MODULE to m_error.c
- 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
- Move m_error.c ..
- Moved m_error to core modules and made remaining command handlers use m_ignore instead of m_error
- Misc changes regarding CAP API documentation - Removed forgotten debugging code in ircd.c
- Implemented CAP command handler based uppon ircu's m_cap() - Added somewhat outdated draft-mitchell-irc-capabilities-01.txt until I get the latest version from kev. - Added "multi-prefix" cap so clients supporting "multi-prefix" may recieve multi prefixed NAMES replies, e.g. @%+nick1 @+nick2 .. - Fixed "make clean" for src/conf/
- In 7.3 we don't have lazy links anymore ..
- Break the loop if a client has reached its channel limit
- Got rid of extra strlenS and redundant hash_find_channel() calls - Cleaned up channel name validation routines - mo_force: don't allow servers to be added to a channel
- Rewrote m_join(). This was mainly done to fix some bug that can be easily abused. Details about this bug have been given on IRC.
- Fixed bug where "JOIN #keyedchan1,#keyedchan2 key1,key2" wouldn't work. Reported by ThaPrince
+ fixed a stupid
+ work against malformed numerics on "WHOIS : " + actually the same needs to be done in many other modules...
- Don't allocate new dlink_node pointer on each client creation, rather reuse localClient->lclient_node for linking it into unknown_list and move it into local_client_list after client registration.
- fix compile errors with moved modules.h - fix a few missing includes, msg.h and parse.h
+ I really see no reason for this garrulous "Client Quit" reason, it used to be just a null reason for years.
- fixed typo - fixed argument number - removed reference to no longer used argument
- Small changes so register_local_user() only takes 2 parameters instead of 4
- Use set_initial_nick() if an unregistered client is changing between equivalent nicks which only differ in cAsE. That way we properly keep the fd note about the client updated.
- Get rid of can_send_part. This also fixes a bug where voiced clients weren't able to send a PART message to the channel. Reported by ThaPrince.
+ STATIC_MODULES is no longer meaningful so byebye
+ massive rewrite of module init/deinit/version headers, we are introducing a new module manager which deals with static and dynamic modules exactly the same way. (New possibilities include loading/unloading statically compiled modules and mixing static/dynamic ones in one build.)
- Fixed invalid output of the USERS command as reported by ThaPrince
- Alphabetize values.
- Removed check_channel_name() call in m_mode(). hash_find_channel() will deal with invalid channel names. No need to always scan the buffer pointed by parv[1].
- Merged set_autoconn() into quote_autoconn()
- Removed now unused llflags parameter from sendto_server()
- m_knock(): use chptr->chname instead of the string the client provided us when reporting errors etc
- Got rid of ms_topic()
- Removed LL leftovers
- 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!
- Fixed some nasty bug reported by Fool, also cleaned up m_join.c a bit
- Forward-port relay_xline fix from 7.2
- Cleaned up some special magic in show_iline_prefix. Someone tell me why we should copy aconf->user into a separate buffer after the prefix? Also renamed it to make_iline_prefix.
- Removed death code. We don't have sth. like conf *lines* anymore
- Don't free() source_p->localClient->auth_oper after calling oper_up() on source_p. Added small explanatation about why you shouldn't do that.
- More m_connect cleanups, I also never liked the idea of temporarily modifying a connect item, so let's do this a bit different now.
- Get rid of some really outdated PORTNUM assignments/tests in m_connect(). connect items have a default port set upon creation. - Untabified m_connect.c
- Fixed some compile errors and some shadowed declarations.
- Mainly re-wrote split_nuh() to fix a regexp kline bug where we would cut off the user portion after 9 chars, but also to be a bit more flexible when we have to deal with different user/host name lengths. - Re-wrote m_capture() to use split_nuh()
- Kill mo_info() and use ms_info() instead
- Don't allow shared (remote) k-lines to be set without a valid reason
- documentings
- Got rid of multiple bogus_host() copies
- More documentation
- m_admin.c: fixed comment about parv[1]. Also did some style cleanups
- Continue doxyfying modules
- Add missing semicolon
- This should fix broken set_topic() as reported by CoolCold
- Got rid of do_local_user() function
- Only locally connected clients should be checked for a valid channelmembership when processing the INVITE message. Remote clients that are outside a channel e.g. services, are allowed to send INVITEs. This also fixes a bug with anope services. Reported by r0d3nt
- Don't pace "WHO #somechan" and "WHO *" as this breaks several clients
+ fixed logic for maxlisters + if maxlisters=0, show the 'list disabled' notice
- Fixed the fix ;P It is possible that sockhost field is empty for remote clients coming from a TS5 server
- Fixed WHOIS bug with RPL_WHOISACTUALLY. Spotted by adx
- Fixed name clash between *FloodNoticed macros in client.h and channel.h
- Moved has_wildcards() from m_list.c to match.c and re-use it in some other places.
- Killed 'flood_noticed' int in LocalUser struct
- Fix logic so it actually works right for opers/admins/unopered with spoof/unspoof logic
- add a maxlisters /quote set limit the number of possible listings going on at once
- Fix typo .type = ENTITY_NONE - Fix prototype for find_userhost() prototype and fixed calls of this function
+ another slight bug, ie '/msg 0 something' would not lead to any error message (as it was delivered)
+ fixed something that would obviously lead to a compile error
+ and yet another one, *sigh*
+ another slight fix for /msg nick@server,nick@server bug
+ fixed several m_message issues + no idea how many bugs did I introduce, or even if it compiles, be welcome to review.
+ fixes for accept
+ ported rate limiting fixes from 7.2
- propset svn:keywords "Id" modules/m_watch.c
- Cosmetical fix to "STATS z"
- Don't allocate memory until it is known it will be allowed - No need to allocate memory twice.
- Forgot to remove accept_num, we dont need it anymore.
- Got rid of build_nuh_list() - Readd ability of showing ACCEPT list via "ACCEPT *" as described in umodeg.txt
- Fixed misc compile errors
- Fixed and cleaned up new acceptcode, e.g fix memory leaks, don't allow wildcards in a mask when removing accepts, don't allow redundant masks etc.
- Cleaned up report_memory() a bit more. user_invite_count is actually the same as channel_invite_count.
- Style correction to watch.c - Add some statistical information about WATCH headers/entries to "STATS z"
- This commits the n!u@h accept code I'll tidy it up more later.
- replace all MODE_PRIVATE with MODE_PARANOID - Can't use make_dlink_node() too early in startup or it will core
- 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.
- Fixed compile error in m_invite.c and s_serv.c - Added m_watch.c
+ removed invite_ops_only, controlled by +p now
+ sorted ircd.conf:channel{} a bit
+ added newconf framework for channel{}
+ added missing 7.2 RELNOTES
- Killed count_whowas_memory()
- Rewrote whowas.c to use linked list routines from tools.c
* prototypes are now prefixed with either nothing or EXTERN (meaning it's an ircd.dll API) * dynamic modules now work on win32.
- ETRACE should spit out an error if used by a non-oper. Reported by nenolod
- Fix m_testline.c in HEAD This bug is old. The code was missing a test for a kline conf and the sendto to print that kline out, in the case where it was a kline against and IP. i.e. foo@ip.ip.ip.ip it would work in the case where it was a kline against a dns.
- interim fix for memory leak in m_testline.c, Michael's split_nuh() would be a better solution. - restore original argv1 if needed, remember to also free this
- Limit maximum WHOWAS replies for remote requests to 20, as per H6
- Fixed a bug where remoteservers would send us an ERROR on "WHOWAS nick count remoteserver.net". Propably one of the oldest bugs that got introduced in 7.0.
- Make ->conf conf_ptr to be consistent in all places.
- get rid of map_conf_item and unmap_conf_item - Use an union in struct ConfItem, but only allocate memory needed
- fix compile warning - removed p variable
- m_testline fix using split_nuh()
- fix testline to work with cidr i lines of the form foo@ip.ip.ip.ip/bits
- Don't do any client/oper conf attach at all if any possible
- still need a temporary copy of the client auth block for much the same reasons as a copy of the passwd is needed. - need a copy of the oper conf for get_oper_name() so reuse no longer needed temporary spot for client auth block
- attach/conf cleanup take 2 - Each client has now one AccessItem for its connect stored in localClient->iline - The corresponding class is now stored in localClient->class The ramifications of this move are, there is no conf list to traverse to find the AccessItem, the class is instantly available from the localClient struct without having to traverse the confs list and indirectly through the aconf. This speeds up get_sendq etc. functions. As a bonus, at least 4 fewer bytes are used in the Client struct, since a dlink list is 4 words. It does mean there is no longer a separate conf oper, which leads to the kludge of patching the clients iline into an oper conf when a client opers up. I don't think the oper flags are used after the client is opered, so the patching operation may not be necessary. - Server confs are stored in ->serv->sconf as before but attaching happens much earlier. - server hub/leaf masks continues to be a dlink list but linked from the ->serv which is only allocated for servers. - cleaned up some comments, added a comment, notably to check_server() which badly needed it. - Pass ClassItem or AccessItem etc. in when it makes more sense than passing in struct ConfItem. This simplified and clarified rebuild_cidr_class() And lo, there was a great rejoicing.
- renamed m_tb.c to m_tburst.c [could not resist]
- it is probably more clean to do it this way..
- Moved ms_tburst() to m_tb.c as suggested by adx - Fixed problem where we would send both TB and TBURST to the same server
- More TBURST changes
- First logic fix to m_tburst(). Don't fully reject a TBURST in case remote topic is the same than ours, that would just cause more desyncs. Just accept/propagate it, but don't send a TOPIC to the channel.
- Removed TBURST_PROPAGATE define, it's now enabled by default.
- Readded m_tburst.c. It currently doesn't compile and needs a rewrite.
- Change the topic whenever the topics don't match even if the TS is different because if we check topic TS and we have a topicTS mismatch, we will have 2 different topics on two different servers.
- fixed core on /links
- First pass at s_conf.c cleanup for attach clients - attach_conf() is gone replaced with attach_iline() Clients/servers have one single I line "attached", i.e. the confs list is gone. - Add attach_leaf_hub() Add a leaf or hub mask to the given server, ->serv must exist since there can be a list of hub masks and leaf masks, this continues to be a dlink list - Removed redundant find_conf_exact() This function can be replaced in all cases with find_exact_name_conf() notably because all find_conf_exact did differently was count whether an oper conf would cause an already connected client to exceed class limits. - oper_up() now takes an extra conf pointer pointing to the found oper conf, the oper flags are set in the client->iline as necessary in oper_up() - Cleaned up more prototypes that should have been moved from s_conf.h to parse_aline.h notably. find_kill() and find_gkill() - m_stats.c needs more cleanup since memory in attached "confs" is now not counted. This should be replaced with iline memory count and hub/leaf confs memory count.
- CHANNELLEN vs. LOCAL_CHANNELLEN fix. Local JOINs are limited to 50chars whereas remote SJOINs/JOINs can be upto 200chars for backwards compatibility.
- Moved llname to LocalUser struct
- Got rid of restart(), cleaned up m_restart() and make it use server_die()
- Fixed bug in m_whois() that would allow users to send a WHOIS to remote servers with an empty argument via "WHOIS someserver.org :"
- 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
- splitted ircd/libio, all headers connected with libio sources have been moved for internal use only. To use libio interface, include "libio.h" (which is already done in "stdinc.h")
- removed last references to the ircd core, libio is independent now - to do: split headers
- removed external references from libio/net, still to do: comm
- removed external references from libio/misc - imported s_misc.c to libio, moved CurrentTime there
- reorganisation goes on, removed external references from libio/mem
- split libio Makefiles for easier maintenance - moved pcre.h to main include/ as it is currently a part of libio interface (in the future all such headers should be moved to libio/ and integrated...) Now, libio components like comm, misc etc. should be as independent as possible (from the rest of ircd and from each other), to allow easy reuse in other software and to keep the interface clean.
- move non-irc related sources to /libio - todo: make it independent of the rest of code
- svn:keywords
- svn:keywords
- Fix svn:keywords
- imported sources - can be moved later according to the directory/branching scheme, but we need the svn up