1.0-50
------

- Fixed a potential crash when changing nicks, this bug was
  introduced in -48 (Thanks Renzo)
- Updated BUGREPORTING
- There was a lurking bug in the message parsing, fixed (oer
  would obey to commands even if there wasn't a whitespace
  delimiting the prefix or nick name of oer and the command)
- add/del/edit chanflags was missing a channel sync, fixed
- Improved security for "list adverts" (when sent to a
  channel, oer will check that there are no users that
  shouldn't see the advert, if there are the advert won't
  be shown)
- Added chanflag "c" to disallow ACTIONS on channel

1.0-49
------

- Fixed initial flooding of the console by processactions()
  in debug mode
- Decreased the default PRIVMSG/NOTICE barrier in
  processactions() by one second
- Changed oer not to quote messages with "(c)"
- oer now displays the current server in sstats
- Added a date command
- Added the "V" chanflag (auto voice admins on join)
- Removed the "(truncated)" from last command, as many
  characters as possible is displayed from now on
- Added a UPGRADING text file describing what usually
  needs to be done when upgrading from version to version
- Made on-join quoting return better quotes
- Fixed some Solaris/SunOS specific bugs, debug-mode
  should work again on those platforms
- oer did not work with local channels, fixed (&unix)
- Logons that are expired are now correctly detected as
  soon as they expire
- If oer is given a erroneus altnick and the primary nick
  is taken, oer will use a random nick
- Added channel flag "x" to tell oer not to timeout logons
- oer will now write a file called oer.pid that will
  contain the process id of oer (no further copies of oer
  are started if this file exists and a process having
  the pid in oer.pid is running and is owned by the user
  trying to start oer)
- Added tools/checkoer.sh to be put in crontab for you
  people out their having unreliable UNIX shells
- There is now a check when backuping configuration files
  that the file being backed up hasn't got zero size
  (with this change having "b" flag one should assure that
  there is at least one working set of configs in   case of
  quota/diskspace filling up)
- If channel has "O" or "V" flags, dynamic admins are now
  automatically opped or voiced on logon
- Added chanlimit (works just like chankey)
- You can run oer on Windows with Cygwin, the procedure is
  explained in CYGWIN

1.0-48
------

- Fixed a memory leak in cleanautheds()
- oer would keep on setting the chanmode(s) on networks
  which allow re-setting of channel modes, fixed
- There were several issues with the "g" flag introduced
  in -47, I hope I found them all
- Rewrote the server registration bits
- Fixed add nickbk/wordbk
- Unified permbans with nickbks and wordbks (redo bans)
- Changed all occurances of "lamer(s)" to "normal(s)"
- Topic separator is now a #define in oer-common.h
- Changed channelsync not to op/voice if channel doesn't
  have "o"/"v" flag set
- Added support for dynamic voice
- Added chanflag "s" as in "serve all" (with this flag
  you can allow anyone on channel to use the following
  commands: help, info, uptime, sstats, last, quote,
  seen and nstats -- THINK BEFORE you set this flag, it
  will allow anyone to cause flood to oer and the channel)
- Fixed error checking for getondiskmsgcount() in parse.c 
- Minor tweaking to Makefile
- There were a few places where a open file handle
  wouldn't get closed, fixed
- Added support for the remaining IRCNet user ID prefixes
- If logging was switched on after starting oer the log
  would be named oer-<pid>.log where as if logging was on
  when oer was started the log was named oer-<pid>.raw
  (now the latter is used in both cases)
- On-join and manual quoting, last, seen and nstats didn't
  work if last/seen logging wasn't enabled, they will now
- add and del flags was broken for "l", fixed
- Rewrote the command scheduling logic (and due to this
  rewrital the wall command amongst others has been changed)
- Not all CTCP's sent to a channel were checked for flood
- Implemented nick flood protection (chanflag "k", also see
  the Online Help for the 2 new parameters to floodvars)
- Fixed the MAX CHANNEL detection (oer will now try to
  rejoin a channel it couldn't join because of the maximum
  channel limit)
- Bogus chanmodes were sometimes set when oer was opped and
  there were unset chanmodes (or a chankey)
- There was a bug when syncing permbans, fixed
- oer no longer stops parsing the configuration files if it
  encounters a unparseable line

1.0-47
------

- Fixed add user to allow adding users without flags
- last and seen were broken for a nick that had no records
- There was a lurking bug in channel mode detection
- The last and seen logs were falsely opened in clonechannel()
- A response resulting from the deletion of a channel
  wasn't sent to the channel being deleted, fixed
