Lire un packet DNS (un champ de long. variable) dans une structure ?

Lire un packet DNS (un champ de long. variable) dans une structure ? - C - Programmation

Marsh Posté le 13-12-2014 à 13:32:21    

Hello,
 
EN programmation reseaux je bute serieusement sur un probleme.
 
Jusqu'ici, la manipulation de paquets IP, TCP, se passait bien parce que tous les champs de ces formats ont une longeur fixe et les paquets recus ("packet" ci-dessous) se "rangent" donc parfaitement dans les structures avec ce genre d'operations:
 

Code :
  1. ip = (struct paq_ip*) (packet);
  2. ...
  3. udp = (struct paq_udp*) (packet+size_ip);


 
Par contre pour DNS j'ai un gros probleme... un des champs est une string, de longueur variable, donc je ne vois pas trop comment definir ma structure paq_dns.
 

Code :
  1. struct paq_dns {
  2.   //des champs et flags du header
  3.   char* str;  //un champ de longueur variable et imprevisible
  4.   // d'autres champs du format standard d'un paquet DNS
  5.   };


 
Des pistes ?


Message édité par doublebeurre le 13-12-2014 à 13:33:11
Reply

Marsh Posté le 13-12-2014 à 13:32:21   

Reply

Marsh Posté le 13-12-2014 à 16:22:07    

Ben sauf erreur, un des champs qui précède te donne la taille des données de taille variable, tu récupère cette taille et tu fais une allocation dynamique, non?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

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