                Laurent Constantin's network library (lcrzo)

                      --------------------------------
                      |           TODO LIST          |
                      --------------------------------

++ Next version

 * [nothing]


++ Future Versions

 * Following functions should be rewritten (they are too complicated
   for stdin dealing) :
    lcrzo_priv_wait_fd_wait
    lcrzo_priv_wait_fd_read
    lcrzo_file_flush
    lcrzo_stream_flush
    lcrzo_stdin_char
    lcrzo_stdin_press
    lcrzo_priv_stdin
    lcrzo_priv_passwd
   Moreover, we should support when stdin is not a valid console.


++ Far future versions

 * When LCRZO_DEBUG_MEM_CORRUPT is set, we only support unaligned 
   pointers (so older Solaris and Tru64 Unix does not work).

 * Port to other environments : NetBSD, HP-UX, AIX, etc.

 * Use lcrzo_conf_set_sysrenew_allow to block system update when
   a function is doing a loop. For example :
      lcrzo_er(lcrzo_conf_devices_count(&count));
      lcrzo_er(lcrzo_conf_get_sysrenew_allow(&old));
      lcrzo_er(lcrzo_conf_set_sysrenew_allow(LCRZO_FALSE));
      for ( i=1 ; i<=count ; i++ )
      { lcrzo_er(lcrzo_conf_devices_value_pos(i, ...));
      }
      lcrzo_er(lcrzo_conf_set_sysrenew_allow(old));

 * Functions to create TCP options.

 * Create lcrzo_list_remove_duplicate_partial(..., startpos, truestart,
   endpos, ...). The list has not duplicates between startpos and truestart.
   Create lcrzo_list_sort_partial(..., startpos, truestart, endpos, ...).
   We suppose that the list is sorted between startpos and truestart.


++ Version 5.00

 * Currently lcrzo works for Ethernet cards. Support could be added for :
    - PLIP/SLIP
    - FDDI (I do not have such cards)
    - Token Ring (I do not have such cards)
    - etc.

 * Dial-in modems are not supported under Windows.

 * Modem support does not correctly work on Windows NT/2k (problem
   explained in WinPCAP FAQ). An alternative solution should be provided
   using Microsoft's sniffing functionalities (Network Monitor).

 * Create those functions :
    - lcrzo_sock_tcpser_virtmulti
    - lcrzo_sock_tcpser_virtoipmulti

 * Homogenize lcrzo_file_xxx and lcrzo_record_xxx functions (parameter
   order).

 * lcrzo_hdrlarp.prot_src is an lcrzo_ipa instead of lcrzo_ipl.

 * replace defines like LCRZO_PRINTTYPE_xxx by an enum. It allows to 
   obtain the symbol in debugging mode (because it is stored in the
   symbol table, and a define is not).

 * lcrzo_err_get(err, &string) to obtain the string corresponding
   to an error.

 * lcrzo_data_print_get(, &string) to obtain the string corresponding
   to formatted data.

 * provide new sniffing functions giving timestamp and raw sniffed
   data.

 * add 2 functions to set/get promiscuous bit on the device.

 * Create two lcrzo_list modules :
    - to store items fully stored in the allocated space
    - to store items containing an outsize pointer : so we need
      a removing_function and a duplicating_function. Then, we can also
      have : lcrzo_list_add_pos(..., lcrzo_bool addacopy, ...) to add
      the item or a duplicate of the item.
   Then, create lcrzo_list_insert_list, lcrzo_list_extract_list,
   lcrzo_list_copy_list, lcrzo_list_copy_criteria_list, etc.


 * Analyze IPv6.

