summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-10 11:48:03 -0400
committerNalin Dahyabhai <nalin.dahyabhai@pobox.com>2008-07-10 11:48:03 -0400
commit64ad7795b18bd236f05eda5e2c49f2bee20006b6 (patch)
tree25d2f8c3b9d8dbd496b98236b39911e0f592e82d
parent77b6944212127063961ea6277deca29a126a24d7 (diff)
downloadslapi-nis-64ad7795b18bd236f05eda5e2c49f2bee20006b6.tar.gz
slapi-nis-64ad7795b18bd236f05eda5e2c49f2bee20006b6.tar.xz
slapi-nis-64ad7795b18bd236f05eda5e2c49f2bee20006b6.zip
- add a "match" command
-rw-r--r--tests/clients/yp.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/clients/yp.c b/tests/clients/yp.c
index e2303d2..397d018 100644
--- a/tests/clients/yp.c
+++ b/tests/clients/yp.c
@@ -55,6 +55,29 @@ order(CLIENT *client, FILE *output, int argc, char **argv)
}
static int
+match(CLIENT *client, FILE *output, int argc, char **argv)
+{
+ ypresp_val *resp;
+ ypreq_key req;
+ if (argc != 3) {
+ fprintf(stderr, "\"match\" requires 3 arguments\n");
+ return 1;
+ }
+ req.domain = argv[0];
+ req.map = argv[1];
+ req.key.keydat_val = argv[2];
+ req.key.keydat_len = strlen(argv[2]);
+ memset(&resp, 0, sizeof(resp));
+ resp = ypproc_match_2(&req, client);
+ if (resp != NULL) {
+ fprintf(output, "%s\t%.*s\n",
+ argv[2], resp->val.valdat_len, resp->val.valdat_val);
+ return 0;
+ }
+ return 1;
+}
+
+static int
domain(CLIENT *client, FILE *output, int argc, char **argv)
{
bool_t *ret;
@@ -226,6 +249,9 @@ dispatch(CLIENT *client, FILE *output, int argc, char **argv)
if (strcmp(argv[0], "cat") == 0) {
return cat(client, output, argc - 1, argv + 1);
}
+ if (strcmp(argv[0], "match") == 0) {
+ return match(client, output, argc - 1, argv + 1);
+ }
if (strcmp(argv[0], "domain") == 0) {
return domain(client, output, argc - 1, argv + 1);
}
@@ -258,6 +284,8 @@ usage(const char *argv0)
"Retrieve name of master server for MAP in DOMAIN.\n");
printf(" order DOMAIN MAP\n\t"
"Retrieve time of last change to MAP in DOMAIN.\n");
+ printf(" match DOMAIN MAP KEY\n\t"
+ "Use yp_match to search for KEY in MAP in DOMAIN.\n");
printf(" cat DOMAIN MAP\n\t"
"Use yp_first/yp_next to walk contents of MAP in DOMAIN.\n");
printf(" all DOMAIN MAP\n\t"