1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
unsigned short calcul_du_checksum_icmp(bool liberation, struct icmp icmp_tampon,char data_tampon[65535])
{
char tampon[65535];
unsigned short checksum;
// ********************************************************
// Initialisation du checksum
// ********************************************************
icmp_tampon.checksum=0; // Doit être à 0 pour le calcul
// ********************************************************
// Calcul du ICMP
// ********************************************************
memcpy(tampon,(unsigned short *)&icmp_tampon,sizeof(struct icmp));
memcpy(tampon+sizeof(struct icmp),data_tampon,strlen(data_tampon));
checksum=calcul_du_checksum(liberation,(unsigned short*)tampon,sizeof(struct icmp)+strlen(data_tampon));
return(checksum);
} |
Partager