There have been quite a few changes in Hybrid 7 and this is a list of the main 
new features:

The Config File has drastically changed.  It now however allows most of the
options that were in config.h, to be changed with a /rehash.  

------------------
 Channel Changes:
------------------

- Channels are now flood controlled for unopped/voiced users.  If too many
  messages are sent to the channel in 1 second they will be throttled.  The
  value needed is set in /quote SET FLOODCOUNT, and is in the config as a
  startup value.  A side effect is CTCPs will be throttled for non-ops, but
  this cannot be helped.

- Invite exemptions are included (channel mode +I).  This is similar to +e,
  this is a nick!user@host mask of somebody who can join an invite-only (+i)
  channel without having to be invited first.

- Half Ops are added.  This gives a user most of the power of a chanop (@)
  but without the ability to take over the channel.  Half-ops can kick
  unopped users, voiced users, set channel modes including +v, but not kick
  ops, or deop ops.   This leads to greater security on channels.  This is
  the mode (+h) and is seen as % on the channel list.

  NOTE:  Half ops are optional and enabled by default.

- Channel Op Hiding is now included as a channel mode.  By setting the
  mode +a when a user joins the channel, they will not see who is opped,
  voiced, or halfopped.  They will see mode changes except +ohv but will
  see them as: 

       *** irc.server sets mode +b nick!user@host on #channel

  When a user is opped, the user will see a server generated "massmode"
  showing them the real list of who is opped/halfopped/voiced to keep
  clients in sync.

  NOTE: Anonymous ops are optional and disabled by default.
  
- The infamous VChans are included.  This allows multiple channels with the
  same name.  When joining a channel with vchans, a simple JOIN #channel
  will show a message saying which channels are available.  The user will
  then have to JOIN #channel !key with one of the provided keys.  Creating
  a new vchan is easy as well.  Part the channel and do /quote CJOIN #channel.
  A new view of the channel is created.   A legitimate op can just CJOIN a
  new vchan and get all of the old users over to the new vchan.  The takeover
  people will then be sitting opped by themselves in a vchan while the
  original users are back the way they were before in another vchan.

  The command CJOIN and vchans are configurable in the config file:
       vchans_oper_only=yes; will make CJOIN oper only
       use_vchans=no;        will stop vchans from being recognised on
                             this server

  See doc/vchans.txt for more information.

--------------
 User Changes: 
--------------

- AWAY is now propagated from server to server

- Server side ignore is included for all users.  Setting user mode +g will
  make you ignore all private messages.  Channel messages are not affected.
   People who you wish to communicate with can be permitted with the
  /quote ACCEPT nick command.  The current accept list can be seen with  
  /quote ACCEPT *, and nicks can be removed with /quote ACCEPT -nick.
  When a user tries to message you when you are set +g, and they are not
  on the accept list, they will receive a message saying you are on server
  side ignore.  You will also receive a message, but it is paced, so you will
  only receive a notification every 60 seconds.  When a user changes his or
  her nick, he or she will be removed from any other user's ACCEPT list.  This
  must be done in order to prevent other users from being able to trace another
  user through NICK changes and the like.  When a user is placed on the ACCEPT
  list, the user will be notified.  More information is available in the
  modeg.txt document in this directory.


------------------
 Operator Changes:
------------------

- Unauthorized connection notices have been moved to the +u user mode.

- The server can now differentiate between admins and opers.  This helps
  to hide the IPs of servers, by only showing them to admins:
     (indicated by umode +a and admin=yes; in oper block)

  It also limits certain stats commands to admin only.  IPs can still be
  fully removed from all admins and opers by defining HIDE_SERVERS_IPS in
  config.h.

- The /notice $irc.server command has been renamed to /notice $$irc.server

- The /notice #*.hostmask command has been renamed to /notice $#*.hostmask
  This avoids any further confusion between messaging a real channel and
  messaging a hostmask.

- Remote K-Lines are supported.  These allow you to permit operators on 
  remote servers to place klines on your server.  The shared block in the
  config specifices what server to allow remote klines from, and what
  user/host on that server, to restrict it to a specific oper on there.
  This is detailed more in doc/kline.txt

  To K-Line on a specific server:
     /quote kline user@host on irc.server :reason
     /quote kline [time] user@host on irc.server :reason

  To K-Line on multiple servers:
     /quote kline user@host on *.uk :reason
     /quote kline [time] user@host on *.uk :reason

  To K-Line on all servers:
     /quote kline user@host on * :reason
     /quote kline [time] user@host on * :reason

  To K-line locally only:
     /quote kline user@host :reason
     /quote kline [time] user@host :reason

- Local operators are no longer part of ircd.  The oper flags are used to
  restrict what each operator can do.

- User modes can be specified oper only.  This is yet another start time
  configurable option in ircd.conf.  See the comments in example.conf for
  more details.

- STATS e now shows events. (admin only)

- STATS f now shows active file descriptors. (admin only)

- LOCOPS have been moved away from the traditional +z usermode (operwall)
  and into their own usermode: +l.  This allows oper to ignore operwall,
  but still listen to locops.

- Implemented local RESV.  This replaces:
     /mode #channel +j and Q: lines in hybrid-6.

  To RESV a nick:
    /quote resv nick :reason

  To RESV a wildcard nick (must be an admin)
    /quote resv *nick :reason

  To RESV a channel
    /quote resv #channel :reason

  You may also UNRESV, and add resv's in the config.  See resv.txt for more
  details.


