diff options
author | Arjun Shankar <arjun@redhat.com> | 2023-10-02 14:55:25 +0200 |
---|---|---|
committer | Arjun Shankar <arjun@redhat.com> | 2023-10-24 12:31:00 +0200 |
commit | 9b63a8ac404733851798680da1dc9f53ee70b64c (patch) | |
tree | 37ff05b0c5aec7403020fe60a14ddcbbb47c5b4e /nss/test-rpcent.c | |
parent | a25a060c358358d61d683dc8e9aa9df91e877a35 (diff) | |
download | glibc-9b63a8ac404733851798680da1dc9f53ee70b64c.zip glibc-9b63a8ac404733851798680da1dc9f53ee70b64c.tar.gz glibc-9b63a8ac404733851798680da1dc9f53ee70b64c.tar.bz2 |
Move 'rpc' routines from 'inet' into 'nss'
The getrpcby* and getrpcent* routines are entry points for nss
functionality. This commit moves them from the 'inet' subdirectory to
'nss'. The Versions entries for these routines along with a test,
located in the 'sunrpc' subdirectory, are also moved into 'nss'.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nss/test-rpcent.c')
-rw-r--r-- | nss/test-rpcent.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/nss/test-rpcent.c b/nss/test-rpcent.c new file mode 100644 index 0000000..a3b1a21 --- /dev/null +++ b/nss/test-rpcent.c @@ -0,0 +1,74 @@ +/* Test getrpcent and friends. + Copyright (C) 2015-2023 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +/* This is taken from nss/test-netdb.c and is intended to follow that + test's model for everything. This test is separate only because + the <rpc/netdb.h> interfaces do not exist in configurations that + omit sunrpc/ from the build. */ + +#include <stdio.h> +#include <rpc/netdb.h> + + +static void +output_rpcent (const char *call, struct rpcent *rptr) +{ + char **pptr; + + if (rptr == NULL) + printf ("Call: %s returned NULL\n", call); + else + { + printf ("Call: %s, returned: r_name: %s, r_number: %d\n", + call, rptr->r_name, rptr->r_number); + for (pptr = rptr->r_aliases; *pptr != NULL; pptr++) + printf (" alias: %s\n", *pptr); + } +} + +static void +test_rpc (void) +{ + struct rpcent *rptr; + + rptr = getrpcbyname ("portmap"); + output_rpcent ("getrpcyname (\"portmap\")", rptr); + + rptr = getrpcbynumber (100000); + output_rpcent ("getrpcbynumber (100000)", rptr); + + setrpcent (0); + do + { + rptr = getrpcent (); + output_rpcent ("getrpcent ()", rptr); + } + while (rptr != NULL); + endrpcent (); +} + +static int +do_test (void) +{ + test_rpc (); + + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" |