$Log$
+Revision 653.7 2005/07/21 17:20:55 ajc
+* <.R>ead <U>ser-list now takes advantage of the server-side string match
+ if available. It still filters on the client side as well, in case the
+ server is older and sent back the whole list.
+
Revision 653.6 2005/07/21 15:02:27 ajc
* Server-side LIST command now accepts a search string.
Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
* Initial CVS import
-
int r; /* IPC response code */
char *listing = NULL;
- r = CtdlIPCUserListing(ipc, &listing, buf);
+ r = CtdlIPCUserListing(ipc, patn, &listing, buf);
if (r / 100 != 1) {
pprintf("%s\n", buf);
return;
# the trailing colon allows the user to enter a few characters to search for
# users with a partial match.
#
-cmd=32,0,&.,&Read,&User listing
-#cmd=32,0,&.,&Read,&User listing:
+#cmd=32,0,&.,&Read,&User listing
+cmd=32,0,&.,&Read,&User listing:
cmd=33,0,&.,&Read,&Textfile formatted
#
/* LIST */
-int CtdlIPCUserListing(CtdlIPC *ipc, char **listing, char *cret)
+int CtdlIPCUserListing(CtdlIPC *ipc, char *searchstring, char **listing, char *cret)
{
size_t bytes;
+ char *cmd;
+ int ret;
if (!cret) return -1;
if (!listing) return -1;
if (*listing) return -1;
+ if (!searchstring) return -1;
- return CtdlIPCGenericCommand(ipc, "LIST", NULL, 0, listing, &bytes, cret);
+ cmd = malloc(strlen(searchstring) + 10);
+ sprintf(cmd, "LIST %s", searchstring);
+
+ ret = CtdlIPCGenericCommand(ipc, cmd, NULL, 0, listing, &bytes, cret);
+ free(cmd);
+ return(ret);
}
char *cret);
int CtdlIPCSetRoomInfo(CtdlIPC *ipc, int for_real, const char *info,
char *cret);
-int CtdlIPCUserListing(CtdlIPC *ipc, char **list, char *cret);
+int CtdlIPCUserListing(CtdlIPC *ipc, char *searchstring, char **list, char *cret);
int CtdlIPCSetRegistration(CtdlIPC *ipc, const char *info, char *cret);
int CtdlIPCMiscCheck(CtdlIPC *ipc, struct ctdlipcmisc *chek, char *cret);
int CtdlIPCDeleteFile(CtdlIPC *ipc, const char *filename, char *cret);
char *listing = NULL;
int r;
- r = CtdlIPCUserListing(ipc, &listing, buf);
+ r = CtdlIPCUserListing(ipc, "", &listing, buf);
if (r / 100 != 1) {
printf("%s\n", buf);
return;