+ if(!found && !inst->normal_defaults) {
+ return RLM_MODULE_NOTFOUND;
+ }
+
+ /*
+ * We didn't find the user, but we should
+ * check the defaults.
+ */
+ if(!found && inst->normal_defaults) {
+ user = inst->default_entry;
+ while((user) && (!found)) {
+ if(paircmp(request_pairs, user->check, reply_pairs) == 0) {
+ DEBUG2(" fastusers: Matched %s at %d", user->name, user->lineno);
+ found = 1;
+ } else {
+ user = user->next;
+ }
+ }
+
+ if(found) {
+ check_tmp = paircopy(user->check);
+ pairmove(check_pairs, &check_tmp);
+ pairfree(check_tmp);
+ reply_tmp = paircopy(user->reply);
+ pairmove(reply_pairs, &reply_tmp);
+ pairfree(reply_tmp);
+ return RLM_MODULE_UPDATED;
+
+ } else {
+ return RLM_MODULE_NOTFOUND;
+ }
+ }
+
+ /*
+ * We found the user, and we don't use normal defaults.
+ * So copy the check and reply pairs from the default
+ * entry to the request
+ */
+ if(found && !inst->normal_defaults) {
+
+ /* We've already done this above if(mainconfig.do_usercollide) */
+ if(!mainconfig.do_usercollide) {
+ check_tmp = paircopy(user->check);
+ pairmove(check_pairs, &check_tmp);
+ pairfree(check_tmp);
+ }
+ reply_tmp = paircopy(user->reply);