|
@@ -0,0 +1,42 @@
|
|
|
+allow usage of getrpcbynumber() instead of getrpcbynumber_r()
|
|
|
+
|
|
|
+libtirpc does not implement the reentrant function getrpcbynumber_r(),
|
|
|
+so allow quota to use the non-reentrant version getrpcbynumber(). This
|
|
|
+should not be a problem as quota tools are not multi-threaded.
|
|
|
+
|
|
|
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
+
|
|
|
+Index: b/configure.in
|
|
|
+===================================================================
|
|
|
+--- a/configure.in
|
|
|
++++ b/configure.in
|
|
|
+@@ -182,6 +182,12 @@
|
|
|
+ AC_C_CONST
|
|
|
+ AC_C_INLINE
|
|
|
+
|
|
|
++AC_CHECK_FUNCS([getrpcbynumber getrpcbynumber_r])
|
|
|
++
|
|
|
++if test "$ac_cv_func_getrpcbynumber_r" != "yes" -a "$ac_cv_func_getrpcbynumber" != "yes"; then
|
|
|
++ AC_MSG_ERROR([Neither getrpcbynumber_r nor getrpcbynumber are available])
|
|
|
++fi
|
|
|
++
|
|
|
+ AC_ARG_ENABLE(altformat,
|
|
|
+ [ --enable-altformat=[yes/no] Enable alternative format used by edquota [default=yes].],
|
|
|
+ ,
|
|
|
+Index: b/svc_socket.c
|
|
|
+===================================================================
|
|
|
+--- a/svc_socket.c
|
|
|
++++ b/svc_socket.c
|
|
|
+@@ -55,7 +55,12 @@
|
|
|
+ addr.sin_family = AF_INET;
|
|
|
+
|
|
|
+ if (!port) {
|
|
|
++#if HAVE_GETRPCBYNUMBER_R
|
|
|
+ ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof(rpcdata), &rpcp);
|
|
|
++#else
|
|
|
++ rpcp = getrpcbynumber(number);
|
|
|
++ ret = 0;
|
|
|
++#endif
|
|
|
+ if (ret == 0 && rpcp != NULL) {
|
|
|
+ /* First try name */
|
|
|
+ ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata,
|