Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / nfs-utils / utils / statd / stat.c
blob799239f1d956f668c0cf2c79c98175914740b0b4
1 /*
2 * Copyright (C) 1995, 1997, 1999 Jeffrey A. Uphoff
3 * Modified by Olaf Kirch, 1996.
5 * NSM for Linux.
6 */
8 #ifdef HAVE_CONFIG_H
9 #include <config.h>
10 #endif
12 #include <netdb.h>
13 #include "statd.h"
15 /*
16 * Services SM_STAT requests.
18 * According the the X/Open spec's on this procedure: "Implementations
19 * should not rely on this procedure being operative. In many current
20 * implementations of the NSM it will always return a 'STAT_FAIL'
21 * status." My implementation is operative; it returns 'STAT_SUCC'
22 * whenever it can resolve the hostname that it's being asked to
23 * monitor, and returns 'STAT_FAIL' otherwise.
25 * sm_inter.x says the 'state' returned should be
26 * "state number of site sm_name". It is not clear how to get this.
27 * X/Open says:
28 * STAT_SUCC
29 * The NSM will monitor the given host. "sm_stat_res.state" contains
30 * the state of the NSM.
31 * Which implies that 'state' is the state number of the *local* NSM.
32 * href=http://www.opengroup.org/onlinepubs/9629799/SM_STAT.htm
34 * We return the *local* state as
35 * 1/ We have easy access to it.
36 * 2/ It might be useful to a remote client who needs it and has no
37 * other way to get it.
38 * 3/ That's what we always did in the past.
40 struct sm_stat_res *
41 sm_stat_1_svc (struct sm_name *argp, struct svc_req *rqstp)
43 static sm_stat_res result;
45 if (gethostbyname (argp->mon_name) == NULL) {
46 note (N_WARNING, "gethostbyname error for %s", argp->mon_name);
47 result.res_stat = STAT_FAIL;
48 dprintf (N_DEBUG, "STAT_FAIL for %s", argp->mon_name);
49 } else {
50 result.res_stat = STAT_SUCC;
51 dprintf (N_DEBUG, "STAT_SUCC for %s", argp->mon_name);
53 result.state = MY_STATE;
54 return(&result);