summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/ppp/svr4/Makefile.top
blob: 253e48acb24197628660b5cf0ce4915d3234a272 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#
# ppp top level makefile for SVR4 and Solaris 2
#
# $Id$
#

include svr4/Makedefs

all:
	cd chat; $(MAKE) all
	cd pppd; $(MAKE) all
	cd pppstats; $(MAKE) all
	cd pppdump; $(MAKE) all
	cd svr4; $(MAKE) all

install: $(BINDIR) $(MANDIR)/man8 install-progs install-etcppp

install-progs:
	cd chat; $(MAKE) install
	cd pppd; $(MAKE) install
	cd pppstats; $(MAKE) install
	cd pppdump; $(MAKE) install
	cd svr4; $(MAKE) install

install-etcppp: $(ETCDIR) $(ETCDIR)/options $(ETCDIR)/pap-secrets \
	$(ETCDIR)/chap-secrets

$(ETCDIR)/options:
	cp etc.ppp/options $@
	chmod go-w $@
$(ETCDIR)/pap-secrets:
	$(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/pap-secrets
$(ETCDIR)/chap-secrets:
	$(INSTALL) -f $(ETCDIR) -m 600 etc.ppp/chap-secrets

$(BINDIR):
	mkdir -m 755 -p $@
$(MANDIR)/man8:
	mkdir -m 755 -p $@
$(ETCDIR):
	mkdir -m 755 -p $@

clean:
	rm -f *~
	cd chat; $(MAKE) clean
	cd pppd; $(MAKE) clean
	cd pppstats; $(MAKE) clean
	cd pppdump; $(MAKE) clean
	cd svr4; $(MAKE) clean

imple.c * Simplified front end to rpc. * * Copyright (C) 1984, Sun Microsystems, Inc. */ #include <stdio.h> #include <unistd.h> #include <rpc/rpc.h> #include <sys/socket.h> #include <netdb.h> #include <string.h> static struct callrpc_private { CLIENT *client; int socket; int oldprognum, oldversnum, valid; char *oldhost; } *callrpc_private; int callrpc (const char *host, const u_long prognum, const u_long versnum, const u_long procnum, const xdrproc_t inproc, const char *in, const xdrproc_t outproc, char *out) { register struct callrpc_private *crp = callrpc_private; struct sockaddr_in server_addr; enum clnt_stat clnt_stat; struct hostent *hp; struct timeval timeout, tottimeout; if (crp == 0) { crp = (struct callrpc_private *) calloc(1, sizeof(*crp)); if (crp == 0) return (0); callrpc_private = crp; } if (crp->oldhost == NULL) { crp->oldhost = malloc(256); crp->oldhost[0] = 0; crp->socket = RPC_ANYSOCK; } if (crp->valid && crp->oldprognum == prognum && crp->oldversnum == versnum && strcmp(crp->oldhost, host) == 0) { /* reuse old client */ } else { crp->valid = 0; (void) close(crp->socket); crp->socket = RPC_ANYSOCK; if (crp->client) { clnt_destroy(crp->client); crp->client = NULL; } if ((hp = gethostbyname(host)) == NULL) return ((int) RPC_UNKNOWNHOST); timeout.tv_usec = 0; timeout.tv_sec = 5; bcopy(hp->h_addr, (char *) &server_addr.sin_addr, hp->h_length); server_addr.sin_family = AF_INET; server_addr.sin_port = 0; if ((crp->client = clntudp_create(&server_addr, (u_long) prognum, (u_long) versnum, timeout, &crp->socket)) == NULL) return ((int) rpc_createerr.cf_stat); crp->valid = 1; crp->oldprognum = prognum; crp->oldversnum = versnum; (void) strcpy(crp->oldhost, host); } tottimeout.tv_sec = 25; tottimeout.tv_usec = 0; clnt_stat = clnt_call(crp->client, procnum, inproc, (char*)in, outproc, out, tottimeout); /* * if call failed, empty cache */ if (clnt_stat != RPC_SUCCESS) crp->valid = 0; return ((int) clnt_stat); }