Add Mike Garratt to the list of authors for (at the very least) his contributions...
[metze/wireshark/wip.git] / airpcap_loader.c
index f2b2d891ce839a2e733cd9ca2cf390f0fb93941e..fd7abdd2846dc54a27789a79dd0644c2c9cc49eb 100644 (file)
@@ -249,7 +249,7 @@ set_wep_key(pref_t *pref, gpointer ud _U_)
     keys_cb_data_t*  user_data;
     uat_t *uat;
     gint i;
-    char* err = NULL;
+    const char* err = NULL;
     uat_wep_key_record_t uat_key;
 
     decryption_key_t* new_key;
@@ -260,10 +260,16 @@ set_wep_key(pref_t *pref, gpointer ud _U_)
     if (g_ascii_strcasecmp(pref->name, "wep_key_table") == 0 && pref->type == PREF_UAT)
     {
         uat = (uat_t *)pref->varp.uat;
-        /* UAT must be loaded */
         if (!uat->loaded)
-            return 1;
+        {
+            /* UAT will only be loaded if previous keys exist, so it may need
+               to be loaded now */
+            uat_load(uat, &err);
+            if (err != NULL)
+                return 1;
 
+            uat->loaded = 1;
+        }
         /* Free the old records */
         uat_clear(uat);
 
@@ -273,7 +279,7 @@ set_wep_key(pref_t *pref, gpointer ud _U_)
 
             uat_key.string = get_key_string(new_key);
             uat_key.key = new_key->type;
-            uat_add_record(uat, &uat_key);
+            uat_add_record(uat, &uat_key, TRUE);
         }
 
         uat_save(uat, &err);