Welcome to iroffer 0.1b32, by PMG (released September 9th 1999)

New versions are released every 2-6 weeks, make sure to get the latest

 --- Info ---

iroffer by PMG
Copyright (C) 1998-1999 PMG

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
or view it online at http://www.gnu.org/copyleft/gpl.html

 --- Website and Mailing List ---

Visit the iroffer web site http://centerclick.org/iroffer/

Have you joined the iroffer mailing list? see the web site

 --- How to Contact the Author ---

EFNet: PMG
ICQ: 18607714 (I don't like ICQ so don't use it unless you have to)
email: pmg@macfilez.org

 --- What is iroffer? ---

iroffer is a fileserver for irc (commonly referred to as a DCC bot).
It uses the DCC feature or irc to send files to other users. iroffer
will connect to an irc server and let people request files from it.
iroffer is not a script, it is a standalone executable written in c.


 --- Supported Platforms ---

Linux 2.0.x, 2.1.x, 2.2.x (ix86, PPC, Sparc, Alpha)
FreeBSD, OpenBSD, BSD/OS (Later versions haven't been tested though)
Solaris (not fully tested and debugged yet, 5.6 or later)

All other platforms have not been tested, and will probabily not work


 --- Help out the effort ---

I currently only have access a limited number of boxes at the
moment. If you can offer me a permanent or semi-permanent shell
for development and testing of iroffer only, please let me know.
A list of OS/Platforms needed are on the website. (no cracked
shells please)


 --- To Compile ---

Run the "Configure" script by typing "./Configure"
then type "make".
no errors or warnings should appear when compiling

A sameple config file is provided.


 --- Testing ---

iroffer has been tested on the following computers:

Linux:
 Redhat 4.2, g++ 2.7.2.1, linux 2.0.3x, libc5
 Redhat 5.0, g++ 2.7.2.3, linux 2.0.3x, glibc
 Redhat 5.1, g++ 2.7.2.3, linux 2.0.3x, glibc
 Redhat 5.2, egcs-2.90.27, linux 2.0.3x, glibc
 Redhat 6.0, ??, ??, glibc
 Slackware ??, g++ 2.7.2.3, linux 2.0.3x, libc5
 LinuxPPC 4.0
 Others...

FreeBSD:
 FreeBSD 2.1.5, g++ 2.7.2.1
 FreeBSD 3.1, g++ 2.7.2.1

Solaris
 5.6, g++ 2.7.2.1

 --- Why use iroffer to offer? ---

 - extremely fast dcc transfers
 - extremely low cpu usage, and reasonable ram usage
 - its a program not a script that is slowed by a bulky irc program
 - only completed transfers are counted
 - supports dcc resume
 - set max amount of transfers per hostname
 - user friendly error messages for users (no "clamp timeout")
 - allows a pack to be designated as a "high demand" pack which can
     have special limitations and its own separate queue
 - supports virtual hosts
 - auto-send feature, send a pack to someone when they say something
 - auto-saves xdcc information
 - remote administration via /msg or DCC CHAT
 - bandwidth monitoring, shows last 2 minutes bandwidth average
 - Allow sending of queued packs when using low amounts of bandwidth,
     comes in handy when all slots are filled with people transferring
     1k/sec, will keep sending out queued items while bandwidth usage
     is under a specified amount
 - Background or Foreground mode. background mode does not require
     screen and is cronable
 - overall and pack minspeed
 - maximum bandwidth limiting, when set, iroffer will not use more than
     the set amount of bandwidth (keeps your sysadmin happy)
 - can set different maximum bandwidth limits depending on time of day
     and day of week (keeps your sysadmin very happy) 
 - logging
 - auto-ignores flooders

 --- How to let colors work while using screen ---

create a file in your home directory named ".screenrc", and put the
following lines in it:

termcap  vt100 'AF=\E[3%dm:AB=\E[4%dm'
terminfo vt100 'AF=\E[3%p1%dm:AB=\E[4%p1%dm'


 --- y2k and UTC1Billion compliance ---

Is iroffer y2k ready?
The iroffer code is completely y2k ready.

However, iroffer relies on the OS's system libraries for all date
and time related information. If these system libraries are not y2k
compliant, iroffer may not function correctly (along with the rest of
your programs).

Due to the wide range of systems that iroffer can run on it is hard
to tell if every system library will function correctly. If you are
concerned you should contact your OS provider for more information. 

Is iroffer UTC1Billion ready?
What is UTC1Billion ready? UTC refers to the number of seconds since
1/1/70 which is the standard way all UNIX systems count time.

On Sep 8th 2001 at 9:46:40 PM EDT this number will reach 1 billion.
While this means little in the base 2 world, when a UTC is printed
in the base 10 world, it will require 10 characters, not 9 as it
does now.

Many programs store dates in files by printing out the UTC in base 10
and do not include a leading 0 before the 9 digit number. As soon as
a program tries to store a 10 digit UTC it may start corrupting the
file.

iroffer, when printing a UTC in base 10, always does so with all 10
characters. 

How iroffer uses dates and times
The majority of uses that iroffer has for the time is simply by using
the time() system call to get the number of seconds since 1/1/70
(UTC). iroffer will use this along with previous calls to time() and
calculate a difference to get how much time has passes since some
event occurred.

iroffer also uses the system calls localtime() and strftime() to make
decisions on time of day, or for formatting output. 

 --- How To Use Cron ---

Edit the iroffer.cron file's iroffer_dir, iroffer_exec, and
iroffer_pid variables

then crontab -e and place the following line in the editor

*/5 * * * * /full/path/to/iroffer/iroffer.cron

 --- Signal Handling ---

iroffer will handle the following signal:

SIGUSR1 (kill -USR1 xxxx)  jumps to another server (same as admin command "server")
SIGUSR2 (kill -USR2 xxxx)  re-reads config file    (same as admin command "rehash")
SIGTERM (kill xxxx)        shuts down iroffer      (same as admin command "shutdown")

 --- Status Line ---

The status line (admin command status) and other places has the format:

Stat: 0/6 Sls, 0/10,0/10 Q, 322.0K/s Rcd, 0 SrQ (Bdw: 0K, 0.0K/s, 482.0K/s Rcd)
      A B      C D  E F     G             H           I   J       K

"/ctcp bot status" has a more compact format and includes more info:
stat 10 691 7856 473170 0 6 0 10 0 10 322.0 16 0 0.0 482.0
     W  X   Y    Z      A B C D  E F  G     H  I J   K

A = number of slots in use
B = total slots

C = number in main queue
D = size of main queue
E = number in pack queue
F = size of pack queue

G = pack speed record (K/sec)

H = number of lines in send to server queue

I = amount of data sent to network in past 120 seconds (K)
J = average bandwidth of past 120 seconds (K/sec)
K = record average bandwidth (K/sec)

W = number of packs offered
X = total size of offered packs (MB)
Y = total completed transfers 
Z = total snagged (MB)

 --- End of README ---