- Deleting permbans didn't work as expected, fixed
- oer had problems parsing lines with very long words
- One couldn't add a channel key if no channel modes had
  been set, fixed
- List flags now works the same way list chanflags does
- Implemented add & del flags (works just like chanflags)
- Sample kickreasons weren't copied over to the install
  directory, fixed
- Added global flag "b" (switch it on if you want oer to
  make a backup of the configuration files when they are
  being saved)
- Added some additional checks to configuration saving
- Added global flag "g" meaning get & keep nick (oer will
  register itself on the server with a alternative or a
  random nick but will keep on trying to get it's primary
  nick as long as necessary, works also "on the fly")
- Added chanflag "t" to indicate you want a topic lock
  (all topic changes should go through oer)
- On disconnect from the server not all of the internal
  parameters were being reset, fixed
- Added support for Q auth, see the Online Help for the
  syntax (NOTICE! your Q password will be stored in plain
  text, so extreme care should be taken)
- The channel mode wasn't being set on rejoin, fixed
- There was a longstanding bug where oer wouldn't respond
  to some commands from a global admin if no channels had
  yet been defined
- "make install" allows now adding of dynamic global admins
- Unified a bit the way nickbks and wordbks are being handled
  in oer and oer+MySQL (you might want to reset your nickbks
  and wordbks to get working kick reasons)
- Fixed some minor memory leaks
- Correct handling of the restricted connection indicator '^'
- Added channel flag "N" to indicate that oer should
  consider only bot users with "o" as channel operators
  (can be used together with "U" to make oer see channel
  operators without user records as normal users)
- Fixed oer from flooding itself with USERHOST queries on
  channels with hundreds of users
- Fixed list nicks to not cause excess flood on channels
  with hundreds of users
- Fixed "make install" for shells not providing a system
  wide install command
- IRC REALNAME didn't allow >1 words, fixed
- Changed the way "lamers" are being picked on random ban,
  random ban & kick and lock
- Removed the notice that one shouldn't remove oer's permbans

1.0-46
------

- Added support for global admin passwords (works just
  like with channel users, just obmit the channel)
- NOTICE! Because of the above change you will have to
  go through your configuration before running oer
  and see that no admin (in oer.admins) has the "d" 
  flag set, otherwise you will be unable to admin
  oer because the admin has no password
- Fixed a subtle bug when processing multiple modes
- checkstoned will no longer be processed on startup
- Fixed add server so that it really requires just the
  hostname & port, other parameters are optional
- Fixed add admin to allow adding admins without flags
- There was another lurking bug in the authorization
  checking, fixed
- List chanflags verbose no longer fitted in to one
  server message, fixed

1.0-45
------

- Fixed uptime command for non /proc systems
- Userhosts were being queried too fast on channel join
- Rewrote code where floating point math was used
- Added channel flag "M" and user flag "m" to prevent
  normal users from adding, removing or changing their
  hostmasks
- oer didn't check for the "l" chanflag when the lock
  command was issued by a non-admin user
- Fixed also other issues with the lock command

1.0-44
------

- Fixed the op and deop commands
- When adding a new service trusteds were falsely scanned
  for existance, fixed
- Trusted and services (hosts) can now have wildcards
- Fixed the order of KICK and MODE in !bk and !rbk
- Fixed yet some MODE bugs (these all were introduced
  in -42 when I changed the size of NICKLEN)
- Fixed list channels to hide only +p & +s channels if
  the user requesting the list isn't at least op on the
  channel being listed
- Made the oer main loop process actions even after
  server I/O, should speed things up (not too much I hope)
- Changed NICKLEN from 15 to 20

1.0-43
------

- syncops() had a incorrect authorization check, fixed
- The order of KICK and MODE in ban & kick was also fixed
- When cycling a channel to gain ops the wait period
  between rejoins was decreased from 10 to 1 second
- Improved "make install"
- Fixed the automatic synchronization that was called when
  oer was opped
- Fixed the service/server mode detection
- Added a HELP file describing what YOU can do FOR ME
- Fixed the "not a prototype" warnings for oer.c on Solaris

1.0-42
------

- Support for !del channel without parameter(s) was removed
- Added multiple parameter support for many commands,
  see the Online help (marked with []...)
- Changed NICKLEN, USERLEN, HOSTLEN and USERHOSTLEN to
  more realistic values (as reference I used Linux and
  the Undernet derived ircu, if you need to increase
  these to suit your needs, edit oer-common.h)
- Decreased the wall delay from 5 to 2 seconds
- When chanflags L or S are set, added or deleted a more
  informative message is displayed
- Listing autheds always listed all hostmasks for a authed
  handle, added support for start position

1.0-41
------

- Did some code cleanup based on profiling information
- Added an additional check to clonechannel()
- Added a BUGREPORTING file that contains instructions
  on how to send comprehensive bug reports
- Implemented add & del chanflags (you just give the
  flags you want to set or remove, not all of them)
- Changed del channel command so that it allows you to
  specify which channel to delete when sending the
  command to the channel
- Added devoice command
- Restored multiple modes
- Added support for services, this works just like
  the Q friendly mode except you can have several hosts
  (the global flag for services is "s")
- Rewrote processenv() and some related functions
- Backported pre_install.sh from oer+MySQL (allows you
  to make your initial configuration in "make install")
- Did some additional code cleanup
- The default for oer is now to have no debug messages,
  you will have to specify --enable-debug to configure
  if you want the messages (the size reduction of the
  optimized & striped binary vs. the binary with debug
  messages & symbols is about 70%)
- Added a TODO file (always first look at the TODO
  before suggesting anew feature)
- Added global flag "m" to make oer send messages
  instead of notices (not preferred)
- Added a validity check when adding new channels
- Fixed a bug in authorization checking (for example
  if you had a "dfv" user with *@* and a bunch of
  "o" users with their respective masks, the *@* mask
  would get matched for the "o" users)
- There was a memory leak when deleting a user with
  a password or removing the "d" flag from a user, fixed
- Changed the way list chanflags works: you will from
  now on have to specify "verbose" as a argument to
  list chanflags if you want the verbose listing
- Implemented server statistics (sstats)
- The stoned server checking was obviously broken and
  has always been (now only activity from server is
  counted as activity -- you may have to change your
  server ping frequencies to something more realistic,
  see /trace <nick> for the server class then see
  /stats y to see the respective Y: line, the ping
  frequency is the 2nd parameter for the Y:line)

1.0-40
------

- Did some code cleanup to avoid compiler warnings
- Added channel flag "D" to enable de-op protection of
  bot users with at least "o" flag
- Made linenoise to be a value from MIN..pingfreq (you
  will have to increase the value from 1 to something
  sensible like 10-30 if you don't want Excess Flood)
- Fixed the issue with ~ in ident (oer no longer saves
  the ~ to the user ident, it will always be prefixed by
  the server if no ident response is received)
- Rewrote completely the scheduling of IRC commands to
  be priority then time based (since this is the most
  important part of oer, it will require a lot of testing
  by you the users to find out all the possible problems)
- Bumped up the amount of actions processed per loop from
  1 to 2 (if you get Excess Floods, set the variable
  OER_ACTIONS_PER_MAINLOOP in oer-common.h to 1)
- If the configured bantype can't be set (because
  of trusted domains or conflicting hostmask with oer)
  oer will now also try other ban types
- Added a THANKS file that contains a list (not 100%
  accurate, sorry!) of people that have in some way
  contributed in the development and/or testing of oer
- Added clonechannel command
- Made the combination of "d" and "f" user flags work

1.0-39
------

- Fixed a longstanding bug where oer would take user@host
  from the server as it's hostname instead of just the host
- oer will now also use the user id returned by the server
  instead of using the one in the config
- Added a bantype setting for channels, see online help
- Added a "all" and a "user@host" type to adverts
- vhost flag wasn't set on edit vhost, fixed
- Changed some memory allocations and de-allocations from
  static to dynamic. The change should save up some memory
  (the more users your bot has, the more memory is saved
  by these changes)
