about summary refs log tree commit diff
path: root/nss
diff options
context:
space:
mode:
authorArjun Shankar <arjun@redhat.com>2023-10-02 14:55:26 +0200
committerArjun Shankar <arjun@redhat.com>2023-10-24 12:31:00 +0200
commit1d74d2f042a405982661267394e16126db70dc5f (patch)
tree6d59e8ee3f31cdfb1369c5e6db67c3654f2a6587 /nss
parent9b63a8ac404733851798680da1dc9f53ee70b64c (diff)
downloadglibc-1d74d2f042a405982661267394e16126db70dc5f.tar.gz
glibc-1d74d2f042a405982661267394e16126db70dc5f.tar.xz
glibc-1d74d2f042a405982661267394e16126db70dc5f.zip
Move 'services' routines from 'inet' into 'nss'
The getservby* and getservent* routines are entry points for nss
functionality.  This commit moves them from the 'inet' subdirectory to
'nss'.
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Diffstat (limited to 'nss')
-rw-r--r--nss/Makefile15
-rw-r--r--nss/Versions3
-rw-r--r--nss/getservent.c25
-rw-r--r--nss/getservent_r.c29
-rw-r--r--nss/getsrvbynm.c28
-rw-r--r--nss/getsrvbynm_r.c27
-rw-r--r--nss/getsrvbypt.c28
-rw-r--r--nss/getsrvbypt_r.c27
8 files changed, 182 insertions, 0 deletions
diff --git a/nss/Makefile b/nss/Makefile
index cbfd5dc692..e88754bf51 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -229,6 +229,21 @@ CFLAGS-getrpcent_r.c += -fexceptions
 CFLAGS-getrpcent.c += -fexceptions
 endif
 
+# services routines:
+routines += \
+  getservent \
+  getservent_r \
+  getsrvbynm \
+  getsrvbynm_r \
+  getsrvbypt \
+  getsrvbypt_r \
+  # routines
+
+ifeq ($(have-thread-library),yes)
+CFLAGS-getservent_r.c += -fexceptions
+CFLAGS-getservent.c += -fexceptions
+endif
+
 # shadow routines
 routines += \
   fgetspent \
diff --git a/nss/Versions b/nss/Versions
index b7491154bf..d8c4e373c9 100644
--- a/nss/Versions
+++ b/nss/Versions
@@ -32,6 +32,8 @@ libc {
     getpw; getpwent; getpwent_r; getpwnam; getpwnam_r; getpwuid; getpwuid_r;
     getrpcbyname; getrpcbyname_r; getrpcbynumber; getrpcbynumber_r;
     getrpcent; getrpcent_r;
+    getservbyname; getservbyname_r; getservbyport;
+    getservbyport_r; getservent; getservent_r;
     getspent; getspent_r; getspnam; getspnam_r;
 
     # i*
@@ -64,6 +66,7 @@ libc {
     getnetgrent_r;
     getprotobyname_r; getprotobynumber_r; getprotoent_r;
     getpwent_r; getpwuid_r; getpwnam_r;
+    getservbyname_r; getservbyport_r; getservent_r;
     getspent_r; getspnam_r;
   }
   GLIBC_2.2.2 {
diff --git a/nss/getservent.c b/nss/getservent.c
new file mode 100644
index 0000000000..8acd81ea9a
--- /dev/null
+++ b/nss/getservent.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE	struct servent
+#define	GETFUNC_NAME	getservent
+#define BUFLEN		1024
+
+#include "../nss/getXXent.c"
diff --git a/nss/getservent_r.c b/nss/getservent_r.c
new file mode 100644
index 0000000000..f57a7f24b8
--- /dev/null
+++ b/nss/getservent_r.c
@@ -0,0 +1,29 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE		struct servent
+#define SETFUNC_NAME		setservent
+#define	GETFUNC_NAME		getservent
+#define	ENDFUNC_NAME		endservent
+#define DATABASE_NAME		services
+#define STAYOPEN		int stayopen
+#define STAYOPEN_VAR		stayopen
+
+#include "../nss/getXXent_r.c"
diff --git a/nss/getsrvbynm.c b/nss/getsrvbynm.c
new file mode 100644
index 0000000000..c90a99da1c
--- /dev/null
+++ b/nss/getsrvbynm.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE	struct servent
+#define FUNCTION_NAME	getservbyname
+#define DATABASE_NAME	services
+#define ADD_PARAMS	const char *name, const char *proto
+#define ADD_VARIABLES	name, proto
+#define BUFLEN		1024
+
+#include "../nss/getXXbyYY.c"
diff --git a/nss/getsrvbynm_r.c b/nss/getsrvbynm_r.c
new file mode 100644
index 0000000000..e90659477d
--- /dev/null
+++ b/nss/getsrvbynm_r.c
@@ -0,0 +1,27 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE		struct servent
+#define FUNCTION_NAME		getservbyname
+#define DATABASE_NAME		services
+#define ADD_PARAMS		const char *name, const char *proto
+#define ADD_VARIABLES		name, proto
+
+#include "../nss/getXXbyYY_r.c"
diff --git a/nss/getsrvbypt.c b/nss/getsrvbypt.c
new file mode 100644
index 0000000000..d6292c66d9
--- /dev/null
+++ b/nss/getsrvbypt.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE	struct servent
+#define FUNCTION_NAME	getservbyport
+#define DATABASE_NAME	services
+#define ADD_PARAMS	int port, const char *proto
+#define ADD_VARIABLES	port, proto
+#define BUFLEN		1024
+
+#include "../nss/getXXbyYY.c"
diff --git a/nss/getsrvbypt_r.c b/nss/getsrvbypt_r.c
new file mode 100644
index 0000000000..c01ea347d5
--- /dev/null
+++ b/nss/getsrvbypt_r.c
@@ -0,0 +1,27 @@
+/* Copyright (C) 1996-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/>.  */
+
+#include <netdb.h>
+
+
+#define LOOKUP_TYPE		struct servent
+#define FUNCTION_NAME		getservbyport
+#define DATABASE_NAME		services
+#define ADD_PARAMS		int port, const char *proto
+#define ADD_VARIABLES		port, proto
+
+#include "../nss/getXXbyYY_r.c"