Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > contrib > by-pkgid > 10b30098cf3ad5da9b56d5eb4c8ec6ae > files > 9

liblcrzo0-static-devel-4.16.0-2mdk.ppc.rpm

          Laurent Constantin's network library (lcrzo)
               -----------------------------------

                   ----------------------------
                   |   INTEGRATION OF LCRZO   |
                   ----------------------------

Lcrzo allows for easy creation of network programs. In order to
achieve this, it contains several high level functionalities, hiding some
actions.
However, when lcrzo is expected to be integrated in a complex program :
 - hidden functionalities might interfere with those wanted by the
   developer, or
 - access to low level ressources might by difficult if not impossible.


Here are some points to analyze before integrating lcrzo in a big program :

 - Lcrzo is conceived for text programs (console).
   Lcrzo can be used in graphical mode, but functions xxx_print, xxx_fprint,
   xxx_stdin and xxx_passwd will not work.
   Under Windows, programs using lcrzo.dll have to be compiled with the
   type "Win32 Console Application".

 - Events of kind sniff, spoof, etc. can only be accessed through the use
   of a lcrzo_wait (so functions select (Unix) or WaitForxxxObjects (Windows)
   cannot be used).
   Events from the program have to be converted to a lcrzo_wait by using
   functions lcrzo_wait_init_fd, lcrzo_wait_init_handle or
   lcrzo_wait_init_function.
   
 - Under Unix, when user presses Control-C or kills a process, all its
   childs (created by lcrzo_process_init) are killed by lcrzo.
   Developers have to use fork and deal with the process if this
   behavior does not feet their needs.

 - Under Unix, signal handlers for SIGINT and SIGTERM are set by
   lcrzo_init (they are needed to deal with Control-C or kills as
   presented in the previous point). Developers have to use
   lcrzo_unix_signalhandler_set to set their handlers for SIGINT and
   SIGTERM.

 - Under Unix, file descriptors do not have the flag "close on exec".
   Developers might want to set it on concerned descriptors before
   calling a sensitive external program.


Do not hesitate to ask me questions about integration of particular
programs.