- Did some code cleanup
- oer incorrectly tried joining a channel waiting
  OER_AUTO_REJOIN_TIME seconds in between joins (the
  correct one is OER_DELAY_BETWEEN_REJOINS
- Added --enable-profile to configure (enable this to get
  profiling information which you can study with prof/gprof)
- Decreased the default net join period from 30 to 15 seconds
- last & seen will now accept a second argument specifying
  how many entries to list (1..MAX)

1.0-38
------

- The inactivity flag is now also displayed in list users
- Fixed the time.h detection (especially Debian users
  suffered from this oversight)
- Channel admins can no longer add the "a" flag to other
  users making them channel admins
- List channels will now also list user count
- Added edit usermode, edit user and edit vhost
- All edit commands should now send a response
- Unified a bit the logic how responses are sent on add,
  edit, del and list commands

1.0-37
------

- Fixed segmentation faults that were triggered on
  platforms lacking snprintf() if empty server
  passwords were passed to parseconf()
- Brought Copyright strings up to date
- Added support for ERR_UNAVAILRESOURCE (meaning if
  oer received ERR_UNAVAILRESOURCE from server because
  of netsplit or such, oer would fail)
- In addition to the set prefix oer will also now obey
  commands prefixed with it's active nick

1.0-36
------

- Added chanflag "G" to indicate that everyone is checked
  for public flood (except service & admins)
- Now the chanflags T, ! and U are also displayed

1.0-35
------

- There was a strlen() after a free in snprintf()
- If no server password was specified, garbage could
  be displayed
- Added chanflag "T" to indicate that oer should not
  do topic handling for the channel
- Added chanflag "!" to indicate that the channel is
  inactive and should not be joined
- Added chanflag "U" to indicate that only users on
  bot (with +a or +o) are allowed to use oer
 
1.0-34
------

- Fixed a subtle bug in processtimeds() that could
  lead into bogus kick/ban reasons (it was a quite
  small window, >= 2 timeds in one second before
  processenv() was ever called)
- Fixed safeban() to correctly return ident@host bans
- Fixed the random kick reason
- Added initial support for server passwords (last field
  of server line, optional)

1.0-33
------

- A syncbans() was missing in del permban and
  in parseirc
- Added "list handles" to get handle(s) for a specific
  nick on a channel (eg. handles with matching hostmasks)
- Made a quick locale fix to allow a wider spectrum of
  acceptable characters for the c-lib functions such as
  isprint() etc -- See "man locale" on how to set locale
  before running oer (most Linux users running a fresh
  Linux distribution should be fine)

1.0-32
------

- Got rid of list.c/list.h (obsolete debugging functions)
- Cleaned up Makefile
- uptime() was missing a fclose()
- Removed a memory leak in initparts()
- Fixed several hostname related issues (there are
  unfortunately some left)
- Changed lastoff() to also look at the hostname
- oer command prefix can now be upto 16 chars
- list channels was missing
- oer didn't handle unset channel modes, fixed

1.0-31
------

- Changed the way nick/altnick is handled and added support
  for a random nick (you'll have to change it manually once
  the primary/secondary nick is available)
- Added !list and !edit altnick because of the above change
- Added inactivity user flag "!" (channel admins can set/
  remove for users and admins for channel admins)
- Added channel adverts (set flag "A" to enable these, see
  add/del/list commands for advert specifics)
- Added support for FreeBSD (a kludge for now until I have
  some more time to find out what is wrong with FreeBSD)

1.0-30
------

- Added paranoid channel flag "P" (combined with "u" flag
  all dyn-ops are required to have valid logons to remain/get opped)
- Fixed admin logon (2nd parameter is now the hostmask you wish to
  get authed for the given handle)
- Increased oer's channel rejoin delay from 3 to 10 seconds
- Made !locku (new, automatically unlocked) and !lock accept
  a reason for the channel lock (optional)

1.0-29
------

- Fixed yet again a "banned for x minutes"
- Fixed getserver() not to get stuck if only one
  IRC server was in server list
- Added !rbk
- If there were bogus/lagged server/service KICK messages,
  oer would segfault (Q for example caused them, sorry for
  this one, I will be looking closely at re-writing the
  channel routines)

1.0-28
------

- Changed oer to correctly show the ban length on auto rejoin
- Added flag "f" to make oer respond to ctcp queries from anyone
- Added "q" flag, a Q-bot friendly mode
- Added chanflag "O" for auto-opping admins even if not a chan user
- Added some additional checks for server modes

1.0-27
------

- Removed a few duplicate linefeeds
- Added support to oer's parse() for non-fixed delimiters
  (eg. you can have >1 spaces between parameters of
  your /msg commands)
- NOTICE! There was a oversight in password-encrypting,
  which was fixed (this means that all passwords have
  to be reset with edit password once the -27 version
  is running)

1.0-26
------

- A isme() check was missing when checking if someone
  altered chanmodes (would cause oer to begin setting
  chanmodes and never stop)
- oer should now compile & run on NetBSD (1.2G tested)
- I have written 3 scripts for managing oer's seen/last
  log files: checklog.pl, fixlog.pl and logstrip.pl (the
  scripts are in the tools sub-directory)
- Made some informative messages less verbose
- Added banvars (just like floodvars, see help for details)
- Changed list channels to display channel key if one is set
- chanflags are now alphabetically sorted in list chanflags
- Made showing of the server idle percentage in the uptime
  command optional (define OER_UPTIME_SHOW_IDLE in
  oer-common.h if you wish it to be shown)

1.0-25
------

- Normal users couldn't use non-channel specific list
  commands with /msg (also /msg save & /msg flush
  suffered from this oversight)
- Improved system/environment checks in configure.in
- oer should now compile & run on IRIX (6.5 tested)

1.0-24
------

- First public release
