From fd3ebedafc751998b4596d0277a704c41988d10b Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 3 Aug 2010 09:54:22 -0700 Subject: [PATCH] Hurd: fix ttyname{,_r} errno result for non-ttys --- ChangeLog | 7 +++++++ sysdeps/mach/hurd/ttyname.c | 8 ++++++-- sysdeps/mach/hurd/ttyname_r.c | 6 +++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd589f7e13..ee565af088 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,13 @@ * hurd/hurdselect.c (_hurd_select): Round timeout up instead of down when converting to ms. +2010-06-06 Samuel Thibault + + * sysdeps/mach/hurd/ttyname.c (ttyname): Replace MIG_BAD_ID and + EOPNOTSUPP errors with ENOTTY. + * sysdeps/mach/hurd/ttyname_r.c (__ttyname_r): Replace MIG_BAD_ID and + EOPNOTSUPP errors with ENOTTY. + 2010-07-31 Ulrich Drepper * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines): diff --git a/sysdeps/mach/hurd/ttyname.c b/sysdeps/mach/hurd/ttyname.c index 927851e2e1..6e2e5bf675 100644 --- a/sysdeps/mach/hurd/ttyname.c +++ b/sysdeps/mach/hurd/ttyname.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1994, 1997, 2010 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 @@ -32,7 +32,11 @@ ttyname (int fd) nodename[0] = '\0'; if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename))) - return __hurd_dfail (fd, err), NULL; + { + if (err == MIG_BAD_ID || err == EOPNOTSUPP) + err = ENOTTY; + return __hurd_dfail (fd, err), NULL; + } return nodename; } diff --git a/sysdeps/mach/hurd/ttyname_r.c b/sysdeps/mach/hurd/ttyname_r.c index 8896252246..5f6c9c35f0 100644 --- a/sysdeps/mach/hurd/ttyname_r.c +++ b/sysdeps/mach/hurd/ttyname_r.c @@ -34,7 +34,11 @@ __ttyname_r (int fd, char *buf, size_t buflen) nodename[0] = '\0'; if (err = HURD_DPORT_USE (fd, __term_get_nodename (port, nodename))) - return __hurd_dfail (fd, err), errno; + { + if (err == MIG_BAD_ID || err == EOPNOTSUPP) + err = ENOTTY; + return __hurd_dfail (fd, err), errno; + } len = strlen (nodename) + 1; if (len > buflen) -- 2.11.4.GIT