From dd1efd8c56f6e54667d66b2302f9590736546414 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sat, 17 Feb 2018 23:26:45 +0100 Subject: hurd: Fix build on missing __ptsname_internal function * sysdeps/mach/hurd/ptsname.c: Include . (__ptsname_r): Move implementation to... (__ptsname_internal): ... new function. Add filling the STP structure. --- sysdeps/mach/hurd/ptsname.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/mach/hurd/ptsname.c b/sysdeps/mach/hurd/ptsname.c index 08748a3..5c1dc6e 100644 --- a/sysdeps/mach/hurd/ptsname.c +++ b/sysdeps/mach/hurd/ptsname.c @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -38,11 +39,9 @@ ptsname (int fd) } -/* Store at most BUFLEN characters of the pathname of the slave pseudo - terminal associated with the master FD is open on in BUF. - Return 0 on success, otherwise an error number. */ +/* We don't need STP, but fill it for conformity with the Linux version... */ int -__ptsname_r (int fd, char *buf, size_t buflen) +__ptsname_internal (int fd, char *buf, size_t buflen, struct stat64 *stp) { string_t peername; size_t len; @@ -58,7 +57,23 @@ __ptsname_r (int fd, char *buf, size_t buflen) return ERANGE; } + if (stp) + { + if (__xstat64 (_STAT_VER, peername, stp) < 0) + return errno; + } + memcpy (buf, peername, len); return 0; } + + +/* Store at most BUFLEN characters of the pathname of the slave pseudo + terminal associated with the master FD is open on in BUF. + Return 0 on success, otherwise an error number. */ +int +__ptsname_r (int fd, char *buf, size_t buflen) +{ + return __ptsname_internal (fd, buf, buflen, NULL); +} weak_alias (__ptsname_r, ptsname_r) -- cgit v1.1