WSAStringToAddress() ne fonctionne pas??

WSAStringToAddress() ne fonctionne pas?? - API Win32 - Programmation

Marsh Posté le 27-06-2008 à 16:50:25    

Pour un projet, je dois modifier un player video pour qu'il supporte IPv6.
Je cherche à convertir une adresse IPv6 sous forme de char[] en une adresse compréhensible par le système. La fonction inet_pton n'existant malheureusement pas sur l'API windows, la fonction WSAStringToAddress() semble faire à peu près la même chose. Néanmoins, lorsque j'exécute mon code, l'erreur 10022 "WSAEINVAL"....
 
Voici mon code (abrégé) :
 

Code :
  1. void main()
  2. {
  3. struct sockaddr_in6 addr_6;
  4. int addr_6_size = sizeof(addr_6);
  5. if (AddressTypeIPV6 == variable->addressType) //Si l'adresse contenue dans le fichier est une adresse IPv6...
  6. {
  7. WSAStringToAddress(variable->addressStr, AF_INET6, NULL, (struct sockaddr_in*)&addr_6, &addr_6_size);
  8. printf("Erreur: %d\n", WSAGetLastError());
  9. }
  10. }


 
Pour info adressStr est un char[128].
En debug, quand je trace la variable addr_6, je n'ai rien de correct dans la structure  :
 

Code :
  1. sin_family 0xcccc short
  2.   S_addr 0xcccccccc unsigned long


 
 
Je ne comprend pas pourquoi le champ S_addr de ma structure in6_addr de sockaddr_in6 est un long (32 bit) alors que ça semble trop petit pour contenir une adresse IPv6...mon cast serait-il incorrect?
Quelqu'un voit t-il pourquoi mon char n'est pas bien converti en addresse?
 
    Merci d'avance!
 
 
 

Reply

Marsh Posté le 27-06-2008 à 16:50:25   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed