mesh: Write close reason from Mesh Peering Close to debug log
[mech_eap.git] / wpa_supplicant / blacklist.c
index 8f12ac9..e53dc38 100644 (file)
@@ -2,14 +2,8 @@
  * wpa_supplicant - Temporary BSSID blacklist
  * Copyright (c) 2003-2007, Jouni Malinen <j@w1.fi>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * Alternatively, this software may be distributed under the terms of BSD
- * license.
- *
- * See README and COPYING for more details.
+ * This software may be distributed under the terms of the BSD license.
+ * See README for more details.
  */
 
 #include "includes.h"
@@ -29,6 +23,9 @@ struct wpa_blacklist * wpa_blacklist_get(struct wpa_supplicant *wpa_s,
 {
        struct wpa_blacklist *e;
 
+       if (wpa_s == NULL || bssid == NULL)
+               return NULL;
+
        e = wpa_s->blacklist;
        while (e) {
                if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0)
@@ -60,6 +57,9 @@ int wpa_blacklist_add(struct wpa_supplicant *wpa_s, const u8 *bssid)
 {
        struct wpa_blacklist *e;
 
+       if (wpa_s == NULL || bssid == NULL)
+               return -1;
+
        e = wpa_blacklist_get(wpa_s, bssid);
        if (e) {
                e->count++;
@@ -93,6 +93,9 @@ int wpa_blacklist_del(struct wpa_supplicant *wpa_s, const u8 *bssid)
 {
        struct wpa_blacklist *e, *prev = NULL;
 
+       if (wpa_s == NULL || bssid == NULL)
+               return -1;
+
        e = wpa_s->blacklist;
        while (e) {
                if (os_memcmp(e->bssid, bssid, ETH_ALEN) == 0) {
@@ -120,14 +123,19 @@ int wpa_blacklist_del(struct wpa_supplicant *wpa_s, const u8 *bssid)
 void wpa_blacklist_clear(struct wpa_supplicant *wpa_s)
 {
        struct wpa_blacklist *e, *prev;
+       int max_count = 0;
 
        e = wpa_s->blacklist;
        wpa_s->blacklist = NULL;
        while (e) {
+               if (e->count > max_count)
+                       max_count = e->count;
                prev = e;
                e = e->next;
                wpa_printf(MSG_DEBUG, "Removed BSSID " MACSTR " from "
                           "blacklist (clear)", MAC2STR(prev->bssid));
                os_free(prev);
        }
+
+       wpa_s->extra_blacklist_count += max_count;
 }