*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.82 2002/04/25 00:56:36 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.83 2002/04/28 22:49:07 momjian Exp $
*
*-------------------------------------------------------------------------
*/
/*
- * Compare two password-file lines on the basis of their user names.
+ * Compare two lines based on their user/group names.
*
- * Used for qsort() sorting and bsearch() lookup.
+ * Used for qsort() sorting.
*/
static int
-user_group_cmp(const void *user, const void *list)
+user_group_qsort_cmp(const void *list1, const void *list2)
{
/* first node is line number */
- char *user1 = (char *)user;
- char *user2 = lfirst(lnext(*(List **)list));
+ char *user1 = lfirst(lnext(*(List **)list1));
+ char *user2 = lfirst(lnext(*(List **)list2));
return strcmp(user1, user2);
}
+/*
+ * Compare two lines based on their user/group names.
+ *
+ * Used for bsearch() lookup.
+ */
+static int
+user_group_bsearch_cmp(const void *user, const void *list)
+{
+ /* first node is line number */
+ char *user2 = lfirst(lnext(*(List **)list));
+
+ return strcmp(user, user2);
+}
+
+
/*
* Lookup a group name in the pg_group file
*/
(void *) group_sorted,
group_length,
sizeof(List *),
- user_group_cmp);
+ user_group_bsearch_cmp);
}
(void *) user_sorted,
user_length,
sizeof(List *),
- user_group_cmp);
+ user_group_bsearch_cmp);
}
foreach(line, group_lines)
group_sorted[i++] = lfirst(line);
- qsort((void *) group_sorted, group_length, sizeof(List *), user_group_cmp);
+ qsort((void *) group_sorted, group_length, sizeof(List *), user_group_qsort_cmp);
}
else
group_sorted = NULL;
foreach(line, user_lines)
user_sorted[i++] = lfirst(line);
- qsort((void *) user_sorted, user_length, sizeof(List *), user_group_cmp);
+ qsort((void *) user_sorted, user_length, sizeof(List *), user_group_qsort_cmp);
}
else
user_sorted = NULL;