Mercurial > hg > waaad
annotate extensions/radius_gw/sub_debug.c @ 415:540ed390c04f
Added sess_destroy function
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Tue, 16 Jun 2009 13:37:46 +0900 |
parents | 3a8e91184d4d |
children | 7de6e87d752e |
rev | line source |
---|---|
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
1 /********************************************************************************************************* |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
2 * Software License Agreement (BSD License) * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
3 * Author: Sebastien Decugis <sdecugis@nict.go.jp> * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
4 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
5 * Copyright (c) 2009, WIDE Project and NICT * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
6 * All rights reserved. * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
7 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
8 * Redistribution and use of this software in source and binary forms, with or without modification, are * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
9 * permitted provided that the following conditions are met: * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
10 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
11 * * Redistributions of source code must retain the above * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
12 * copyright notice, this list of conditions and the * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
13 * following disclaimer. * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
14 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
15 * * Redistributions in binary form must reproduce the above * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
16 * copyright notice, this list of conditions and the * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
17 * following disclaimer in the documentation and/or other * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
18 * materials provided with the distribution. * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
19 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
20 * * Neither the name of the WIDE Project or NICT nor the * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
21 * names of its contributors may be used to endorse or * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
22 * promote products derived from this software without * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
23 * specific prior written permission of WIDE Project and * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
24 * NICT. * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
25 * * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
27 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
28 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
29 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
30 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
32 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
33 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
34 *********************************************************************************************************/ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
35 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
36 /* Debug sub extension for radius_gw */ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
37 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
38 #define IN_EXTENSION |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
39 #define DEFINE_DEBUG_MACRO sub_debug |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
40 #define DECLARE_API_POINTERS |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
41 #include <waaad/waaad.h> |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
42 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
43 #include "rg_common.h" |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
44 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
45 int sub_debug_verbosity = 2; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
46 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
47 struct rga_conf_state { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
48 char * conffile; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
49 void * waaad_handle; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
50 void (*waaad_msg_dump_walk)( int level, void * obj ); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
51 }; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
52 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
53 static struct rga_conf_state * debug_conf_parse(char * conffile) |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
54 { |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
55 struct rga_conf_state * cs; |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
56 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
57 TRACE_ENTRY("%p", conffile); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
58 |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
59 CHECK_MALLOC_DO( cs = malloc(sizeof(struct rga_conf_state)), return NULL ); |
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
60 memset(cs, 0, sizeof(struct rga_conf_state)); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
61 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
62 if (conffile) |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
63 cs->conffile = conffile; |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
64 else |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
65 cs->conffile = "-"; |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
66 |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
67 /* Resolve the msg_dump_walk function from main waaad image */ |
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
68 CHECK_FCT_DO( rg_pointers_init(&cs->waaad_handle), return NULL ); |
406
3a8e91184d4d
Added code to handle RADIUS client deconnection
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
385
diff
changeset
|
69 rg_pointers_resolve(cs->waaad_msg_dump_walk, cs->waaad_handle, "msg_dump_walk", NULL); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
70 |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
71 TRACE_DEBUG(INFO, "Sub extension Debug initialized with id: '%s'", cs->conffile); |
376
98806d0e175f
Unified debug messages when loading extensions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
375
diff
changeset
|
72 |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
73 return cs; |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
74 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
75 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
76 static void debug_conf_free(struct rga_conf_state * cs) |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
77 { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
78 TRACE_ENTRY("%p", cs); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
79 CHECK_PARAMS_DO(cs, return); |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
80 rg_pointers_fini(&cs->waaad_handle); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
81 free(cs); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
82 return; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
83 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
84 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
85 #include "rgw_msg_attrtype.c" |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
86 #include "rgw_msg_codes.c" |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
87 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
88 static void debug_dump_radius(struct radius_msg *msg) |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
89 { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
90 unsigned char *auth; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
91 size_t i; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
92 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
93 auth = &(msg->hdr->authenticator[0]); |
378 | 94 log_debug(" --- Dump method 1:\n"); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
95 |
380
0183e656d6ab
Fix strings in debug extension also
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
378
diff
changeset
|
96 log_debug(" id : 0x%02hhx, code: %hhd (%s)\n", msg->hdr->identifier, msg->hdr->code, rgw_msg_code_str(msg->hdr->code)); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
97 log_debug(" auth: %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx\n", |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
98 auth[0], auth[1], auth[2], auth[3], |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
99 auth[4], auth[5], auth[6], auth[7]); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
100 log_debug(" %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx %02hhx\n", |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
101 auth[8], auth[9], auth[10], auth[11], |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
102 auth[12], auth[13], auth[14], auth[15]); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
103 for (i = 0; i < msg->attr_used; i++) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
104 struct radius_attr_hdr *attr = (struct radius_attr_hdr *)(msg->buf + msg->attr_pos[i]); |
380
0183e656d6ab
Fix strings in debug extension also
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
378
diff
changeset
|
105 log_debug(" - len:%3hhd, type:0x%02hhx (%s)\n", attr->length, attr->type, rgw_msg_attrtype_str(attr->type)); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
106 /* If we need to dump the value, it's better to call directly radius_msg_dump instead... */ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
107 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
108 |
378 | 109 log_debug(" --- Dump method 2:\n"); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
110 radius_msg_dump(msg); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
111 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
112 |
415
540ed390c04f
Added sess_destroy function
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
406
diff
changeset
|
113 static int debug_rad_req(struct rga_conf_state * cs, sess_id_t * session, struct radius_msg * rad_req, struct radius_msg ** rad_ans, msg_t ** diam_fw, void * cli ) |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
114 { |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
115 TRACE_ENTRY("%p %p %p %p %p %p", cs, session, rad_req, rad_ans, diam_fw, cli); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
116 |
415
540ed390c04f
Added sess_destroy function
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
406
diff
changeset
|
117 log_debug("sub_debug ( c:'%s' ) state dump start for incoming RADIUS message (session: %p)\n", cs->conffile, session); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
118 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
119 if (!rad_req) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
120 log_debug(" RADIUS request: NULL pointer\n"); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
121 } else { |
378 | 122 log_debug(" RADIUS request (%p) DUMP:\n", rad_req); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
123 debug_dump_radius(rad_req); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
124 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
125 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
126 if (!rad_ans || ! *rad_ans) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
127 log_debug(" RADIUS answer: NULL pointer\n"); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
128 } else { |
378 | 129 log_debug(" RADIUS answer (%p) DUMP:\n", *rad_ans); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
130 debug_dump_radius(*rad_ans); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
131 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
132 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
133 if (!diam_fw || ! *diam_fw) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
134 log_debug(" Diameter message: NULL pointer\n"); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
135 } else { |
378 | 136 log_debug(" Diameter message (%p) DUMP:\n", *diam_fw); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
137 (*cs->waaad_msg_dump_walk)(0, *diam_fw); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
138 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
139 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
140 log_debug("sub_debug ( c:'%s' ) state dump complete\n", cs->conffile); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
141 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
142 return 0; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
143 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
144 |
415
540ed390c04f
Added sess_destroy function
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
406
diff
changeset
|
145 static int debug_diam_ans(struct rga_conf_state * cs, sess_id_t * session, msg_t ** diam_ans, struct radius_msg ** rad_fw, void * cli ) |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
146 { |
385
03b512313cc1
Added code to handle sessions
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
380
diff
changeset
|
147 TRACE_ENTRY("%p %p %p %p %p", cs, session, diam_ans, rad_fw, cli); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
148 CHECK_PARAMS(cs); |
415
540ed390c04f
Added sess_destroy function
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
406
diff
changeset
|
149 log_debug("sub_debug ( c:'%s' ) state dump start for incoming Diameter answer (session: %p)\n", cs->conffile, session); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
150 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
151 if (!diam_ans || ! *diam_ans) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
152 log_debug(" Diameter message: NULL pointer\n"); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
153 } else { |
378 | 154 log_debug(" Diameter message (%p) DUMP:\n", *diam_ans); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
155 debug_dump_diameter(*diam_ans); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
156 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
157 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
158 if (!rad_fw || ! *rad_fw) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
159 log_debug(" RADIUS answer: NULL pointer\n"); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
160 } else { |
378 | 161 log_debug(" RADIUS answer (%p) DUMP:\n", *rad_fw); |
375
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
162 debug_dump_radius(*rad_fw); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
163 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
164 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
165 log_debug("sub_debug ( c:'%s' ) state dump complete\n", cs->conffile); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
166 return 0; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
167 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
168 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
169 int rga_register(int version, waaad_api_t * waaad_api, struct radius_gw_api * api) |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
170 { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
171 TRACE_ENTRY("%d %p %p", version, waaad_api, api); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
172 CHECK_PARAMS( waaad_api && api ); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
173 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
174 if (version != RADIUS_GW_API_VER) { |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
175 log_error("ABI version mismatch, please recompile this extension (%s)\n", __FILE__); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
176 return EINVAL; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
177 } |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
178 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
179 /* Required to use the waaad api from this sub-extension: */ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
180 EXTENSION_API_INIT_INTERN( API_MODULE_ALL, "sub_debug", waaad_api ); |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
181 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
182 /* Initialize the radius_gw api callbacks */ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
183 api->rga_conf_parse_cb = debug_conf_parse; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
184 api->rga_conf_free_cb = debug_conf_free; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
185 api->rga_rad_req_cb = debug_rad_req; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
186 api->rga_diam_ans_cb = debug_diam_ans; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
187 |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
188 /* We're done, we must not initialize any state here since the extension must be re-entrant, but in sample_conf_parse */ |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
189 return 0; |
52b7e13cb1e7
Added a quick and dirty debug subextension
Sebastien Decugis <sdecugis@nict.go.jp>
parents:
diff
changeset
|
190 } |