diff options
Diffstat (limited to 'src/transport/plugin_transport_wlan.c')
-rw-r--r-- | src/transport/plugin_transport_wlan.c | 137 |
1 files changed, 75 insertions, 62 deletions
diff --git a/src/transport/plugin_transport_wlan.c b/src/transport/plugin_transport_wlan.c index b96414a71..245f0d795 100644 --- a/src/transport/plugin_transport_wlan.c +++ b/src/transport/plugin_transport_wlan.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "plugin_transport_wlan.h" | 34 | #include "plugin_transport_wlan.h" |
35 | #include "gnunet_common.h" | 35 | #include "gnunet_common.h" |
36 | #include "gnunet_crypto_lib.h" | 36 | #include "gnunet_crypto_lib.h" |
37 | #include "wlan/ieee80211.h" | ||
37 | 38 | ||
38 | #define PROTOCOL_PREFIX "wlan" | 39 | #define PROTOCOL_PREFIX "wlan" |
39 | 40 | ||
@@ -473,6 +474,11 @@ struct Session | |||
473 | 474 | ||
474 | int fragment_messages_in_count; | 475 | int fragment_messages_in_count; |
475 | 476 | ||
477 | //TODO DOXIGEN | ||
478 | uint8_t rate; | ||
479 | uint16_t tx_power; | ||
480 | uint8_t antenna; | ||
481 | |||
476 | }; | 482 | }; |
477 | 483 | ||
478 | /** | 484 | /** |
@@ -606,10 +612,11 @@ struct FragmentationAckHeader | |||
606 | }; | 612 | }; |
607 | 613 | ||
608 | int | 614 | int |
609 | getRadiotapHeader(struct RadiotapHeader * Header); | 615 | getRadiotapHeader(struct Plugin * plugin, struct Session * session, |
616 | struct Radiotap_Send * Header); | ||
610 | 617 | ||
611 | int | 618 | int |
612 | getWlanHeader(struct IeeeHeader * Header, const char * to_mac_addr, | 619 | getWlanHeader(struct ieee80211_frame * Header, const char * to_mac_addr, |
613 | struct Plugin * plugin); | 620 | struct Plugin * plugin); |
614 | 621 | ||
615 | static int | 622 | static int |
@@ -696,15 +703,15 @@ setBit(char *bitArray, unsigned int bitIdx) | |||
696 | * @param bitIdx which bit to unset | 703 | * @param bitIdx which bit to unset |
697 | */ | 704 | */ |
698 | /*static void | 705 | /*static void |
699 | clearBit(char *bitArray, unsigned int bitIdx) | 706 | clearBit(char *bitArray, unsigned int bitIdx) |
700 | { | 707 | { |
701 | size_t slot; | 708 | size_t slot; |
702 | unsigned int targetBit; | 709 | unsigned int targetBit; |
703 | 710 | ||
704 | slot = bitIdx / 8; | 711 | slot = bitIdx / 8; |
705 | targetBit = (1L << (bitIdx % 8)); | 712 | targetBit = (1L << (bitIdx % 8)); |
706 | bitArray[slot] = bitArray[slot] & (~targetBit); | 713 | bitArray[slot] = bitArray[slot] & (~targetBit); |
707 | }*/ | 714 | }*/ |
708 | 715 | ||
709 | /** | 716 | /** |
710 | * Checks if a bit is active in the bitArray | 717 | * Checks if a bit is active in the bitArray |
@@ -1012,12 +1019,14 @@ get_next_queue_Session(struct Plugin * plugin) | |||
1012 | session = sessionqueue->content; | 1019 | session = sessionqueue->content; |
1013 | 1020 | ||
1014 | pm = session->pending_message; | 1021 | pm = session->pending_message; |
1015 | if (pm == NULL){ | 1022 | if (pm == NULL) |
1023 | { | ||
1016 | #if DEBUG_wlan | 1024 | #if DEBUG_wlan |
1017 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, | 1025 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, |
1018 | "pending message is empty, should not happen. session %p\n", session); | 1026 | "pending message is empty, should not happen. session %p\n", |
1027 | session); | ||
1019 | #endif | 1028 | #endif |
1020 | } | 1029 | } |
1021 | GNUNET_assert(pm != NULL); | 1030 | GNUNET_assert(pm != NULL); |
1022 | 1031 | ||
1023 | //check for message timeout | 1032 | //check for message timeout |
@@ -1180,12 +1189,13 @@ check_fragment_queue(struct Plugin * plugin) | |||
1180 | } | 1189 | } |
1181 | GNUNET_free(pm); | 1190 | GNUNET_free(pm); |
1182 | 1191 | ||
1183 | if (session->pending_message2 != NULL){ | 1192 | if (session->pending_message2 != NULL) |
1184 | session->pending_message = session->pending_message2; | 1193 | { |
1185 | session->pending_message2 = NULL; | 1194 | session->pending_message = session->pending_message2; |
1186 | //requeue session | 1195 | session->pending_message2 = NULL; |
1187 | queue_Session(plugin, session); | 1196 | //requeue session |
1188 | } | 1197 | queue_Session(plugin, session); |
1198 | } | ||
1189 | 1199 | ||
1190 | //check if timeout changed | 1200 | //check if timeout changed |
1191 | check_next_fragment_timeout(plugin); | 1201 | check_next_fragment_timeout(plugin); |
@@ -1270,23 +1280,23 @@ send_hello_beacon(struct Plugin * plugin) | |||
1270 | uint16_t size = 0; | 1280 | uint16_t size = 0; |
1271 | ssize_t bytes; | 1281 | ssize_t bytes; |
1272 | struct GNUNET_MessageHeader * msgheader = NULL; | 1282 | struct GNUNET_MessageHeader * msgheader = NULL; |
1273 | struct IeeeHeader * ieeewlanheader = NULL; | 1283 | struct ieee80211_frame * ieeewlanheader = NULL; |
1274 | struct RadiotapHeader * radioHeader = NULL; | 1284 | struct Radiotap_Send * radioHeader = NULL; |
1275 | struct GNUNET_MessageHeader * msgheader2 = NULL; | 1285 | struct GNUNET_MessageHeader * msgheader2 = NULL; |
1276 | 1286 | ||
1277 | GNUNET_assert(sizeof(struct WlanHeader) + GNUNET_HELLO_size( | 1287 | GNUNET_assert(sizeof(struct WlanHeader) + GNUNET_HELLO_size( |
1278 | *(plugin->env->our_hello)) <= WLAN_MTU); | 1288 | *(plugin->env->our_hello)) <= WLAN_MTU); |
1279 | size = sizeof(struct GNUNET_MessageHeader) + sizeof(struct RadiotapHeader) | 1289 | size = sizeof(struct GNUNET_MessageHeader) + sizeof(struct Radiotap_Send) |
1280 | + sizeof(struct IeeeHeader) + sizeof(struct GNUNET_MessageHeader) | 1290 | + sizeof(struct ieee80211_frame) + sizeof(struct GNUNET_MessageHeader) |
1281 | + GNUNET_HELLO_size(*(plugin->env->our_hello)); | 1291 | + GNUNET_HELLO_size(*(plugin->env->our_hello)); |
1282 | 1292 | ||
1283 | msgheader = GNUNET_malloc(size); | 1293 | msgheader = GNUNET_malloc(size); |
1284 | msgheader->size = htons(size); | 1294 | msgheader->size = htons(size); |
1285 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); | 1295 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); |
1286 | 1296 | ||
1287 | radioHeader = (struct RadiotapHeader*) &msgheader[1]; | 1297 | radioHeader = (struct Radiotap_Send*) &msgheader[1]; |
1288 | getRadiotapHeader(radioHeader); | 1298 | getRadiotapHeader(plugin, NULL, radioHeader); |
1289 | ieeewlanheader = (struct IeeeHeader*) &radioHeader[1]; | 1299 | ieeewlanheader = (struct ieee80211_frame*) &radioHeader[1]; |
1290 | getWlanHeader(ieeewlanheader, bc_all_mac, plugin); | 1300 | getWlanHeader(ieeewlanheader, bc_all_mac, plugin); |
1291 | 1301 | ||
1292 | msgheader2 = (struct GNUNET_MessageHeader*) &ieeewlanheader[1]; | 1302 | msgheader2 = (struct GNUNET_MessageHeader*) &ieeewlanheader[1]; |
@@ -1321,8 +1331,8 @@ send_ack(struct Plugin * plugin, struct AckSendQueue * ack) | |||
1321 | uint16_t size = 0; | 1331 | uint16_t size = 0; |
1322 | ssize_t bytes; | 1332 | ssize_t bytes; |
1323 | struct GNUNET_MessageHeader * msgheader = NULL; | 1333 | struct GNUNET_MessageHeader * msgheader = NULL; |
1324 | struct IeeeHeader * ieeewlanheader = NULL; | 1334 | struct ieee80211_frame * ieeewlanheader = NULL; |
1325 | struct RadiotapHeader * radioHeader = NULL; | 1335 | struct Radiotap_Send * radioHeader = NULL; |
1326 | struct FragmentationAckHeader * msgheader2 = NULL; | 1336 | struct FragmentationAckHeader * msgheader2 = NULL; |
1327 | 1337 | ||
1328 | GNUNET_assert(sizeof(struct FragmentationAckHeader) <= WLAN_MTU); | 1338 | GNUNET_assert(sizeof(struct FragmentationAckHeader) <= WLAN_MTU); |
@@ -1333,15 +1343,15 @@ send_ack(struct Plugin * plugin, struct AckSendQueue * ack) | |||
1333 | ack->message_id, ack->fragments_field); | 1343 | ack->message_id, ack->fragments_field); |
1334 | #endif | 1344 | #endif |
1335 | 1345 | ||
1336 | size = sizeof(struct GNUNET_MessageHeader) + sizeof(struct RadiotapHeader) | 1346 | size = sizeof(struct GNUNET_MessageHeader) + sizeof(struct Radiotap_Send) |
1337 | + sizeof(struct IeeeHeader) + sizeof(struct FragmentationAckHeader); | 1347 | + sizeof(struct ieee80211_frame) + sizeof(struct FragmentationAckHeader); |
1338 | msgheader = GNUNET_malloc(size); | 1348 | msgheader = GNUNET_malloc(size); |
1339 | msgheader->size = htons(size); | 1349 | msgheader->size = htons(size); |
1340 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); | 1350 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); |
1341 | 1351 | ||
1342 | radioHeader = (struct RadiotapHeader*) &msgheader[1]; | 1352 | radioHeader = (struct Radiotap_Send*) &msgheader[1]; |
1343 | getRadiotapHeader(radioHeader); | 1353 | getRadiotapHeader(plugin, ack->session, radioHeader); |
1344 | ieeewlanheader = (struct IeeeHeader*) &radioHeader[1]; | 1354 | ieeewlanheader = (struct ieee80211_frame*) &radioHeader[1]; |
1345 | getWlanHeader(ieeewlanheader, ack->session->addr, plugin); | 1355 | getWlanHeader(ieeewlanheader, ack->session->addr, plugin); |
1346 | 1356 | ||
1347 | msgheader2 = (struct FragmentationAckHeader*) &ieeewlanheader[1]; | 1357 | msgheader2 = (struct FragmentationAckHeader*) &ieeewlanheader[1]; |
@@ -1383,8 +1393,8 @@ do_transmit(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
1383 | 1393 | ||
1384 | struct Session * session = NULL; | 1394 | struct Session * session = NULL; |
1385 | struct FragmentMessage * fm = NULL; | 1395 | struct FragmentMessage * fm = NULL; |
1386 | struct IeeeHeader * ieeewlanheader = NULL; | 1396 | struct ieee80211_frame * ieeewlanheader = NULL; |
1387 | struct RadiotapHeader * radioHeader = NULL; | 1397 | struct Radiotap_Send * radioHeader = NULL; |
1388 | struct GNUNET_MessageHeader * msgheader = NULL; | 1398 | struct GNUNET_MessageHeader * msgheader = NULL; |
1389 | 1399 | ||
1390 | struct FragmentationHeader fragheader; | 1400 | struct FragmentationHeader fragheader; |
@@ -1486,16 +1496,16 @@ do_transmit(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
1486 | }*/ | 1496 | }*/ |
1487 | 1497 | ||
1488 | size += copysize; | 1498 | size += copysize; |
1489 | size += sizeof(struct RadiotapHeader) + sizeof(struct IeeeHeader) | 1499 | size += sizeof(struct Radiotap_Send) + sizeof(struct ieee80211_frame) |
1490 | + sizeof(struct GNUNET_MessageHeader); | 1500 | + sizeof(struct GNUNET_MessageHeader); |
1491 | msgheader = GNUNET_malloc(size); | 1501 | msgheader = GNUNET_malloc(size); |
1492 | msgheader->size = htons(size); | 1502 | msgheader->size = htons(size); |
1493 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); | 1503 | msgheader->type = htons(GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA); |
1494 | 1504 | ||
1495 | radioHeader = (struct RadiotapHeader*) &msgheader[1]; | 1505 | radioHeader = (struct Radiotap_Send*) &msgheader[1]; |
1496 | getRadiotapHeader(radioHeader); | 1506 | getRadiotapHeader(plugin, session, radioHeader); |
1497 | 1507 | ||
1498 | ieeewlanheader = (struct IeeeHeader *) &radioHeader[1]; | 1508 | ieeewlanheader = (struct ieee80211_frame *) &radioHeader[1]; |
1499 | getWlanHeader(ieeewlanheader, fm->session->addr, plugin); | 1509 | getWlanHeader(ieeewlanheader, fm->session->addr, plugin); |
1500 | 1510 | ||
1501 | //could be faster if content is just send and not copyed before | 1511 | //could be faster if content is just send and not copyed before |
@@ -1607,8 +1617,13 @@ finish_sending(void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
1607 | } | 1617 | } |
1608 | 1618 | ||
1609 | int | 1619 | int |
1610 | getRadiotapHeader(struct RadiotapHeader * Header) | 1620 | getRadiotapHeader(struct Plugin * plugin, struct Session * session, |
1621 | struct Radiotap_Send * header) | ||
1611 | { | 1622 | { |
1623 | |||
1624 | header->rate = session->rate; | ||
1625 | header->tx_power = session->tx_power; | ||
1626 | header->antenna = session->antenna; | ||
1612 | return GNUNET_YES; | 1627 | return GNUNET_YES; |
1613 | } | 1628 | } |
1614 | ; | 1629 | ; |
@@ -1622,12 +1637,12 @@ getRadiotapHeader(struct RadiotapHeader * Header) | |||
1622 | */ | 1637 | */ |
1623 | 1638 | ||
1624 | int | 1639 | int |
1625 | getWlanHeader(struct IeeeHeader * Header, const char * const to_mac_addr, | 1640 | getWlanHeader(struct ieee80211_frame * Header, const char * const to_mac_addr, |
1626 | struct Plugin * plugin) | 1641 | struct Plugin * plugin) |
1627 | { | 1642 | { |
1628 | memcpy(&Header->mac3, mac_bssid, sizeof(mac_bssid)); | 1643 | memcpy(&Header->i_addr3, mac_bssid, sizeof(mac_bssid)); |
1629 | memcpy(&Header->mac2, plugin->mac_address.mac, sizeof(plugin->mac_address)); | 1644 | memcpy(&Header->i_addr2, plugin->mac_address.mac, sizeof(plugin->mac_address)); |
1630 | memcpy(&Header->mac1, to_mac_addr, sizeof(plugin->mac_address)); | 1645 | memcpy(&Header->i_addr1, to_mac_addr, sizeof(plugin->mac_address)); |
1631 | return GNUNET_YES; | 1646 | return GNUNET_YES; |
1632 | } | 1647 | } |
1633 | 1648 | ||
@@ -1722,7 +1737,7 @@ wlan_plugin_send(void *cls, const struct GNUNET_PeerIdentity * target, | |||
1722 | //if (session->target != NULL){ | 1737 | //if (session->target != NULL){ |
1723 | // GNUNET_assert(session->target == *target); | 1738 | // GNUNET_assert(session->target == *target); |
1724 | //} else { | 1739 | //} else { |
1725 | session->target = *target; | 1740 | session->target = *target; |
1726 | //} | 1741 | //} |
1727 | 1742 | ||
1728 | 1743 | ||
@@ -1781,7 +1796,6 @@ wlan_plugin_send(void *cls, const struct GNUNET_PeerIdentity * target, | |||
1781 | newmsg->message_size); | 1796 | newmsg->message_size); |
1782 | #endif | 1797 | #endif |
1783 | 1798 | ||
1784 | |||
1785 | //queue session | 1799 | //queue session |
1786 | queue_Session(plugin, session); | 1800 | queue_Session(plugin, session); |
1787 | 1801 | ||
@@ -2494,7 +2508,7 @@ insert_fragment_in_in_message_queue(struct Plugin * plugin, | |||
2494 | rec_queue->num = ntohs(fh->fragment_off_or_num); | 2508 | rec_queue->num = ntohs(fh->fragment_off_or_num); |
2495 | rec_queue->msg = (char*) &(rec_queue[1]); | 2509 | rec_queue->msg = (char*) &(rec_queue[1]); |
2496 | //copy msg to buffer | 2510 | //copy msg to buffer |
2497 | memcpy((char *)rec_queue->msg, tempmsg, rec_queue->size); | 2511 | memcpy((char *) rec_queue->msg, tempmsg, rec_queue->size); |
2498 | insert_fragment_in_queue(rec_message, rec_queue); | 2512 | insert_fragment_in_queue(rec_message, rec_queue); |
2499 | //save bitfield | 2513 | //save bitfield |
2500 | retval = rec_message->received_fragments; | 2514 | retval = rec_message->received_fragments; |
@@ -2679,10 +2693,9 @@ wlan_data_helper(void *cls, struct Session_light * session_light, | |||
2679 | } | 2693 | } |
2680 | 2694 | ||
2681 | char * | 2695 | char * |
2682 | macprinter(struct MacAddress macx) | 2696 | macprinter(u_int8_t * mac) |
2683 | { | 2697 | { |
2684 | static char macstr[20]; | 2698 | static char macstr[20]; |
2685 | char * mac = macx.mac; | ||
2686 | sprintf(macstr, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", mac[0], mac[1], mac[2], | 2699 | sprintf(macstr, "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", mac[0], mac[1], mac[2], |
2687 | mac[3], mac[4], mac[5]); | 2700 | mac[3], mac[4], mac[5]); |
2688 | return macstr; | 2701 | return macstr; |
@@ -2701,7 +2714,7 @@ wlan_process_helper(void *cls, void *client, | |||
2701 | const struct GNUNET_MessageHeader *hdr) | 2714 | const struct GNUNET_MessageHeader *hdr) |
2702 | { | 2715 | { |
2703 | struct Plugin *plugin = cls; | 2716 | struct Plugin *plugin = cls; |
2704 | struct IeeeHeader * wlanIeeeHeader = NULL; | 2717 | struct ieee80211_frame * wlanIeeeHeader = NULL; |
2705 | struct Session_light * session_light = NULL; | 2718 | struct Session_light * session_light = NULL; |
2706 | const struct GNUNET_MessageHeader * temp_hdr = NULL; | 2719 | const struct GNUNET_MessageHeader * temp_hdr = NULL; |
2707 | 2720 | ||
@@ -2718,30 +2731,30 @@ wlan_process_helper(void *cls, void *client, | |||
2718 | #endif | 2731 | #endif |
2719 | 2732 | ||
2720 | //call wlan_process_helper with the message inside, later with wlan: analyze signal | 2733 | //call wlan_process_helper with the message inside, later with wlan: analyze signal |
2721 | GNUNET_assert(ntohs(hdr->size) >= sizeof(struct IeeeHeader) + sizeof(struct GNUNET_MessageHeader)); | 2734 | GNUNET_assert(ntohs(hdr->size) >= sizeof(struct ieee80211_frame) + sizeof(struct GNUNET_MessageHeader)); |
2722 | wlanIeeeHeader = (struct IeeeHeader *) &hdr[1]; | 2735 | wlanIeeeHeader = (struct ieee80211_frame *) &hdr[1]; |
2723 | 2736 | ||
2724 | //process only if it is an broadcast or for this computer both with the gnunet bssid | 2737 | //process only if it is an broadcast or for this computer both with the gnunet bssid |
2725 | 2738 | ||
2726 | //check for bssid | 2739 | //check for bssid |
2727 | if (memcmp(&(wlanIeeeHeader->mac3), mac_bssid, sizeof(struct MacAddress)) | 2740 | if (memcmp(&(wlanIeeeHeader->i_addr3), mac_bssid, |
2728 | == 0) | 2741 | sizeof(struct MacAddress)) == 0) |
2729 | { | 2742 | { |
2730 | //check for broadcast or mac | 2743 | //check for broadcast or mac |
2731 | if (memcmp(&(wlanIeeeHeader->mac1), bc_all_mac, | 2744 | if (memcmp(&(wlanIeeeHeader->i_addr1), bc_all_mac, |
2732 | sizeof(struct MacAddress) == 0) || memcmp( | 2745 | sizeof(struct MacAddress) == 0) || memcmp( |
2733 | &(wlanIeeeHeader->mac1), &(plugin->mac_address), | 2746 | &(wlanIeeeHeader->i_addr1), &(plugin->mac_address), |
2734 | sizeof(struct MacAddress)) == 0) | 2747 | sizeof(struct MacAddress)) == 0) |
2735 | { | 2748 | { |
2736 | 2749 | ||
2737 | // process the inner data | 2750 | // process the inner data |
2738 | 2751 | ||
2739 | 2752 | ||
2740 | datasize = ntohs(hdr->size) - sizeof(struct IeeeHeader) | 2753 | datasize = ntohs(hdr->size) - sizeof(struct ieee80211_frame) |
2741 | - sizeof(struct GNUNET_MessageHeader); | 2754 | - sizeof(struct GNUNET_MessageHeader); |
2742 | 2755 | ||
2743 | session_light = GNUNET_malloc(sizeof(struct Session_light)); | 2756 | session_light = GNUNET_malloc(sizeof(struct Session_light)); |
2744 | memcpy(session_light->addr, &(wlanIeeeHeader->mac2), | 2757 | memcpy(session_light->addr, &(wlanIeeeHeader->i_addr2), |
2745 | sizeof(struct MacAddress)); | 2758 | sizeof(struct MacAddress)); |
2746 | //session_light->session = search_session(plugin,session_light->addr); | 2759 | //session_light->session = search_session(plugin,session_light->addr); |
2747 | 2760 | ||
@@ -2765,7 +2778,7 @@ wlan_process_helper(void *cls, void *client, | |||
2765 | #if DEBUG_wlan | 2778 | #if DEBUG_wlan |
2766 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 2779 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, |
2767 | "Func wlan_process_helper got wrong MAC: %s\n", macprinter( | 2780 | "Func wlan_process_helper got wrong MAC: %s\n", macprinter( |
2768 | wlanIeeeHeader->mac1)); | 2781 | wlanIeeeHeader->i_addr1)); |
2769 | #endif | 2782 | #endif |
2770 | } | 2783 | } |
2771 | } | 2784 | } |
@@ -2774,7 +2787,7 @@ wlan_process_helper(void *cls, void *client, | |||
2774 | #if DEBUG_wlan | 2787 | #if DEBUG_wlan |
2775 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, | 2788 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, |
2776 | "Func wlan_process_helper got wrong BSSID: %s\n", macprinter( | 2789 | "Func wlan_process_helper got wrong BSSID: %s\n", macprinter( |
2777 | wlanIeeeHeader->mac2)); | 2790 | wlanIeeeHeader->i_addr2)); |
2778 | #endif | 2791 | #endif |
2779 | } | 2792 | } |
2780 | 2793 | ||
@@ -2807,7 +2820,7 @@ wlan_process_helper(void *cls, void *client, | |||
2807 | else | 2820 | else |
2808 | { | 2821 | { |
2809 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Wrong wlan mac address %s\n", | 2822 | GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Wrong wlan mac address %s\n", |
2810 | macprinter(plugin->mac_address)); | 2823 | macprinter(plugin->mac_address.mac)); |
2811 | } | 2824 | } |
2812 | 2825 | ||
2813 | } | 2826 | } |