]> andersk Git - moira.git/commitdiff
Always sort the result in get_members_of_list. (Previously this was
authordanw <danw>
Thu, 3 Jul 1997 22:51:46 +0000 (22:51 +0000)
committerdanw <danw>
Thu, 3 Jul 1997 22:51:46 +0000 (22:51 +0000)
only done for lists of more than 50 members, and implemented such that
the server had to do twice as much work in that case.)

server/qsupport.pc

index e90299b7d4a6d7e590353df4b0394933960874a4..04643baac0cb0704817632a88fb209188be7a809 100644 (file)
@@ -922,7 +922,6 @@ int gmol_internal(q, argv, cl, action, actarg, flag)
     EXEC SQL END DECLARE SECTION;
     char *targv[2];
     int members;
-    struct save_queue *sq;
 
     /* true/false flag indicates whether to display only direct members. */
     if (flag)
@@ -931,61 +930,6 @@ int gmol_internal(q, argv, cl, action, actarg, flag)
       direct = -1;
 
     list_id = *(int *)argv[0];
-    members = 0;
-    sq = sq_create();
-
-    EXEC SQL DECLARE csr118 CURSOR FOR
-      SELECT member_type, member_id FROM imembers
-       WHERE list_id = :list_id AND direct > :direct;
-    if (dbms_errno)
-       return(mr_errcode);
-    EXEC SQL OPEN csr118;
-    if (dbms_errno)
-       return(mr_errcode);
-    while(1) {
-       EXEC SQL FETCH csr118 INTO :member_type, :member_id;
-       if (sqlca.sqlcode != 0) break;
-       if (members++ > 49)
-         break;
-       sq_save_data(sq, (char *)(((int)member_type[0] << 24) |
-                                 (member_id & 0xffffff)));
-    }
-    EXEC SQL CLOSE csr118;
-
-    if (members <= 49) {
-       targv[1] = malloc(0);
-       while (sq_remove_data(sq, &member_id)) {
-           switch (member_id >> 24) {
-           case 'U':
-               targv[0] = "USER";
-               id_to_name(member_id & 0xffffff, USERS_TABLE, &targv[1]);
-               (*action)(2, targv, actarg);
-               break;
-           case 'L':
-               targv[0] = "LIST";
-               id_to_name(member_id & 0xffffff, LIST_TABLE, &targv[1]);
-               (*action)(2, targv, actarg);
-               break;
-           case 'S':
-               targv[0] = "STRING";
-               id_to_name(member_id & 0xffffff, STRINGS_TABLE, &targv[1]);
-               (*action)(2, targv, actarg);
-               break;
-           case 'K':
-               targv[0] = "KERBEROS";
-               id_to_name(member_id & 0xffffff, STRINGS_TABLE, &targv[1]);
-               (*action)(2, targv, actarg);
-               break;
-           default:
-               sq_destroy(sq);
-               return(MR_INTERNAL);
-           }
-       }
-       free(targv[1]);
-       sq_destroy(sq);
-       return(MR_SUCCESS);
-    }
-    sq_destroy(sq);
 
     targv[1] = member_name;
     targv[0] = "USER";
This page took 0.073535 seconds and 5 git commands to generate.