  Installation procedure for Laurent Constantin's network library (lcrzo)
              -----------------------------------

                    ------------------------
                    |        LIBPCAP       |
                    ------------------------

Functionalities of network sniffing are quite wide, so I decided 
to use libpcap library.
If you want to be able to sniff network, you have to install
libpcap. Libpcap can be found :
 - ftp://ftp.ee.lbl.gov/libpcap.tar.Z
 - http://www.tcpdump.org/
 - as a package for your system (look the cdrom or website
   of your distribution)
Otherwise, you do not need to install libpcap, and you have to edit
./config.dat to specify "LCRZODEF_LIBPCAPINSTALLED=0".


                    ------------------------
                    |    TESTED SYSTEMS    |
                    ------------------------

lcrzo was succesfully installed on :
  SystemName         Platform     ParameterToUseIn_config.dat
   Debian 2.1        Intel386      LCRZODEF_SYS=Linux_X_i386
   Mandrake 7.0      Intel386      LCRZODEF_SYS=Linux_X_i386
   RedHat 5.0        Intel386      LCRZODEF_SYS=Linux_X_i386
   RedHat 5.2        Intel386      LCRZODEF_SYS=Linux_X_i386
   RedHat 6.1        Intel386      LCRZODEF_SYS=Linux_X_i386
   Slackware 3.4     Intel386      LCRZODEF_SYS=Linux_X_i386
   SuSE 5.1          Intel386      LCRZODEF_SYS=Linux_X_i386
   SuSE 6.4          Intel386      LCRZODEF_SYS=Linux_X_i386
   FreeBSD 3.1       Intel386      LCRZODEF_SYS=FreeBSD_3_i386
   FreeBSD 4.0       Intel386      LCRZODEF_SYS=FreeBSD_4_i386
   Solaris 2.5       Sparc         LCRZODEF_SYS=Solaris_25_Sparc
   Solaris 2.6       Sparc         LCRZODEF_SYS=Solaris_26_Sparc
   Solaris 2.7       Intel386      LCRZODEF_SYS=Solaris_27_i386

lcrzo was extensively tested on :
  SystemName         Platform
   RedHat 5.2        Intel386  


                 -------------------------------
                 |  HOW TO INSTALL LIBLCRZO.A  |
                 -------------------------------

 - "vi ./config.dat" (to define variables specific to your system.
                      The predifined variables should be correct for
                      Linux because "LCRZODEF_SYS=Linux_X_i386" is
                      defined)
 - "./genemake"      (generate the files Makefile and lcrzo_defs.h)
 - "make"            (compile the library)
 - "make install"    (install the library. This is not compulsory,
                      but it's easier to developp your own programs :
                      include files and liblcrzo.a are copied in standard
                      directories and the manpage is installed)


                   -----------------------------
                   |  HOW TO INSTALL LCRZOEX   |
                   -----------------------------

 - "cd ../lcrzoex"   (to go in examples directory)
 - "make"            (to compile the example)
 - "make install"    (if you want to install the example)


     ----------------------------------------------------------
     |    PROBLEMS YOU MIGHT ENCOUNTER DURING INSTALLATION    |
     ----------------------------------------------------------

 WHILE EXECUTING ./genemake :
  + "Error: the xx directory /usr/.../toto doesn't exists"
    -> The directory named 'toto' does not exist on your system.
       You have to :
         - create it : mkdir toto
         - or edit ./genemake to specifiy a new installation
           directory 
       
  +  "Warning: you are on a computed with a bad ether_hostton.
               The library lcrzo will still be usable, but read
               ../doc/knownproblems_us.txt if you want to use the file
               /etc/ethers."
    -> This warning can be ignored if you want.
    -> You should edit /etc/nsswitch.conf as indicated in the file
       ../doc/knownproblems_us.txt


 WHILE COMPILING :

  + "File pcap.h not found"
    -> Verify that libpcap is installed on your system.
       For example, for Debian, you have to install libpcapxx.deb
       (for the dynamic library) and libpcap-devxx.deb (for pcap.h).
    -> On RedHat 5.0, 5.2 and 6.1, the rpm "libpcap-0.4....i386.rpm"
       installs the files under "/usr/include/pcap" instead of 
       "/usr/include". So, you can copy them :
           cp -R /usr/include/pcap/* /usr/include/

  + "Warning : integer constant is unsigned in ANSI C, signed
    with -traditional" under FreeBSD 3.1, FreeBSD 4.0, 
    Solaris 2.7 intel and Solaris 2.5 Sparc
    -> This error is in the definition of SIOCGIFCONF
       You should edit /usr/include/sys/ioccom.h to correct IOC_IN :
           "#define IOC_IN 0x80000000u" instead of
           "#define IOC_IN 0x80000000"

  + "Warning: implicit declaration of function `ether_hostton'"
  + "Warning: implicit declaration of function `ether_ntohost'"
     under Solaris 2.7 intel and Solaris 2.5 Sparc
    -> The functions "ether_hostton" and "ether_ntohost" are never
       defined. You shoud edit "netinet/if_ether.h" to add :
        int ether_hostton(char *hostname, struct ether_addr *e);
        int ether_ntohost(char *hostname, struct ether_addr *e);

  + With libnet : "/usr/include/./libnet/libnet-functions.h:
    193: warning: declaration of `sin' shadows global declaration"
    -> You should edit line 193 of /usr/include/libnet/libnet-functions.h
       to rename the "sin" parameter to "sin_".


 WHILE LINKING :
  + No problem encountered.


 WHILE INSTALLING :
  + No problem encountered.
