1*9a747e4fSDavid du Colombier #include <plan9.h>
2*9a747e4fSDavid du Colombier #include <fcall.h>
3*9a747e4fSDavid du Colombier #include <u9fs.h>
4*9a747e4fSDavid du Colombier
5*9a747e4fSDavid du Colombier /*
6*9a747e4fSDavid du Colombier * return whether the user is authenticated.
7*9a747e4fSDavid du Colombier * uses berkeley-style rhosts ``authentication''.
8*9a747e4fSDavid du Colombier * this is only a good idea behind a firewall,
9*9a747e4fSDavid du Colombier * where you trust your network, and even then
10*9a747e4fSDavid du Colombier * not such a great idea. it's grandfathered.
11*9a747e4fSDavid du Colombier */
12*9a747e4fSDavid du Colombier
13*9a747e4fSDavid du Colombier static char*
rhostsauth(Fcall * rx,Fcall * tx)14*9a747e4fSDavid du Colombier rhostsauth(Fcall *rx, Fcall *tx)
15*9a747e4fSDavid du Colombier {
16*9a747e4fSDavid du Colombier USED(rx);
17*9a747e4fSDavid du Colombier USED(tx);
18*9a747e4fSDavid du Colombier
19*9a747e4fSDavid du Colombier return "u9fs rhostsauth: no authentication required";
20*9a747e4fSDavid du Colombier }
21*9a747e4fSDavid du Colombier
22*9a747e4fSDavid du Colombier static char*
rhostsattach(Fcall * rx,Fcall * tx)23*9a747e4fSDavid du Colombier rhostsattach(Fcall *rx, Fcall *tx)
24*9a747e4fSDavid du Colombier {
25*9a747e4fSDavid du Colombier USED(tx);
26*9a747e4fSDavid du Colombier
27*9a747e4fSDavid du Colombier if(ruserok(remotehostname, 0, rx->uname, rx->uname) < 0){
28*9a747e4fSDavid du Colombier fprint(2, "ruserok(%s, %s) not okay\n", remotehostname, rx->uname);
29*9a747e4fSDavid du Colombier return "u9fs: rhosts authentication failed";
30*9a747e4fSDavid du Colombier }
31*9a747e4fSDavid du Colombier return 0;
32*9a747e4fSDavid du Colombier }
33*9a747e4fSDavid du Colombier
34*9a747e4fSDavid du Colombier Auth authrhosts = {
35*9a747e4fSDavid du Colombier "rhosts",
36*9a747e4fSDavid du Colombier rhostsauth,
37*9a747e4fSDavid du Colombier rhostsattach,
38*9a747e4fSDavid du Colombier };
39