-----------------------
 Miscellaneous Changes:
-----------------------

- zlib is gone.  If you want ziplinks, you need to have zlib installed
  somewhere configure can detect it.  Almost every system on the planet
  should have zlib installed by now, if not, just install it yourself.

- Encrypted server<->server links are now supported.
  See doc/cryptlinks.txt and doc/example.conf.

- Server hiding is also a conf file option.  This allows you to only show
  a users server to opers, WHO, WHOIS and WHOWAS are modified to show 
  NetworkName.  TRACE is disabled, LINKS can be made to show a "flat" tree,
  giving the appearance everything is linked to the current server.  Servers
  can also be hidden from this "flat" tree.

  This feature needs to be enabled network wide for it to be fully effective.

  See serverhide.txt for more information.

- LazyLinks are now included.  These enable a leaf server to only need
  information about channels that it's local users are on, and nicks that have
  been used (in a channel, in a private message, or in a WHO or WHOIS by a user
  or channel on the leaf).  Read the LazyLinks.as.implemented.txt document for
  more information.

- Nearly all commands are now modules.  MODLIST will list all loaded modules,
  MODUNLOAD will remove a module from the ircd, and MODLOAD will load a new
  module into the ircd.  MODRELOAD will unload then load the module in one
  simple command.  All of these commands are documented in opers.txt and are
  restricted to admins only.  These commands are disabled when compiled with
  static modules.  If a module is to be upgraded it MUST be deleted first, as
  otherwise some OSs can have problems and crash.

  Some of these modules are defined as 'core'.  That means they cannot be 
  unloaded, and may only be reloaded.  If the reload fails the ircd will exit.

- HUB is now a runtime option.

- Classes (formerly Y: lines) can now be names instead of numbers.

- IPv6 is now supported, enabled via ./configure --enable-ipv6

- Connection throttling has been included.  This allows fast reconnecting bots
  to be throttled.  Similar to ircu's implementation.

- Hybrid now supports IRCnet-like redirection.  The redirserv and redirport
  options in an auth {} block will allow an admin to specify other servers
  to forward user connections to.  The client must support the 010 numeric
  for this to work (EPIC supports it).  Note that there must always be a class
  field in auth blocks, even ones that will just do redirection.

- Autoconnects are far more customizable now.

- There are hooks in the code, that loadable modules can plug into.  These
  hooks provide interfaces for user enhancement.  There are some hook modules
  provided in contrib, providing WHOIS notice, STATS notice, and LINKS notice.
  Others will be added as the ircd matures.

- Hybrid now has the ISUPPORT/005 numeric, showing the client what modes this
  server will support, and what commands:

    KNOCK          - Support KNOCK
    VCHANS         - Support Virtual Channels
    EXCEPTS        - Support ban exceptions (+e)
    INVEX          - Support invite exceptions (+I)
    WALLCHOPS      - /notice @#channel will notice only ops
                     /notice %#channel will notice only halfops/ops
		     /notice +#channel will notice only voices/halfops/ops

		     privmsg is also supported.
    CALLERID       - Server supports the +g usermode for server-side ignore.
    MODES=%i       - The number of channel modes accepted per MODE command
    MAXCHANNELS=%i - The maximum channels per user
    MAXBANS=%i     - The limit on the total number of bans, excepts and invite
                     excepts per channel
    MAXTARGETS=%i  - The number of users that may be chained together in a
                     PRIVMSG or NOTICE (user1,user2,user3...)
    NICKLEN=%i     - The maximum nickname length
    TOPICLEN=%i    - The compiled in topic length
    KICKLEN=%i     - The length of a KICK message
    CHANTYPES=%s   - The types of channels supported (currently '#&')
    PREFIX=%s      - The allowed PRIVMSG/NOTICE channel prefixes (server based
                     /onotice, NOTICE @%#channel :message)
    CHANMODES=%s   - How channel modes are used (see supported.h for details)
    NETWORK=%s     - The IRC network name
    CHARSET=%s     - The character set the ircd uses for channel names

- CAPAB List:

    TS      - Support the TS protocol
    QS      - Remove the QUIT storm on splits
    EX      - Support +e exceptions in channels
    CHW     - Support PRIVMSG/NOTICE @#channel messages
    LL      - LazyLink server
    IE      - Invite Exceptions - +I on channels - All nick!user@hosts listed in
              a +I are exempt from having to be invited to the channel before
              JOINing
    EOB     - End of Burst - Marks the end of a servers burst.  Will be used in
              future to help prevent mode hacking by servers.
    KLN     - Support remote K-lines
    GLN     - Support G-lines
    KNOCK   - Support propogated KNOCK
    HOPS    - Support half-ops
    HUB     - Is a hub server (used to prevent two LL hubs from linking in that
              state)
    AOPS    - Supports anonymous channel ops (channel mode +a)
    UID     - Unique user-ID support
    ZIP     - Ziplink (Link is compressed with zlib compression)
    TBURST  - Supports topic bursting, a contrib/ module.
    PARA    - Controls propogation of INVITE notices for +p (paranoid) channels
    ENC:a   - Encrypted link, where 'a' is the cipher being used

# $Id: whats-new.txt,v 7.37 2002/10/28 21:09:18 bill Exp $

