Ciao a tutti, sono in fase di test del mio progetto e ho trovato un errore veramente strano. Facendo il debug mi sono accorto che la funzione che crea una socket fallisce sempre. In particolare le chiamate a bind() e listen() restituiscono sempre -1, nonostante tutti gli argomenti siano corretti! Vi incollo un po di codice:
codice:
int creaSock(char* path){
struct sockaddr_un sad;
int mySocket, len;
//controlli sul path tutti corretti.
mySocket = socket(AF_UNIX, SOCK_STREAM, 0);
if(mySocket < 0) return -1;
sad.sun_family = AF_UNIX;
strncpy(sad.sun_path, path, strlen(path));
len = sizeof(sad);
//tutte e due le funzioni falliscono, ho provato a dividere questo if mettendo prima la listen e poi bind, //stesso risultato
if ( (bind(mySocket, (struct sockaddr *)&sad, len) < 0) || (listen(mySocket, SOMAXCONN))<0){
return -1;
}
return mySocket;
}
Spero possiate darmi una mano! Vi ringrazio!