Magellan Linux

Annotation of /trunk/portmap/patches/portmap-5beta-compilation_fixes-3.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 153 - (hide annotations) (download)
Tue May 8 20:52:56 2007 UTC (17 years, 1 month ago) by niro
File size: 20486 byte(s)
-import

1 niro 153 Submitted By: Kevin P. Fleming <kpfleming at linuxfromscratch dot org>
2     Date: 2004-05-02
3     Initial Package Version: 5beta
4     Origin: http://archives.linuxfromscratch.org/mail-archives/blfs-dev/2003-January/001960.html
5     Description: The patch was created from the portmap modified package by Mark Heerdink.
6     This patch provides the following improvements:
7     * Link against dynamic tcp_wrappers.
8     * Create an install target for portmap.
9     * Compilation and security fixes.
10     * Documentation fixes.
11    
12     Originally created by Tushar Teredesai, updated by kpfleming to ensure
13     portmap will compile without tcp_wrappers installed.
14    
15     $LastChangedBy: randy $
16     $Date: 2007-05-08 20:29:19 $
17    
18     diff -Naur portmap_5beta/BLURB portmap_5beta.gimli/BLURB
19     --- portmap_5beta/BLURB 1996-07-06 16:09:46.000000000 -0500
20     +++ portmap_5beta.gimli/BLURB 2002-01-07 09:13:58.000000000 -0600
21     @@ -1,3 +1,6 @@
22     +
23     +###############################################################################
24     +
25     @(#) BLURB 1.5 96/07/06 23:09:45
26    
27     This is the fifth replacement portmapper release.
28     diff -Naur portmap_5beta/Makefile portmap_5beta.gimli/Makefile
29     --- portmap_5beta/Makefile 1996-07-06 16:06:19.000000000 -0500
30     +++ portmap_5beta.gimli/Makefile 2002-07-15 16:00:07.000000000 -0500
31     @@ -8,7 +8,7 @@
32     # if you disagree. See `man 3 syslog' for examples. Some syslog versions
33     # do not provide this flexibility.
34     #
35     -FACILITY=LOG_MAIL
36     +FACILITY=LOG_DAEMON
37    
38     # To disable tcp-wrapper style access control, comment out the following
39     # macro definitions. Access control can also be turned off by providing
40     @@ -16,7 +16,8 @@
41     # daemon, is always treated as an authorized host.
42    
43     HOSTS_ACCESS= -DHOSTS_ACCESS
44     -WRAP_LIB = $(WRAP_DIR)/libwrap.a
45     +#WRAP_LIB = $(WRAP_DIR)/libwrap.a
46     +WRAP_LIB = -lwrap
47    
48     # Comment out if your RPC library does not allocate privileged ports for
49     # requests from processes with root privilege, or the new portmap will
50     @@ -71,7 +72,7 @@
51     # With verbose logging on, HP-UX 9.x and AIX 4.1 leave zombies behind when
52     # SIGCHLD is not ignored. Enable next macro for a fix.
53     #
54     -# ZOMBIES = -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x
55     +ZOMBIES = -DIGNORE_SIGCHLD # AIX 4.x, HP-UX 9.x
56    
57     # Uncomment the following macro if your system does not have u_long.
58     #
59     @@ -81,7 +82,7 @@
60     # libwrap.a object library. WRAP_DIR should specify the directory with
61     # that library.
62    
63     -WRAP_DIR= ../tcp_wrappers
64     +WRAP_DIR= $(TCPD_DIR)
65    
66     # Auxiliary object files that may be missing from your C library.
67     #
68     @@ -99,22 +100,31 @@
69    
70     # Comment out if your compiler talks ANSI and understands const
71     #
72     -CONST = -Dconst=
73     +#CONST = -Dconst=
74    
75     ### End of configurable stuff.
76     ##############################
77    
78     +GLIBC=$(shell grep -s -c __GLIBC__ /usr/include/features.h)
79     +
80     +ifeq ($(GLIBC),0)
81     +LIBS += # -lbsd
82     +else
83     +LIBS += -lnsl
84     +endif
85     +
86     +
87     SHELL = /bin/sh
88    
89     -COPT = $(CONST) -Dperror=xperror $(HOSTS_ACCESS) $(CHECK_PORT) \
90     +COPT = $(CONST) $(HOSTS_ACCESS) $(CHECK_PORT) \
91     $(SYS) -DFACILITY=$(FACILITY) $(ULONG) $(ZOMBIES) $(SA_LEN) \
92     $(LOOPBACK) $(SETPGRP)
93     -CFLAGS = $(COPT) -O $(NSARCHS)
94     +CFLAGS = -Wall $(COPT) -O2 $(NSARCHS)
95     OBJECTS = portmap.o pmap_check.o from_local.o $(AUX)
96    
97     all: portmap pmap_dump pmap_set
98    
99     -portmap: $(OBJECTS) $(WRAP_DIR)/libwrap.a
100     +portmap: $(OBJECTS) # $(WRAP_DIR)/libwrap.a
101     $(CC) $(CFLAGS) -o $@ $(OBJECTS) $(WRAP_LIB) $(LIBS)
102    
103     pmap_dump: pmap_dump.c
104     @@ -129,6 +139,17 @@
105     get_myaddress: get_myaddress.c
106     cc $(CFLAGS) -DTEST -o $@ get_myaddress.c $(LIBS)
107    
108     +install: all
109     + install -o root -g root -m 0755 -s portmap ${BASEDIR}/sbin
110     + install -o root -g root -m 0755 -s pmap_dump ${BASEDIR}/usr/sbin
111     + install -o root -g root -m 0755 -s pmap_set ${BASEDIR}/usr/sbin
112     + install -o root -g root -m 0644 portmap.8 ${BASEDIR}/usr/share/man/man8
113     + install -o root -g root -m 0644 pmap_dump.8 ${BASEDIR}/usr/share/man/man8
114     + install -o root -g root -m 0644 pmap_set.8 ${BASEDIR}/usr/share/man/man8
115     +# cat README BLURB >${BASEDIR}/usr/share/doc/portmap/portmapper.txt
116     +# gzip -9f ${BASEDIR}/usr/share/doc/portmap/portmapper.txt
117     +
118     +
119     lint:
120     lint $(COPT) $(OBJECTS:%.o=%.c)
121    
122     diff -Naur portmap_5beta/daemon.c portmap_5beta.gimli/daemon.c
123     --- portmap_5beta/daemon.c 1992-06-11 15:53:12.000000000 -0500
124     +++ portmap_5beta.gimli/daemon.c 2002-01-07 09:22:24.000000000 -0600
125     @@ -36,16 +36,13 @@
126     #endif /* LIBC_SCCS and not lint */
127    
128     #include <fcntl.h>
129     -
130     -/* From unistd.h */
131     -#define STDIN_FILENO 0
132     -#define STDOUT_FILENO 1
133     -#define STDERR_FILENO 2
134     +#include <unistd.h>
135     +#include <sys/types.h>
136    
137     /* From paths.h */
138     #define _PATH_DEVNULL "/dev/null"
139    
140     -daemon(nochdir, noclose)
141     +int daemon(nochdir, noclose)
142     int nochdir, noclose;
143     {
144     int cpid;
145     diff -Naur portmap_5beta/from_local.c portmap_5beta.gimli/from_local.c
146     --- portmap_5beta/from_local.c 1996-05-31 08:52:58.000000000 -0500
147     +++ portmap_5beta.gimli/from_local.c 2002-01-07 09:25:49.000000000 -0600
148     @@ -35,7 +35,7 @@
149     * Mountain View, California 94043
150     */
151    
152     -#ifndef lint
153     +#ifdef lint
154     static char sccsid[] = "@(#) from_local.c 1.3 96/05/31 15:52:57";
155     #endif
156    
157     @@ -51,6 +51,9 @@
158     #include <net/if.h>
159     #include <sys/ioctl.h>
160     #include <syslog.h>
161     +#include <stdlib.h>
162     +#include <string.h>
163     +#include <unistd.h>
164    
165     #ifndef TRUE
166     #define TRUE 1
167     @@ -96,7 +99,7 @@
168    
169     /* find_local - find all IP addresses for this host */
170    
171     -find_local()
172     +int find_local()
173     {
174     struct ifconf ifc;
175     struct ifreq ifreq;
176     @@ -154,7 +157,7 @@
177    
178     /* from_local - determine whether request comes from the local system */
179    
180     -from_local(addr)
181     +int from_local(addr)
182     struct sockaddr_in *addr;
183     {
184     int i;
185     diff -Naur portmap_5beta/pmap_check.c portmap_5beta.gimli/pmap_check.c
186     --- portmap_5beta/pmap_check.c 1996-07-07 03:49:10.000000000 -0500
187     +++ portmap_5beta.gimli/pmap_check.c 2002-01-07 09:37:58.000000000 -0600
188     @@ -32,7 +32,7 @@
189     * Computing Science, Eindhoven University of Technology, The Netherlands.
190     */
191    
192     -#ifndef lint
193     +#ifdef lint
194     static char sccsid[] = "@(#) pmap_check.c 1.8 96/07/07 10:49:10";
195     #endif
196    
197     @@ -45,6 +45,11 @@
198     #include <netinet/in.h>
199     #include <rpc/rpcent.h>
200     #endif
201     +#include <sys/types.h>
202     +#include <unistd.h>
203     +#ifdef HOSTS_ACCESS
204     +#include <tcpd.h>
205     +#endif
206    
207     extern char *inet_ntoa();
208    
209     @@ -110,7 +113,7 @@
210    
211     /* check_default - additional checks for NULL, DUMP, GETPORT and unknown */
212    
213     -check_default(addr, proc, prog)
214     +int check_default(addr, proc, prog)
215     struct sockaddr_in *addr;
216     u_long proc;
217     u_long prog;
218     @@ -128,7 +131,7 @@
219    
220     /* check_privileged_port - additional checks for privileged-port updates */
221    
222     -check_privileged_port(addr, proc, prog, port)
223     +int check_privileged_port(addr, proc, prog, port)
224     struct sockaddr_in *addr;
225     u_long proc;
226     u_long prog;
227     @@ -173,7 +176,7 @@
228    
229     #else
230    
231     -check_setunset(addr, proc, prog, port)
232     +int check_setunset(addr, proc, prog, port)
233     struct sockaddr_in *addr;
234     u_long proc;
235     u_long prog;
236     @@ -197,7 +200,7 @@
237    
238     /* check_callit - additional checks for forwarded requests */
239    
240     -check_callit(addr, proc, prog, aproc)
241     +int check_callit(addr, proc, prog, aproc)
242     struct sockaddr_in *addr;
243     u_long proc;
244     u_long prog;
245     @@ -249,13 +252,13 @@
246     };
247     struct proc_map *procp;
248     static struct proc_map procmap[] = {
249     - PMAPPROC_CALLIT, "callit",
250     - PMAPPROC_DUMP, "dump",
251     - PMAPPROC_GETPORT, "getport",
252     - PMAPPROC_NULL, "null",
253     - PMAPPROC_SET, "set",
254     - PMAPPROC_UNSET, "unset",
255     - 0, 0,
256     + { PMAPPROC_CALLIT, "callit" },
257     + { PMAPPROC_DUMP, "dump" },
258     + { PMAPPROC_GETPORT, "getport" },
259     + { PMAPPROC_NULL, "null" },
260     + { PMAPPROC_SET, "set" },
261     + { PMAPPROC_UNSET, "unset" },
262     + { 0, 0 }
263     };
264    
265     /*
266     @@ -269,7 +272,7 @@
267    
268     if (prognum == 0) {
269     progname = "";
270     - } else if (rpc = getrpcbynumber((int) prognum)) {
271     + } else if ((rpc = getrpcbynumber((int) prognum)) != NULL) {
272     progname = rpc->r_name;
273     } else {
274     sprintf(progname = progbuf, "%lu", prognum);
275     diff -Naur portmap_5beta/pmap_dump.8 portmap_5beta.gimli/pmap_dump.8
276     --- portmap_5beta/pmap_dump.8 1969-12-31 18:00:00.000000000 -0600
277     +++ portmap_5beta.gimli/pmap_dump.8 2002-01-07 09:13:58.000000000 -0600
278     @@ -0,0 +1,24 @@
279     +.TH PMAP_DUMP 8 "21th June 1997" Linux "Linux Programmer's Manual"
280     +.SH NAME
281     +pmap_dump \- print a list of all registered RPC programs
282     +.SH SYNOPSIS
283     +.B pmap_dump
284     +.SH DESCRIPTION
285     +The
286     +.B pmap_dump
287     +command can be used to restart a running portmapper or to print
288     +a list of all registered RPC programs on the local host. If you
289     +want to use the program to restart the portmapper you have to
290     +redirect the output of
291     +.B pmap_dump
292     +to a file. After this you can restart the portmapper and restore
293     +the list of the registered RPC programs by feeding the output
294     +of
295     +.B pmap_dump
296     +to the
297     +.B pmap_set
298     +command.
299     +.SH SEE ALSO
300     +.BR pmap_set (8),
301     +.BR rpc.portmap (8)
302     +
303     diff -Naur portmap_5beta/pmap_dump.c portmap_5beta.gimli/pmap_dump.c
304     --- portmap_5beta/pmap_dump.c 1992-06-11 15:53:16.000000000 -0500
305     +++ portmap_5beta.gimli/pmap_dump.c 2002-01-07 09:20:19.000000000 -0600
306     @@ -5,7 +5,7 @@
307     * Computing Science, Eindhoven University of Technology, The Netherlands.
308     */
309    
310     -#ifndef lint
311     +#ifdef lint
312     static char sccsid[] = "@(#) pmap_dump.c 1.1 92/06/11 22:53:15";
313     #endif
314    
315     @@ -23,7 +23,20 @@
316    
317     static char *protoname();
318    
319     -main(argc, argv)
320     +#ifndef INADDR_LOOPBACK
321     +#define INADDR_LOOPBACK ntohl(inet_addr("127.0.0.1"))
322     +#endif
323     +
324     +static void get_myloopaddress(addrp)
325     +struct sockaddr_in *addrp;
326     +{
327     + memset((char *) addrp, 0, sizeof(*addrp));
328     + addrp->sin_family = AF_INET;
329     + addrp->sin_port = htons(PMAPPORT);
330     + addrp->sin_addr.s_addr = htonl(INADDR_LOOPBACK);
331     +}
332     +
333     +int main(argc, argv)
334     int argc;
335     char **argv;
336     {
337     @@ -31,7 +44,7 @@
338     register struct pmaplist *list;
339     register struct rpcent *rpc;
340    
341     - get_myaddress(&addr);
342     + get_myloopaddress(&addr);
343    
344     for (list = pmap_getmaps(&addr); list; list = list->pml_next) {
345     rpc = getrpcbynumber((int) list->pml_map.pm_prog);
346     diff -Naur portmap_5beta/pmap_set.8 portmap_5beta.gimli/pmap_set.8
347     --- portmap_5beta/pmap_set.8 1969-12-31 18:00:00.000000000 -0600
348     +++ portmap_5beta.gimli/pmap_set.8 2002-01-07 09:13:58.000000000 -0600
349     @@ -0,0 +1,24 @@
350     +.TH PMAP_SET 8 "21th June 1997" Linux "Linux Programmer's Manual"
351     +.SH NAME
352     +pmap_set \- set the list of registered RPC programs
353     +.SH SYNOPSIS
354     +.B pmap_set
355     +.SH DESCRIPTION
356     +The
357     +.B pmap_set
358     +command can be used to restart a running portmapper or to set
359     +the list of registered RPC programs on the local host. If you
360     +want to use the program to restart the portmapper you have to
361     +redirect the output of
362     +.B pmap_dump
363     +to a file. After this you can restart the portmapper and restore
364     +the list of the registered RPC programs by feeding the output
365     +of
366     +.B pmap_dump
367     +to the
368     +.B pmap_set
369     +command.
370     +.SH SEE ALSO
371     +.BR pmap_dump (8),
372     +.BR rpc.portmap (8)
373     +
374     diff -Naur portmap_5beta/pmap_set.c portmap_5beta.gimli/pmap_set.c
375     --- portmap_5beta/pmap_set.c 1996-07-06 16:06:23.000000000 -0500
376     +++ portmap_5beta.gimli/pmap_set.c 2002-01-07 09:22:10.000000000 -0600
377     @@ -5,7 +5,7 @@
378     * Computing Science, Eindhoven University of Technology, The Netherlands.
379     */
380    
381     -#ifndef lint
382     +#ifdef lint
383     static char sccsid[] = "@(#) pmap_set.c 1.2 96/07/06 23:06:23";
384     #endif
385    
386     @@ -17,7 +17,9 @@
387     #include <rpc/rpc.h>
388     #include <rpc/pmap_clnt.h>
389    
390     -main(argc, argv)
391     +int parse_line(char *buf, u_long *prog, u_long *vers, int *prot, unsigned *port);
392     +
393     +int main(argc, argv)
394     int argc;
395     char **argv;
396     {
397     @@ -40,16 +42,16 @@
398    
399     /* parse_line - convert line to numbers */
400    
401     -parse_line(buf, prog, vers, prot, port)
402     +int parse_line(buf, prog, vers, prot, port)
403     char *buf;
404     u_long *prog;
405     u_long *vers;
406     int *prot;
407     unsigned *port;
408     {
409     - char proto_name[BUFSIZ];
410     + char proto_name[256];
411    
412     - if (sscanf(buf, "%lu %lu %s %u", prog, vers, proto_name, port) != 4) {
413     + if (sscanf(buf, "%lu %lu %255s %u", prog, vers, proto_name, port) != 4) {
414     return (0);
415     }
416     if (strcmp(proto_name, "tcp") == 0) {
417     diff -Naur portmap_5beta/portmap.8 portmap_5beta.gimli/portmap.8
418     --- portmap_5beta/portmap.8 1969-12-31 18:00:00.000000000 -0600
419     +++ portmap_5beta.gimli/portmap.8 2002-01-07 09:13:58.000000000 -0600
420     @@ -0,0 +1,146 @@
421     +.\" Copyright (c) 1987 Sun Microsystems
422     +.\" Copyright (c) 1990, 1991 The Regents of the University of California.
423     +.\" All rights reserved.
424     +.\"
425     +.\" Redistribution and use in source and binary forms, with or without
426     +.\" modification, are permitted provided that the following conditions
427     +.\" are met:
428     +.\" 1. Redistributions of source code must retain the above copyright
429     +.\" notice, this list of conditions and the following disclaimer.
430     +.\" 2. Redistributions in binary form must reproduce the above copyright
431     +.\" notice, this list of conditions and the following disclaimer in the
432     +.\" documentation and/or other materials provided with the distribution.
433     +.\" 3. All advertising materials mentioning features or use of this software
434     +.\" must display the following acknowledgement:
435     +.\" This product includes software developed by the University of
436     +.\" California, Berkeley and its contributors.
437     +.\" 4. Neither the name of the University nor the names of its contributors
438     +.\" may be used to endorse or promote products derived from this software
439     +.\" without specific prior written permission.
440     +.\"
441     +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
442     +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
443     +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
444     +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
445     +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
446     +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
447     +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
448     +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
449     +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
450     +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
451     +.\" SUCH DAMAGE.
452     +.\"
453     +.\" from: @(#)portmap.8 5.3 (Berkeley) 3/16/91
454     +.\" $Id: portmap-5beta-compilation_fixes-3.patch,v 1.1 2007-05-08 20:29:19 niro Exp $
455     +.\"
456     +.Dd March 16, 1991
457     +.Dt PORTMAP 8
458     +.Os BSD 4.3
459     +.Sh NAME
460     +.Nm portmap
461     +.Nd
462     +.Tn DARPA
463     +port to
464     +.Tn RPC
465     +program number mapper
466     +.Sh SYNOPSIS
467     +.Nm portmap
468     +.Op Fl d
469     +.Op Fl v
470     +.Sh DESCRIPTION
471     +.Nm Portmap
472     +is a server that converts
473     +.Tn RPC
474     +program numbers into
475     +.Tn DARPA
476     +protocol port numbers.
477     +It must be running in order to make
478     +.Tn RPC
479     +calls.
480     +.Pp
481     +When an
482     +.Tn RPC
483     +server is started, it will tell
484     +.Nm portmap
485     +what port number it is listening to, and what
486     +.Tn RPC
487     +program numbers it is prepared to serve.
488     +When a client wishes to make an
489     +.Tn RPC
490     +call to a given program number,
491     +it will first contact
492     +.Nm portmap
493     +on the server machine to determine
494     +the port number where
495     +.Tn RPC
496     +packets should be sent.
497     +.Pp
498     +.Nm Portmap
499     +must be started before any
500     +.Tn RPC
501     +servers are invoked.
502     +.Pp
503     +Normally
504     +.Nm portmap
505     +forks and dissociates itself from the terminal
506     +like any other daemon.
507     +.Nm Portmap
508     +then logs errors using
509     +.Xr syslog 3 .
510     +.Pp
511     +Option available:
512     +.Bl -tag -width Ds
513     +.It Fl d
514     +(debug) prevents
515     +.Nm portmap
516     +from running as a daemon,
517     +and causes errors and debugging information
518     +to be printed to the standard error output.
519     +.It Fl v
520     +(verbose) run
521     +.Nm portmap
522     +in verbose mode.
523     +.El
524     +
525     +This
526     +.Nm portmap
527     +version is protected by the
528     +.Nm tcp_wrapper
529     +library. You have to give the clients access to
530     +.Nm portmap
531     +if they should be allowed to use it. To allow connects from clients of
532     +the .bar.com domain you could use the following line in /etc/hosts.allow:
533     +
534     +portmap: .bar.com
535     +
536     +You have to use the daemon name
537     +.Nm portmap
538     +for the daemon name (even if the binary has a different name). For the
539     +client names you can only use the keyword ALL or IP addresses (NOT
540     +host or domain names).
541     +
542     +For further information please have a look at the
543     +.Xr tcpd 8 ,
544     +.Xr hosts_allow 5
545     +and
546     +.Xr hosts_access 5
547     +manual pages.
548     +
549     +.Sh SEE ALSO
550     +.Xr inetd.conf 5 ,
551     +.Xr rpcinfo 8 ,
552     +.Xr pmap_set 8 ,
553     +.Xr pmap_dump 8 ,
554     +.Xr inetd 8
555     +.Xr tcpd 8
556     +.Xr hosts_access 5
557     +.Xr hosts_options 5
558     +.Sh BUGS
559     +If
560     +.Nm portmap
561     +crashes, all servers must be restarted.
562     +.Sh HISTORY
563     +The
564     +.Nm
565     +command appeared in
566     +.Bx 4.3
567     diff -Naur portmap_5beta/portmap.c portmap_5beta.gimli/portmap.c
568     --- portmap_5beta/portmap.c 1996-07-06 16:06:24.000000000 -0500
569     +++ portmap_5beta.gimli/portmap.c 2002-01-07 09:26:41.000000000 -0600
570     @@ -37,7 +37,7 @@
571     All rights reserved.\n";
572     #endif /* not lint */
573    
574     -#ifndef lint
575     +#ifdef lint
576     static char sccsid[] = "@(#) portmap.c 1.6 96/07/06 23:06:23";
577     #endif /* not lint */
578    
579     @@ -80,6 +80,9 @@
580     * Mountain View, California 94043
581     */
582    
583     +#if defined(__GLIBC__)
584     +#include <rpc/xdr.h>
585     +#endif /* __GLIBC__ */
586     #include <rpc/rpc.h>
587     #include <rpc/pmap_prot.h>
588     #include <stdio.h>
589     @@ -94,6 +97,8 @@
590     #ifdef SYSV40
591     #include <netinet/in.h>
592     #endif
593     +#include <sys/types.h>
594     +#include <unistd.h>
595    
596     extern char *strerror();
597     #include <stdlib.h>
598     @@ -148,7 +153,7 @@
599     #endif
600     #endif
601    
602     -main(argc, argv)
603     +int main(argc, argv)
604     int argc;
605     char **argv;
606     {
607     @@ -350,7 +355,7 @@
608     */
609     /* remote host authorization check */
610     check_default(svc_getcaller(xprt), rqstp->rq_proc, (u_long) 0);
611     - if (!svc_sendreply(xprt, xdr_void, (caddr_t)0) && debugging) {
612     + if (!svc_sendreply(xprt, (xdrproc_t) xdr_void, (caddr_t)0) && debugging) {
613     abort();
614     }
615     break;
616     @@ -359,7 +364,7 @@
617     /*
618     * Set a program,version to port mapping
619     */
620     - if (!svc_getargs(xprt, xdr_pmap, &reg))
621     + if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) &reg))
622     svcerr_decode(xprt);
623     else {
624     /* reject non-local requests, protect priv. ports */
625     @@ -401,7 +406,7 @@
626     ans = 1;
627     }
628     done:
629     - if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) &&
630     + if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&ans)) &&
631     debugging) {
632     (void) fprintf(stderr, "svc_sendreply\n");
633     abort();
634     @@ -413,7 +418,7 @@
635     /*
636     * Remove a program,version to port mapping.
637     */
638     - if (!svc_getargs(xprt, xdr_pmap, &reg))
639     + if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) &reg))
640     svcerr_decode(xprt);
641     else {
642     ans = 0;
643     @@ -447,7 +452,7 @@
644     prevpml->pml_next = pml;
645     free(t);
646     }
647     - if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&ans)) &&
648     + if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&ans)) &&
649     debugging) {
650     (void) fprintf(stderr, "svc_sendreply\n");
651     abort();
652     @@ -459,7 +464,7 @@
653     /*
654     * Lookup the mapping for a program,version and return its port
655     */
656     - if (!svc_getargs(xprt, xdr_pmap, &reg))
657     + if (!svc_getargs(xprt, (xdrproc_t) xdr_pmap, (caddr_t) &reg))
658     svcerr_decode(xprt);
659     else {
660     /* remote host authorization check */
661     @@ -474,7 +479,7 @@
662     port = fnd->pml_map.pm_port;
663     else
664     port = 0;
665     - if ((!svc_sendreply(xprt, xdr_int, (caddr_t)&port)) &&
666     + if ((!svc_sendreply(xprt, (xdrproc_t) xdr_int, (caddr_t)&port)) &&
667     debugging) {
668     (void) fprintf(stderr, "svc_sendreply\n");
669     abort();
670     @@ -486,7 +491,7 @@
671     /*
672     * Return the current set of mapped program,version
673     */
674     - if (!svc_getargs(xprt, xdr_void, NULL))
675     + if (!svc_getargs(xprt, (xdrproc_t) xdr_void, (caddr_t) NULL))
676     svcerr_decode(xprt);
677     else {
678     /* remote host authorization check */
679     @@ -497,7 +502,7 @@
680     } else {
681     p = pmaplist;
682     }
683     - if ((!svc_sendreply(xprt, xdr_pmaplist,
684     + if ((!svc_sendreply(xprt, (xdrproc_t) xdr_pmaplist,
685     (caddr_t)&p)) && debugging) {
686     (void) fprintf(stderr, "svc_sendreply\n");
687     abort();
688     @@ -645,7 +650,7 @@
689     timeout.tv_sec = 5;
690     timeout.tv_usec = 0;
691     a.rmt_args.args = buf;
692     - if (!svc_getargs(xprt, xdr_rmtcall_args, &a))
693     + if (!svc_getargs(xprt, (xdrproc_t) xdr_rmtcall_args, (caddr_t) &a))
694     return;
695     /* host and service access control */
696     if (!check_callit(svc_getcaller(xprt),
697     @@ -674,9 +679,9 @@
698     au->aup_uid, au->aup_gid, au->aup_len, au->aup_gids);
699     }
700     a.rmt_port = (u_long)port;
701     - if (clnt_call(client, a.rmt_proc, xdr_opaque_parms, &a,
702     - xdr_len_opaque_parms, &a, timeout) == RPC_SUCCESS) {
703     - svc_sendreply(xprt, xdr_rmtcall_result, (caddr_t)&a);
704     + if (clnt_call(client, a.rmt_proc, (xdrproc_t) xdr_opaque_parms, (char*) &a,
705     + (xdrproc_t) xdr_len_opaque_parms, (char*) &a, timeout) == RPC_SUCCESS) {
706     + svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (caddr_t)&a);
707     }
708     AUTH_DESTROY(client->cl_auth);
709     clnt_destroy(client);