* libio/iofopncook.c (_IO_cookie_seek): Correct return value.
	Patch by Peter Miller <millerp@canb.auug.org.au>.

1999-04-27  Thorsten Kukuk  <kukuk@suse.de>

	* sunrpc/pmap_clnt.c: Add own get_myaddress function, which
	  prefers loopback device.

1999-04-28  Ulrich Drepper  <drepper@cygnus.com>
This commit is contained in:
Ulrich Drepper 1999-04-28 10:00:35 +00:00
parent 66f93c2d97
commit 925ed47cfb
5 changed files with 91 additions and 25 deletions

View File

@ -1,3 +1,13 @@
1999-04-28 Ulrich Drepper <drepper@cygnus.com>
* libio/iofopncook.c (_IO_cookie_seek): Correct return value.
Patch by Peter Miller <millerp@canb.auug.org.au>.
1999-04-27 Thorsten Kukuk <kukuk@suse.de>
* sunrpc/pmap_clnt.c: Add own get_myaddress function, which
prefers loopback device.
1999-04-28 Ulrich Drepper <drepper@cygnus.com>
* posix/fnmatch.c (internal_fnmatch): Finish incomplete

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
/* Copyright (C) 1993, 1995, 1997, 1999 Free Software Foundation, Inc.
This file is part of the GNU IO Library.
This library is free software; you can redistribute it and/or
@ -81,10 +81,7 @@ _IO_cookie_seek (fp, offset, dir)
pos = _IO_pos_0;
_IO_pos_adjust (pos, offset);
if (cfile->io_functions.seek (cfile->cookie, pos, dir))
return _IO_pos_BAD;
return pos;
return cfile->io_functions.seek (cfile->cookie, pos, dir);
}
static int

View File

@ -51,8 +51,8 @@ CHARMAP
<D4> /x14 <U0014> DEVICE CONTROL FOUR (DC4)
<NAK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<NK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
<SYN> /x16 <U0016> SYNCRONOUS IDLE (SYN)
<SY> /x16 <U0016> SYNCRONOUS IDLE (SYN)
<SYN> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
<SY> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
<ETB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
<EB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
<CAN> /x18 <U0018> CANCEL (CAN)
@ -524,8 +524,8 @@ CHARMAP
<o1> /xc7/xad <U01ed> LATIN SMALL LETTER O WITH OGONEK AND MACRON
<EZ> /xc7/xae <U01ee> LATIN CAPITAL LETTER EZH WITH CARON
<ez> /xc7/xaf <U01ef> LATIN SMALL LETTER EZH WITH CARON
<G'> /xc7/xb8 <U01f8> LATIN CAPITAL LETTER G WITH ACUTE
<g'> /xc7/xb9 <U01f9> LATIN SMALL LETTER G WITH ACUTE
<G'> /xc7/xb4 <U01f4> LATIN CAPITAL LETTER G WITH ACUTE
<g'> /xc7/xb5 <U01f5> LATIN SMALL LETTER G WITH ACUTE
<AA'> /xc7/xba <U01fa> LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
<aa'> /xc7/xbb <U01fb> LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
<AE'> /xc7/xbc <U01fc> LATIN CAPITAL LETTER AE WITH ACUTE
@ -560,7 +560,7 @@ CHARMAP
<;S> /xca/xbb <U02bb> MODIFIER LETTER TURNED COMMA
<1/>> /xcb/x86 <U02c6> MODIFIER LETTER CIRCUMFLEX ACCENT
<'<> /xcb/x87 <U02c7> CARON (Mandarin Chinese third tone)
<1!> /xcb/x95 <U02d5> MODIFIER LETTER GRAVE ACCENT
<1!> /xcb/x8b <U02cb> MODIFIER LETTER GRAVE ACCENT
<'(> /xcb/x98 <U02d8> BREVE
<'.> /xcb/x99 <U02d9> DOT ABOVE (Mandarin Chinese light tone)
<'0> /xcb/x9a <U02da> RING ABOVE
@ -581,7 +581,7 @@ CHARMAP
<O%> /xce/x8c <U038c> GREEK CAPITAL LETTER OMICRON WITH TONOS
<U%> /xce/x8e <U038e> GREEK CAPITAL LETTER UPSILON WITH TONOS
<W%> /xce/x8f <U038f> GREEK CAPITAL LETTER OMEGA WITH TONOS
<i3> /xce/x90 <U0390> GREEK SMALL LETTER IOTA WITH DIALYTICA AND TONOS
<i3> /xce/x90 <U0390> GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
<A*> /xce/x91 <U0391> GREEK CAPITAL LETTER ALPHA
<B*> /xce/x92 <U0392> GREEK CAPITAL LETTER BETA
<G*> /xce/x93 <U0393> GREEK CAPITAL LETTER GAMMA
@ -1161,7 +1161,7 @@ CHARMAP
<=s> /xe2/x82/x8c <U208c> SUBSCRIPT EQUALS SIGN
<(s> /xe2/x82/x8d <U208d> SUBSCRIPT LEFT PARENTHESIS
<)s> /xe2/x82/x8e <U208e> SUBSCRIPT RIGHT PARENTHESIS
<Ff> /xe2/x82/xa3 <U20a3> FRENCH FRANK SIGN
<Ff> /xe2/x82/xa3 <U20a3> FRENCH FRANC SIGN
<Li> /xe2/x82/xa4 <U20a4> LIRA SIGN
<Pt> /xe2/x82/xa7 <U20a7> PESETA SIGN
<W=> /xe2/x82/xa9 <U20a9> WON SIGN
@ -1546,7 +1546,7 @@ CHARMAP
<RO> /xe2/x96/xa2 <U25a2> WHITE SQUARE WITH ROUNDED CORNERS
<Rr> /xe2/x96/xa3 <U25a3> WHITE SQUARE CONTAINING BLACK SMALL SQUARE
<RF> /xe2/x96/xa4 <U25a4> SQUARE WITH HORIZONTAL FILL
<RY> /x00 SQUARE WITH VERTICAL FILL
<RY> /xe2/x96/xa5 <U25a5> SQUARE WITH VERTICAL FILL
<RH> /xe2/x96/xa6 <U25a6> SQUARE WITH ORTHOGONAL CROSSHATCH FILL
<RZ> /xe2/x96/xa7 <U25a7> SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL
<RK> /xe2/x96/xa8 <U25a8> SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL
@ -1608,7 +1608,7 @@ CHARMAP
<,_> /xe3/x80/x81 <U3001> IDEOGRAPHIC COMMA
<._> /xe3/x80/x82 <U3002> IDEOGRAPHIC FULL STOP
<+"> /xe3/x80/x83 <U3003> DITTO MARK
<JIS> /xe3/x80/x84 <U3004> JAPANESE INDUSTRIAL STANDARD SIGN
<JIS> /xe3/x80/x84 <U3004> JAPANESE INDUSTRIAL STANDARD SYMBOL
<*_> /xe3/x80/x85 <U3005> IDEOGRAPHIC ITERATION MARK
<;_> /xe3/x80/x86 <U3006> IDEOGRAPHIC CLOSING MARK
<0_> /xe3/x80/x87 <U3007> IDEOGRAPHIC NUMBER ZERO
@ -1829,7 +1829,7 @@ CHARMAP
<fl> /xef/xac/x82 <Ufb02> LATIN SMALL LIGATURE FL
<ffi> /xef/xac/x83 <Ufb03> LATIN SMALL LIGATURE FFI
<ffl> /xef/xac/x84 <Ufb04> LATIN SMALL LIGATURE FFL
<ft> /xef/xac/x85 <Ufb05> LATIN SMALL LIGATURE FT
<ft> /xef/xac/x85 <Ufb05> LATIN SMALL LIGATURE LONG S T
<st> /xef/xac/x86 <Ufb06> LATIN SMALL LIGATURE ST
<3+;> /xef/xb9/xbd <Ufe7d> ARABIC SHADDA MEDIAL FORM
<aM.> /xef/xba/x82 <Ufe82> ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM

View File

@ -233,7 +233,7 @@ escape_char /
<S3> <U008F> SINGLE-SHIFT THREE (SS3)
<DC> <U0090> DEVICE CONTROL STRING (DCS)
<P1> <U0091> PRIVATE USE ONE (PU1)
<P2> <U0092> PRIVATE USE ONE (PU2)
<P2> <U0092> PRIVATE USE TWO (PU2)
<TS> <U0093> SET TRANSMIT STATE (STS)
<CC> <U0094> CANCEL CHARACTER (CCH)
<MW> <U0095> MESSAGE WAITING (MW)

View File

@ -1,4 +1,3 @@
/* @(#)pmap_clnt.c 2.2 88/08/01 4.0 RPCSRC */
/*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
* unrestricted use provided that this legend is included on all tape
@ -27,21 +26,81 @@
* 2550 Garcia Avenue
* Mountain View, California 94043
*/
#if !defined(lint) && defined(SCCSIDS)
static char sccsid[] = "@(#)pmap_clnt.c 1.37 87/08/11 Copyr 1984 Sun Micro";
#endif
/*
* Copyright (C) 1984, Sun Microsystems, Inc.
*/
/*
* pmap_clnt.c
* Client interface to pmap rpc service.
*
* Copyright (C) 1984, Sun Microsystems, Inc.
*/
#include <stdio.h>
#include <unistd.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <rpc/rpc.h>
#include <rpc/pmap_prot.h>
#include <rpc/pmap_clnt.h>
/*
* Same as get_myaddress, but we try to use the loopback
* interface. portmap caches interfaces, and on DHCP clients,
* it could be that only loopback is started at this time.
*/
static void
__get_myaddress (struct sockaddr_in *addr)
{
int s;
char buf[BUFSIZ];
struct ifconf ifc;
struct ifreq ifreq, *ifr;
int len, loopback = 1;
if ((s = __socket (AF_INET, SOCK_DGRAM, 0)) < 0)
{
perror ("__get_myaddress: socket");
exit (1);
}
ifc.ifc_len = sizeof (buf);
ifc.ifc_buf = buf;
if (__ioctl (s, SIOCGIFCONF, (char *) &ifc) < 0)
{
perror (_("__get_myaddress: ioctl (get interface configuration)"));
exit (1);
}
again:
ifr = ifc.ifc_req;
for (len = ifc.ifc_len; len; len -= sizeof ifreq)
{
ifreq = *ifr;
if (__ioctl (s, SIOCGIFFLAGS, (char *) &ifreq) < 0)
{
perror ("__get_myaddress: ioctl");
exit (1);
}
if ((ifreq.ifr_flags & IFF_UP) && (ifr->ifr_addr.sa_family == AF_INET)
&& ((ifreq.ifr_flags & IFF_LOOPBACK) || (loopback == 0)))
{
*addr = *((struct sockaddr_in *) &ifr->ifr_addr);
addr->sin_port = htons (PMAPPORT);
__close (s);
return;
}
ifr++;
}
if (loopback == 1)
{
loopback = 0;
goto again;
}
__close (s);
}
static const struct timeval timeout = {5, 0};
static const struct timeval tottimeout = {60, 0};
@ -58,7 +117,7 @@ pmap_set (u_long program, u_long version, int protocol, u_short port)
struct pmap parms;
bool_t rslt;
get_myaddress (&myaddress);
__get_myaddress (&myaddress);
client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS,
timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL)
@ -92,7 +151,7 @@ pmap_unset (u_long program, u_long version)
struct pmap parms;
bool_t rslt;
get_myaddress (&myaddress);
__get_myaddress (&myaddress);
client = clntudp_bufcreate (&myaddress, PMAPPROG, PMAPVERS,
timeout, &socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
if (client == (CLIENT *) NULL)