]>
Commit | Line | Data |
---|---|---|
8eda114a JT |
1 | /* |
2 | * m_certfp.c: propagates client certificate fingerprint information | |
3 | * | |
4 | * Copyright (C) 2010 Jilles Tjoelker | |
5 | * Copyright (C) 2010 charybdis development team | |
6 | * | |
7 | * Redistribution and use in source and binary forms, with or without | |
8 | * modification, are permitted provided that the following conditions are | |
9 | * met: | |
10 | * | |
11 | * 1.Redistributions of source code must retain the above copyright notice, | |
12 | * this list of conditions and the following disclaimer. | |
13 | * 2.Redistributions in binary form must reproduce the above copyright | |
14 | * notice, this list of conditions and the following disclaimer in the | |
15 | * documentation and/or other materials provided with the distribution. | |
16 | * | |
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |
20 | * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, | |
21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | |
22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | |
23 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
24 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | |
25 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | |
26 | * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
27 | * POSSIBILITY OF SUCH DAMAGE. | |
28 | */ | |
29 | ||
30 | #include "stdinc.h" | |
31 | #include "client.h" | |
32 | #include "common.h" | |
33 | #include "match.h" | |
34 | #include "hash.h" | |
35 | #include "ircd.h" | |
36 | #include "numeric.h" | |
37 | #include "send.h" | |
38 | #include "msg.h" | |
39 | #include "modules.h" | |
40 | ||
428ca87b | 41 | static int me_certfp(struct MsgBuf *, struct Client *, struct Client *, int, const char **); |
8eda114a JT |
42 | |
43 | struct Message certfp_msgtab = { | |
7baa37a9 | 44 | "CERTFP", 0, 0, 0, 0, |
bb73e588 | 45 | {mg_unreg, mg_ignore, mg_ignore, mg_ignore, {me_certfp, 2}, mg_ignore} |
8eda114a JT |
46 | }; |
47 | ||
48 | mapi_clist_av1 certfp_clist[] = { &certfp_msgtab, NULL }; | |
49 | ||
105a4985 | 50 | DECLARE_MODULE_AV2(certfp, NULL, NULL, certfp_clist, NULL, NULL, NULL, NULL, NULL); |
8eda114a JT |
51 | |
52 | /* | |
53 | ** me_certfp | |
54 | ** parv[1] = certfp string | |
55 | */ | |
56 | static int | |
428ca87b | 57 | me_certfp(struct MsgBuf *msgbuf_p, struct Client *client_p, struct Client *source_p, int parc, const char *parv[]) |
8eda114a JT |
58 | { |
59 | if (!IsPerson(source_p)) | |
60 | return 0; | |
8eda114a JT |
61 | |
62 | rb_free(source_p->certfp); | |
63 | source_p->certfp = NULL; | |
64 | if (!EmptyString(parv[1])) | |
65 | source_p->certfp = rb_strdup(parv[1]); | |
66 | return 0; | |
67 | } |