[Listener] Endianess (beginning)
Last (uncommited) changes in the SVN repo (1/2): - Endianess in owlps-listener : use of le32toh(). /!\ *Not* sure it works ! /!\
This commit is contained in:
parent
1fb6e39d27
commit
f8ff9f6794
|
@ -24,6 +24,8 @@
|
|||
#include <pthread.h>
|
||||
#endif // USE_PTHREAD
|
||||
|
||||
#include <endian.h>
|
||||
|
||||
// Pour la fonction get_mac_addr() :
|
||||
#include <netinet/if_ether.h>
|
||||
#include <netinet/udp.h>
|
||||
|
|
|
@ -28,6 +28,7 @@ struct { // structure qui servira à stocker les options getopt
|
|||
MODE_ACTIVE,
|
||||
"127.0.0.1",
|
||||
AGGREGATE_DEFAULT_PORT,
|
||||
LOC_REQUEST_DEFAULT_PORT,
|
||||
#ifdef USE_PTHREAD
|
||||
FALSE,
|
||||
#endif // USE_PTHREAD
|
||||
|
@ -442,11 +443,15 @@ void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *p
|
|||
|
||||
/* Traitement de l'en-tête Radiotap */
|
||||
|
||||
// TODO : traiter le boutisme avec ntohs
|
||||
memcpy(&rtap_presentflags, &data[RTAP_P_PRESENTFLAGS], RTAP_L_PRESENTFLAGS); // Récupère les flags de l'en-tête rtap
|
||||
#ifdef PLATFORM_ATHEROS
|
||||
rtap_presentflags = ((rtap_presentflags & 0xff000000) >> 24) + ((rtap_presentflags & 0xff0000) >> 8) + ((rtap_presentflags & 0xff00) << 8) + ((rtap_presentflags & 0xff) << 24) ;
|
||||
#endif // PLATFORM_ATHEROS
|
||||
memcpy(&rtap_presentflags, &data[RTAP_P_PRESENTFLAGS], RTAP_L_PRESENTFLAGS) ; // Récupère les flags de l'en-tête rtap
|
||||
// Note : on récupère les flags en big-endian (net-endianess), mais on
|
||||
// travaille dessus comme si c'était du little-endian. Cela nous permet
|
||||
// de déclarer un tableau de seulement 15 bits (au lieu de 32) car ce
|
||||
// sont ces bits (de poids faible) qui nous intéressent. C'est un peu de
|
||||
// la triche :-)
|
||||
// Du coup, sur les architectures big-endian, il faut retourner les bits
|
||||
// en faisant comme si on avait récupéré les flags en little-endian :
|
||||
rtap_presentflags = le32toh(rtap_presentflags) ;
|
||||
|
||||
for (i = 0 ; i < 15 ; i++) // Initialisation de la structure des champs présents
|
||||
check[i] = FALSE ;
|
||||
|
|
Loading…
Reference in New Issue