lumi-practica-xarxes-udg/nodelumi2/MIp2-lumi.h

73 lines
3.0 KiB
C
Executable File

/**************************************************************************/
/* */
/* P2 - MI amb sockets TCP/IP - Part II */
/* Fitxer capçalera de lumi.c */
/* */
/* Autors: Marc Cané Salamià, Enric Rodríguez Galán */
/* */
/**************************************************************************/
#define UDP_PORT 7189
#define IP_LENGTH 16
#define MAX_USER_NICK 20
#define MAX_MISSATGE_PLUMI 150
#define MAX_LEN_DOMINI 100
#define MAX_PORT 65535
#define INTENTS 5
#define MAX_NOM_FITXER 100
#define NOM_FITXER_NODE "MIp2-nodelumi-"
#define NOM_FITXER_CONFIG "MIp2-nodelumi.cfg"
#define NOM_FITXER_AGENT "MIp2-agelumi-"
#define EXT_FITXER_LOG ".log"
/* Declaració de funcions externes de lumi.c, és a dir, d'aquelles que es */
/* faran servir en un altre fitxer extern, p.e., MIp2-p2p.c, */
/* MIp2-nodelumi.c, o MIp2-agelumic.c. El fitxer extern farà un #include */
/* del fitxer .h a l'inici, i així les funcions seran conegudes en ell. */
/* En termes de capes de l'aplicació, aquest conjunt de funcions externes */
/* formen la interfície de la capa LUMI. */
/* Les funcions externes les heu de dissenyar vosaltres... */
//int LUMI_FuncioExterna(arg1, arg2...);
struct usuari;
int LUMI_Fitxer_Log;
void LUMI_MostraError(const char *text);
int LUMI_ComprovarFormat(const char * buffer);
int LUMI_DescodificarAdreca(const char * adr, char * nickname, char * domini);
int LUMI_ResolNomFitxerLog(char tipus, char * fitxer_log, const char * buffer);
int LUMI_RepLiniaDe(int Sck, char * IPrem, int * portUDP, char * buffer, int mida_buffer);
int LUMI_EnviaFiable(int Sck, const char * Missatge, char * resposta, int timeout);
int LUMI_EnviaLiniaA(int Sck, const char * IP, int portUDPrem, const char * buffer);
int LUMI_EnviaPeticioRegistre(int Sck, char * adrLUMI);
int LUMI_EnviaPeticioDesregistre(int Sck);
int LUMI_EnviaResposta(int Sck, char tipus, const char * adrLUMI, const char * IP, int portUDPrem);
int LUMI_EnviaPeticioLocalitzacio(int Sck, const char * adrLUMIloc, const char * adrLUMIrem, char * IPlocalitzat, int * portTCP);
int LUMI_EnviaPeticioServeiLocalitzacio(int Sck, const char * adrLUMI, const char * IP, int portUDPrem);
int LUMI_EnviaRespostaServeiLocalitzacio(int Sck, const char * adrLUMI, const char * IP, int portTCPrem);
int LUMI_DescodificarMissatge(char tipus, const char * Missatge, char * adreca, char * domini, char * nom_usuari);
int LUMI_InicialitzarNode(const char * fitxer_log);
int LUMI_InicialitzarAgent(const char * IP, int portUDP, int * fitxer_log, const char * adrLUMI, char * IPnode);
int HaArribatAlgunaCosaEnTemps(const int *LlistaSck, int LongLlistaSck, int Temps);
int ResolDNSaIP(const char *NomDNS, char *IP);
int LUMI_Desconnecta(int Sck);