diff --git a/libowlps/libowlps.c b/libowlps/libowlps.c index 143e5ad..779f1c8 100644 --- a/libowlps/libowlps.c +++ b/libowlps/libowlps.c @@ -229,7 +229,7 @@ owl_timestamp owl_ntoh_timestamp(owl_timestamp date) owl_bool owl_mac_equals(uint8_t *mac1, uint8_t *mac2) { int i ; - for(i=0 ; i < 6 ; i++) + for (i = 0 ; i < ETHER_ADDR_LEN ; ++i) if(mac1[i] != mac2[i]) return FALSE ; return TRUE ; diff --git a/libowlps/owlps.h b/libowlps/owlps.h index ac2245f..14a1db1 100644 --- a/libowlps/owlps.h +++ b/libowlps/owlps.h @@ -78,8 +78,8 @@ typedef struct _owl_timestamp /* Message sent by the listener to the aggregator */ typedef struct _owl_captured_request { - uint8_t ap_mac_addr_bytes[6] ; // MAC of the listener - uint8_t mobile_mac_addr_bytes[6] ; // MAC of the mobile involved + uint8_t ap_mac_addr_bytes[ETHER_ADDR_LEN] ; // MAC of the listener + uint8_t mobile_mac_addr_bytes[ETHER_ADDR_LEN] ; // MAC of the mobile uint8_t mobile_ip_addr_bytes[4] ; // IP of the mobile owl_timestamp request_time ; // Request ID (timestamp on the mobile) owl_timestamp start_time ; // Timestamp of arrival on the listener @@ -96,7 +96,7 @@ typedef struct _owl_captured_request * the main data of a request */ typedef struct _owl_request { - uint8_t mobile_mac_addr_bytes[6] ; // MAC of the mobile + uint8_t mobile_mac_addr_bytes[ETHER_ADDR_LEN] ; // MAC of the mobile owl_timestamp request_time ; // Request ID (timestamp on the mobile) uint16_t nb_info ; // Number of (listener MAC;signal strength) couples } owl_request ; @@ -107,7 +107,7 @@ typedef struct _owl_request * signal strength */ typedef struct _owl_request_info { - uint8_t ap_mac_addr_bytes[6] ; // MAC of the listener + uint8_t ap_mac_addr_bytes[ETHER_ADDR_LEN] ; // MAC of the listener uint8_t antenna_signal_dbm ; // Signal strength measured by the listener } owl_request_info ; @@ -115,7 +115,7 @@ typedef struct _owl_request_info /* Hello message sent by the listener to the aggregator */ typedef struct _owl_autocalibration_hello { - uint8_t ap_mac_addr_bytes[6] ; + uint8_t ap_mac_addr_bytes[ETHER_ADDR_LEN] ; } owl_autocalibration_hello ; diff --git a/owlps-aggregator/owlps-aggregator.h b/owlps-aggregator/owlps-aggregator.h index 822ca71..69ab985 100644 --- a/owlps-aggregator/owlps-aggregator.h +++ b/owlps-aggregator/owlps-aggregator.h @@ -39,7 +39,7 @@ typedef struct _request_info_list { // MAC address of the data sender (in bytes): - uint8_t ap_mac_addr_bytes[6] ; + uint8_t ap_mac_addr_bytes[ETHER_ADDR_LEN] ; // Signal strength received by the AP from the mobile: uint8_t antenna_signal_dbm ; struct _request_info_list *next ; @@ -50,7 +50,8 @@ typedef struct _request_info_list typedef struct _request_list { /* Request identifier */ - uint8_t mobile_mac_addr_bytes[6] ; // Mobile MAC address (in bytes) + // Mobile MAC address (in bytes): + uint8_t mobile_mac_addr_bytes[ETHER_ADDR_LEN] ; owl_timestamp request_time ; // Request time on the mobile /* Calibration data */ @@ -71,7 +72,7 @@ typedef struct _request_list /* Linked list of the known APs */ typedef struct _ap_list { - uint8_t mac_addr_bytes[6] ; + uint8_t mac_addr_bytes[ETHER_ADDR_LEN] ; char ip_addr[INET_ADDRSTRLEN] ; owl_timestamp last_seen ; @@ -98,9 +99,10 @@ void print_request_info(request_info_list *info) ; #endif // DEBUG void* listen_for_aps(void *NULL_value) ; -void update_ap(uint8_t mac_addr_bytes[6], char ip_addr[INET_ADDRSTRLEN]) ; -ap_list* find_ap(uint8_t mac_addr_bytes[6]) ; -ap_list* add_ap_front(uint8_t mac_addr_bytes[6]) ; +void update_ap(uint8_t mac_addr_bytes[ETHER_ADDR_LEN], + char ip_addr[INET_ADDRSTRLEN]) ; +ap_list* find_ap(uint8_t mac_addr_bytes[ETHER_ADDR_LEN]) ; +ap_list* add_ap_front(uint8_t mac_addr_bytes[ETHER_ADDR_LEN]) ; void update_ap_ip_addr(ap_list *ap, char ip_addr[INET_ADDRSTRLEN]) ; void update_ap_seen(ap_list *ap) ; void push_ap(ap_list *ap) ; diff --git a/owlps-aggregator/owlps-aggregatord.c b/owlps-aggregator/owlps-aggregatord.c index 92e74cc..efd1fd7 100644 --- a/owlps-aggregator/owlps-aggregatord.c +++ b/owlps-aggregator/owlps-aggregatord.c @@ -567,7 +567,8 @@ void* monitor_requests(void *NULL_value) request_ptr->direction) ; memcpy(request.mobile_mac_addr_bytes, - request_ptr->mobile_mac_addr_bytes, 6) ; + request_ptr->mobile_mac_addr_bytes, + ETHER_ADDR_LEN) ; request.request_time = request_ptr->request_time ; request.nb_info = 0 ; @@ -592,7 +593,8 @@ void* monitor_requests(void *NULL_value) { // Send AP info to the localisation server memcpy(info.ap_mac_addr_bytes, - request_info_ptr->ap_mac_addr_bytes, 6) ; + request_info_ptr->ap_mac_addr_bytes, + ETHER_ADDR_LEN) ; info.antenna_signal_dbm = request_info_ptr->antenna_signal_dbm - 0x100 ; sendto(sockfd, &info, sizeof(info), @@ -675,7 +677,8 @@ void got_request(owl_captured_request request) /* Create a new request */ tmp_info = malloc(sizeof(request_info_list)) ; - memcpy(tmp_info->ap_mac_addr_bytes, request.ap_mac_addr_bytes, 6) ; + memcpy(tmp_info->ap_mac_addr_bytes, request.ap_mac_addr_bytes, + ETHER_ADDR_LEN) ; tmp_info->antenna_signal_dbm = request.antenna_signal_dbm ; tmp_info->next = NULL ; @@ -686,7 +689,7 @@ void got_request(owl_captured_request request) fprintf(stderr, "Creating request list.\n") ; tmp_request = malloc(sizeof(request_list)) ; // create it. memcpy(tmp_request->mobile_mac_addr_bytes, - request.mobile_mac_addr_bytes, 6) ; + request.mobile_mac_addr_bytes, ETHER_ADDR_LEN) ; // Explicit packet: if (! owl_timestamp_is_null(request.request_time)) // Transmission time on the mobile: @@ -743,7 +746,7 @@ void got_request(owl_captured_request request) fprintf(stderr, "Create new request.\n") ; tmp_request = malloc(sizeof(request_list)) ; // create it memcpy(tmp_request->mobile_mac_addr_bytes, - request.mobile_mac_addr_bytes, 6) ; + request.mobile_mac_addr_bytes, ETHER_ADDR_LEN) ; // Explicit packet: if (! owl_timestamp_is_null(request.request_time)) // Transmission time on the mobile: @@ -867,7 +870,8 @@ void* listen_for_aps(void *NULL_value) * Updates the timestamp of the AP with the given MAC address if it is in * the AP list, or add a new AP with this MAC address to the AP list. */ -void update_ap(uint8_t mac_addr_bytes[6], char ip_addr[INET_ADDRSTRLEN]) +void update_ap(uint8_t mac_addr_bytes[ETHER_ADDR_LEN], + char ip_addr[INET_ADDRSTRLEN]) { ap_list *found ; @@ -886,7 +890,7 @@ void update_ap(uint8_t mac_addr_bytes[6], char ip_addr[INET_ADDRSTRLEN]) * Searches the AP list for an AP with the given MAC address and returns * it. */ -ap_list* find_ap(uint8_t mac_addr_bytes[6]) +ap_list* find_ap(uint8_t mac_addr_bytes[ETHER_ADDR_LEN]) { ap_list *found ; @@ -909,7 +913,7 @@ ap_list* find_ap(uint8_t mac_addr_bytes[6]) /* * Adds a new AP in front of the AP list. */ -ap_list* add_ap_front(uint8_t mac_addr_bytes[6]) +ap_list* add_ap_front(uint8_t mac_addr_bytes[ETHER_ADDR_LEN]) { #ifdef DEBUG char *mac_str = owl_mac_bytes_to_string(mac_addr_bytes) ; @@ -918,7 +922,7 @@ ap_list* add_ap_front(uint8_t mac_addr_bytes[6]) #endif // DEBUG ap_list *ap = malloc(sizeof(ap_list)) ; - memcpy(ap->mac_addr_bytes, mac_addr_bytes, 6) ; + memcpy(ap->mac_addr_bytes, mac_addr_bytes, ETHER_ADDR_LEN) ; update_ap_seen(ap) ; push_ap(ap) ; return ap ; diff --git a/owlps-listener/owlps-listener.h b/owlps-listener/owlps-listener.h index c6e31f4..9d53fe2 100644 --- a/owlps-listener/owlps-listener.h +++ b/owlps-listener/owlps-listener.h @@ -87,7 +87,7 @@ void* keep_mode_monitor(void *iface) ; int capture(void) ; void read_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet) ; -void get_mac_addr(char *eth, uint8_t mac_bytes[6]) ; +void get_mac_addr(char *eth, uint8_t mac_bytes[ETHER_ADDR_LEN]) ; void get_ip_addr(char *eth, char *ip_bytes) ; #ifdef USE_PTHREAD diff --git a/owlps-listener/owlps-listenerd.c b/owlps-listener/owlps-listenerd.c index 1f891d4..a66e184 100644 --- a/owlps-listener/owlps-listenerd.c +++ b/owlps-listener/owlps-listenerd.c @@ -8,7 +8,7 @@ char *program_name = NULL ; -uint8_t my_mac_bytes[6] ; // AP MAC address +uint8_t my_mac_bytes[ETHER_ADDR_LEN] ; // AP MAC address char my_ip[INET_ADDRSTRLEN] ; // AP IP address pcap_t *capture_handler = NULL ; // Packet capture descriptor @@ -729,13 +729,15 @@ void read_packet(u_char *args, const struct pcap_pkthdr *header, #endif // DEBUG // Source MAC address is 10 bytes after the 802.11 packet type: - memcpy(request.mobile_mac_addr_bytes, &packet[rtap_bytes+10], 6) ; + memcpy(request.mobile_mac_addr_bytes, &packet[rtap_bytes+10], + ETHER_ADDR_LEN) ; // Drop the packet if it comes from the AP itself: if (owl_mac_equals(my_mac_bytes, request.mobile_mac_addr_bytes)) return ; - memcpy(request.ap_mac_addr_bytes, my_mac_bytes, 6) ; // Copy AP MAC + // Copy AP MAC : + memcpy(request.ap_mac_addr_bytes, my_mac_bytes, ETHER_ADDR_LEN) ; // Capture time is in the pcap header (net-endian): request.start_time = owl_timeval_to_timestamp(header->ts) ; // Transmission time on the mobile is unknown (unless the packet is @@ -975,12 +977,13 @@ void read_packet(u_char *args, const struct pcap_pkthdr *header, /* * Get our own MAC address and copy it to 'mac_bytes'. */ -void get_mac_addr(char *eth, uint8_t mac_bytes[6]) +void get_mac_addr(char *eth, uint8_t mac_bytes[ETHER_ADDR_LEN]) { struct ifreq ifr; int sockfd ; - memset(mac_bytes, 0, sizeof(uint8_t) * 6) ; // Empty mac_bytes + // Empty mac_bytes: + memset(mac_bytes, 0, sizeof(uint8_t) * ETHER_ADDR_LEN) ; sockfd = socket(AF_INET, SOCK_DGRAM, 0) ; if(sockfd < 0) @@ -994,7 +997,7 @@ void get_mac_addr(char *eth, uint8_t mac_bytes[6]) if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) < 0) return ; - memcpy(mac_bytes, ifr.ifr_hwaddr.sa_data, 6) ; + memcpy(mac_bytes, ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN) ; } @@ -1046,7 +1049,7 @@ void* autocalibrate_hello(void *NULL_value) &serv, NULL) ; pthread_cleanup_push(&owl_close_fd, &send_sockfd) ; - memcpy(&message.ap_mac_addr_bytes, my_mac_bytes, 6) ; + memcpy(&message.ap_mac_addr_bytes, my_mac_bytes, ETHER_ADDR_LEN) ; while (run) {