
***INDICE Liblupin 0.1.2 alpha***

*Cos'e' la libreria lupin
*Tipi di funzioni
*Installazione e utilizzo
*Documentazione
*Contatti

***Cos'e' la libreria Lupin***

Lupin e' una libreria per linux scritta in c che implementa funzioni utili per le comunicazioni 
nell'ambito delle network sia astraendo le funzioni di routine utilizzate per la gestione delle socket,
buffer,stringhe,indirizzi ip,mac address etc.. in funzioni piu'complesse che servono a rendere
semplice l'implementazione dei tools di comunicazione senza conoscere le strutture interne
utilizzate da queste funzioni, sia nell'implementazione di funzioni che effettuano delle operazioni
piu' complesse come l'invio di un determinato messaggio ad un server.  
La libreria utilizza un modello di programmazione "evolutivo" in modo da rendere semplice all'autore 
l'evoluzione della libreria in base alle proprie esigenze.
Attenzione!!! questa libreria e' stata creata solo a scopo scientifico e l'autore non si assume 
nessuna responsabilita' sull'utilizzo di questo strumento. 

***Tipi di funzioni***

Le funzioni della libreria sono di tre tipi:

1)funzioni di utilita': implementate per la gestione delle strutture primitive della libreria
(buffer, connessioni,output,stringhe etc.).
2)funzioni complesse:effettuano un'operazione complessa (ad esempio una comunicazione completa 
con un server).
3)funzioni thread:effettuano un'operazione a ciclo infinito e sono state scritte in modo da essere 
utilizzate tramite dei thread in maniera semplice. Le funzioni thread sono implementate a gruppi di quattro:
*Funzione init (void *l_{nome}_init(args)): questa funzione crea la struttura dati e inizializza l'input. 
 Restituisce un puntatore da passare alla funzione err ed exec come argomento;
*Funzione err (l_bool l_{nome}_err(void *)): questa funzione puo' essere chiamata dopo la init e prima
 di creare un thread con exec per verificare che non ci sia stato un errore nell'esecuzione di init;
*Funzione exec(void *l_{nome}_exec(void *)): questa funzione esegue un'operazione a ciclo infinito. 
 Per usare piu' funzioni di questo tipo contemporaneamente si consiglia di utilizzare i thread vista 
 la predisposizione della funzione exec.
*Funzione close(l_out *l_{nome}_close(void **)): serve a concludere la funzione e ritorna l'output. 
 Questa funzione viene utilizzata tramite dei signal alla chiusura del programma,per ricevere l'output 
 alla terminazione della funzione exec. Libera anche tutte le strutture allocate.

***Installazione ed utilizzo***

DIPENDENZE
 *glib-2.0
 *libpcap
 *libcrypto(pacchetto openssl)
 *libsqlite3

INSTALLAZIONE
 * tar -xvzf liblupin-0.1.2.tar.gz
 * cd liblupin-0.1.2
 * ./configure
 * make
 * make install(root)
 * ldconfig(root)

RIMOZIONE
 * make uninstall(root)
 * ldconfig(root)
 * make clean

COMPILAZIONE
 * gcc -llupin -o file file.c

HEADER
 * #include <lupin/lupin.h >

***Documentazione***

La documentazione puo' essere create tramite doxygen posizionandosi nella cartella liblupin-0.1.2
e digitando doxygen liblupindoxy.conf. La documentazione e' creata in formato html nella 
sottodirectory di liblupin-0.1.2/doc/html.

***Contatti***

Home Page:http://www.ragnu.it
mail : vasta@ragnu.it


