Blame


1 6e527fbc 2005-02-13 devnull /*
2 6e527fbc 2005-02-13 devnull * This is just a repository for a password.
3 6e527fbc 2005-02-13 devnull * We don't want to encourage this, there's
4 6e527fbc 2005-02-13 devnull * no server side.
5 fb7a39bc 2005-02-13 devnull *
6 fb7a39bc 2005-02-13 devnull * Client:
7 fb7a39bc 2005-02-13 devnull * start proto=pass ...
8 fb7a39bc 2005-02-13 devnull * read password
9 6e527fbc 2005-02-13 devnull */
10 6e527fbc 2005-02-13 devnull
11 fb7a39bc 2005-02-13 devnull #include "std.h"
12 6e527fbc 2005-02-13 devnull #include "dat.h"
13 6e527fbc 2005-02-13 devnull
14 6e527fbc 2005-02-13 devnull static int
15 fb7a39bc 2005-02-13 devnull passproto(Conv *c)
16 6e527fbc 2005-02-13 devnull {
17 6e527fbc 2005-02-13 devnull Key *k;
18 fa325e9b 2020-01-10 cross
19 fb7a39bc 2005-02-13 devnull k = keyfetch(c, "%A", c->attr);
20 fb7a39bc 2005-02-13 devnull if(k == nil)
21 fb7a39bc 2005-02-13 devnull return -1;
22 fb7a39bc 2005-02-13 devnull c->state = "write";
23 fa325e9b 2020-01-10 cross convprint(c, "%q %q",
24 fb7a39bc 2005-02-13 devnull strfindattr(k->attr, "user"),
25 fb7a39bc 2005-02-13 devnull strfindattr(k->privattr, "!password"));
26 fb7a39bc 2005-02-13 devnull return 0;
27 6e527fbc 2005-02-13 devnull }
28 6e527fbc 2005-02-13 devnull
29 fb7a39bc 2005-02-13 devnull static Role passroles[] = {
30 fb7a39bc 2005-02-13 devnull "client", passproto,
31 fb7a39bc 2005-02-13 devnull 0
32 fb7a39bc 2005-02-13 devnull };
33 6e527fbc 2005-02-13 devnull
34 6e527fbc 2005-02-13 devnull Proto pass =
35 6e527fbc 2005-02-13 devnull {
36 fb7a39bc 2005-02-13 devnull "pass",
37 fb7a39bc 2005-02-13 devnull passroles,
38 fb7a39bc 2005-02-13 devnull "user? !password?",
39 fb7a39bc 2005-02-13 devnull nil,
40 1f8a8072 2005-03-15 devnull nil
41 6e527fbc 2005-02-13 devnull };