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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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
f8509d27e453 Clean up on traces
Sebastien Decugis <sdecugis@nict.go.jp>
parents: 377
diff changeset
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 }
"Welcome to our mercurial repository"