/**************************************************************************/ /* */ /* 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);