Changeset 1085:7d7266115a34 in freeDiameter for libfdcore
- Timestamp:
- May 3, 2013, 8:20:56 PM (11 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libfdcore
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdcore/config.c
r1034 r1085 81 81 } 82 82 83 void fd_conf_dump()83 DECLARE_FD_DUMP_PROTOTYPE(fd_conf_dump) 84 84 { 85 if (!TRACE_BOOL(INFO)) 86 return; 87 88 fd_log_debug("-- Configuration :"); 89 fd_log_debug(" Debug trace level ...... : %+d", fd_g_debug_lvl); 90 fd_log_debug(" Configuration file ..... : %s", fd_g_config->cnf_file); 91 fd_log_debug(" Diameter Identity ...... : %s (l:%Zi)", fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len); 92 fd_log_debug(" Diameter Realm ......... : %s (l:%Zi)", fd_g_config->cnf_diamrlm, fd_g_config->cnf_diamrlm_len); 93 fd_log_debug(" Tc Timer ............... : %u", fd_g_config->cnf_timer_tc); 94 fd_log_debug(" Tw Timer ............... : %u", fd_g_config->cnf_timer_tw); 95 fd_log_debug(" Local port ............. : %hu", fd_g_config->cnf_port); 96 fd_log_debug(" Local secure port ...... : %hu", fd_g_config->cnf_port_tls); 97 fd_log_debug(" Number of SCTP streams . : %hu", fd_g_config->cnf_sctp_str); 98 fd_log_debug(" Number of server threads : %hu", fd_g_config->cnf_dispthr); 85 size_t o=0; 86 if (!offset) 87 offset = &o; 88 89 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{freeDiameter configuration}(@%p): \n", fd_g_config), return NULL); 90 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Default trace level .... : %+d\n", fd_g_debug_lvl), return NULL); 91 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Configuration file ..... : %s\n", fd_g_config->cnf_file), return NULL); 92 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Diameter Identity ...... : %s (l:%Zi)\n", fd_g_config->cnf_diamid, fd_g_config->cnf_diamid_len), return NULL); 93 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Diameter Realm ......... : %s (l:%Zi)\n", fd_g_config->cnf_diamrlm, fd_g_config->cnf_diamrlm_len), return NULL); 94 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Tc Timer ............... : %u\n", fd_g_config->cnf_timer_tc), return NULL); 95 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Tw Timer ............... : %u\n", fd_g_config->cnf_timer_tw), return NULL); 96 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local port ............. : %hu\n", fd_g_config->cnf_port), return NULL); 97 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local secure port ...... : %hu\n", fd_g_config->cnf_port_tls), return NULL); 98 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Number of SCTP streams . : %hu\n", fd_g_config->cnf_sctp_str), return NULL); 99 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Number of server threads : %hu\n", fd_g_config->cnf_dispthr), return NULL); 99 100 if (FD_IS_LIST_EMPTY(&fd_g_config->cnf_endpoints)) { 100 fd_log_debug(" Local endpoints ........ : Default (use all available)");101 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local endpoints ........ : Default (use all available)\n"), return NULL); 101 102 } else { 102 fd_log_debug(" Local endpoints ........ : ");103 fd_ep_dump( 29, &fd_g_config->cnf_endpoints);103 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local endpoints ........ : \n"), return NULL); 104 CHECK_MALLOC_DO( fd_ep_dump( FD_DUMP_STD_PARAMS, 29, &fd_g_config->cnf_endpoints ), return NULL); 104 105 } 105 106 if (FD_IS_LIST_EMPTY(&fd_g_config->cnf_apps)) { 106 fd_log_debug(" Local applications ..... : (none)");107 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local applications ..... : (none)\n"), return NULL); 107 108 } else { 108 109 struct fd_list * li = fd_g_config->cnf_apps.next; 109 fd_log_debug(" Local applications ..... : ");110 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Local applications ..... : \n"), return NULL); 110 111 while (li != &fd_g_config->cnf_apps) { 111 112 struct fd_app * app = (struct fd_app *)li; 112 if (li != fd_g_config->cnf_apps.next) fd_log_debug(" "); 113 fd_log_debug("App: %u\t%s%s\tVnd: %u", 113 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " App: %u\t%s%s\tVnd: %u\n", 114 114 app->appid, 115 115 app->flags.auth ? "Au" : "--", 116 116 app->flags.acct ? "Ac" : "--", 117 app->vndid) ;117 app->vndid), return NULL); 118 118 li = li->next; 119 119 } 120 120 } 121 121 122 fd_log_debug(" Flags : - IP ........... : %s", fd_g_config->cnf_flags.no_ip4 ? "DISABLED" : "Enabled");123 fd_log_debug(" - IPv6 ......... : %s", fd_g_config->cnf_flags.no_ip6 ? "DISABLED" : "Enabled");124 fd_log_debug(" - Relay app .... : %s", fd_g_config->cnf_flags.no_fwd ? "DISABLED" : "Enabled");125 fd_log_debug(" - TCP .......... : %s", fd_g_config->cnf_flags.no_tcp ? "DISABLED" : "Enabled");122 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Flags : - IP ........... : %s\n", fd_g_config->cnf_flags.no_ip4 ? "DISABLED" : "Enabled"), return NULL); 123 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - IPv6 ......... : %s\n", fd_g_config->cnf_flags.no_ip6 ? "DISABLED" : "Enabled"), return NULL); 124 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - Relay app .... : %s\n", fd_g_config->cnf_flags.no_fwd ? "DISABLED" : "Enabled"), return NULL); 125 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - TCP .......... : %s\n", fd_g_config->cnf_flags.no_tcp ? "DISABLED" : "Enabled"), return NULL); 126 126 #ifdef DISABLE_SCTP 127 fd_log_debug(" - SCTP ......... : DISABLED (at compilation)");127 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - SCTP ......... : DISABLED (at compilation)\n"), return NULL); 128 128 #else /* DISABLE_SCTP */ 129 fd_log_debug(" - SCTP ......... : %s", fd_g_config->cnf_flags.no_sctp ? "DISABLED" : "Enabled");129 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - SCTP ......... : %s\n", fd_g_config->cnf_flags.no_sctp ? "DISABLED" : "Enabled"), return NULL); 130 130 #endif /* DISABLE_SCTP */ 131 fd_log_debug(" - Pref. proto .. : %s", fd_g_config->cnf_flags.pr_tcp ? "TCP" : "SCTP"); 132 fd_log_debug(" - TLS method ... : %s", fd_g_config->cnf_flags.tls_alg ? "INBAND" : "Separate port"); 133 134 fd_log_debug(" TLS : - Certificate .. : %s", fd_g_config->cnf_sec_data.cert_file ?: "(NONE)"); 135 fd_log_debug(" - Private key .. : %s", fd_g_config->cnf_sec_data.key_file ?: "(NONE)"); 136 fd_log_debug(" - CA (trust) ... : %s (%d certs)", fd_g_config->cnf_sec_data.ca_file ?: "(none)", fd_g_config->cnf_sec_data.ca_file_nr); 137 fd_log_debug(" - CRL .......... : %s", fd_g_config->cnf_sec_data.crl_file ?: "(none)"); 138 fd_log_debug(" - Priority ..... : %s", fd_g_config->cnf_sec_data.prio_string ?: "(default: '" GNUTLS_DEFAULT_PRIORITY "')"); 139 if (fd_g_config->cnf_sec_data.dh_file) 140 fd_log_debug(" - DH file ...... : %s", fd_g_config->cnf_sec_data.dh_file); 141 else 142 fd_log_debug(" - DH bits ...... : %d", fd_g_config->cnf_sec_data.dh_bits ?: GNUTLS_DEFAULT_DHBITS); 143 144 fd_log_debug(" Origin-State-Id ........ : %u", fd_g_config->cnf_orstateid); 131 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - Pref. proto .. : %s\n", fd_g_config->cnf_flags.pr_tcp ? "TCP" : "SCTP"), return NULL); 132 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - TLS method ... : %s\n", fd_g_config->cnf_flags.tls_alg ? "INBAND" : "Separate port"), return NULL); 133 134 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " TLS : - Certificate .. : %s\n", fd_g_config->cnf_sec_data.cert_file ?: "(NONE)"), return NULL); 135 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - Private key .. : %s\n", fd_g_config->cnf_sec_data.key_file ?: "(NONE)"), return NULL); 136 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - CA (trust) ... : %s (%d certs)\n", fd_g_config->cnf_sec_data.ca_file ?: "(none)", fd_g_config->cnf_sec_data.ca_file_nr), return NULL); 137 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - CRL .......... : %s\n", fd_g_config->cnf_sec_data.crl_file ?: "(none)"), return NULL); 138 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - Priority ..... : %s\n", fd_g_config->cnf_sec_data.prio_string ?: "(default: '" GNUTLS_DEFAULT_PRIORITY "')"), return NULL); 139 if (fd_g_config->cnf_sec_data.dh_file) { 140 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - DH file ...... : %s\n", fd_g_config->cnf_sec_data.dh_file), return NULL); 141 } else { 142 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " - DH bits ...... : %d\n", fd_g_config->cnf_sec_data.dh_bits ?: GNUTLS_DEFAULT_DHBITS), return NULL); 143 } 144 145 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " Origin-State-Id ........ : %u", fd_g_config->cnf_orstateid), return NULL); 146 147 return *buf; 145 148 } 146 149 -
libfdcore/core.c
r1079 r1085 85 85 CHECK_FCT_DO( fd_event_get(fd_g_config->cnf_main_ev, &code, &sz, &data), break ); 86 86 switch (code) { 87 case FDEV_DUMP_DICT:88 fd_dict_dump(fd_g_config->cnf_dict);89 break;90 91 case FDEV_DUMP_EXT:92 fd_ext_dump();93 break;94 95 case FDEV_DUMP_SERV:96 fd_servers_dump();97 break;98 99 case FDEV_DUMP_QUEUES:100 fd_fifo_dump(0, "Incoming messages", fd_g_incoming, fd_msg_dump_walk);101 fd_fifo_dump(0, "Outgoing messages", fd_g_outgoing, fd_msg_dump_walk);102 fd_fifo_dump(0, "Local messages", fd_g_local, fd_msg_dump_walk);103 break;104 105 case FDEV_DUMP_CONFIG:106 fd_conf_dump();107 break;108 109 case FDEV_DUMP_PEERS:110 fd_peer_dump_list(FULL);111 break;112 113 87 case FDEV_TRIGGER: 114 88 { … … 182 156 } 183 157 184 TRACE_DEBUG(INFO,"libfdproto initialized.");158 LOG_D("libfdproto initialized."); 185 159 186 160 /* Name this thread */ … … 225 199 int fd_core_parseconf(const char * conffile) 226 200 { 201 char * buf = NULL, *b; 202 size_t len = 0, offset=0; 203 204 227 205 TRACE_ENTRY("%p", conffile); 228 206 … … 240 218 241 219 /* Display configuration */ 242 fd_conf_dump(); 220 b = fd_conf_dump(&buf, &len, NULL); 221 LOG_N("%s\n", b ?: "Error during configuration dump..."); 243 222 244 223 /* Display registered triggers for FDEV_TRIGGER */ 245 fd_event_trig_dump(); 246 224 b = fd_event_trig_dump(&buf, &len, &offset); 225 if (!b || offset) { 226 LOG_N("%s\n", b ?: "Error during triggers dump..."); 227 } 228 229 free(buf); 230 247 231 return 0; 248 232 } -
libfdcore/endpoints.c
r1033 r1085 58 58 } 59 59 60 if (TRACE_BOOL(ANNOYING + 1)) {61 char buf[1024];62 sSA_DUMP_NODE_SERV( buf, sizeof(buf), sa, NI_NUMERICHOST | NI_NUMERICSERV );63 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Current list:");64 fd_ep_dump( 4, list );65 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Adding:");66 fd_log_debug(" %s {%s%s%s%s%s}", buf,67 (flags & EP_FL_CONF) ? "C" : "-",68 (flags & EP_FL_DISC) ? "D" : "-",69 (flags & EP_FL_ADV) ? "A" : "-",70 (flags & EP_FL_LL) ? "L" : "-",71 (flags & EP_FL_PRIMARY) ? "P" : "-");72 }73 60 ptr.sa = sa; 74 61 … … 82 69 || ((ntohl(ptr.sin->sin_addr.s_addr) & 0xe0000000) == 0xe0000000) 83 70 || (ptr.sin->sin_addr.s_addr == INADDR_BROADCAST)) { 84 if (TRACE_BOOL(ANNOYING + 1)) { 85 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Address was ignored, not added."); 86 } 71 LOG_A(" DEBUG:fd_ep_add_merge Address was ignored, not added."); 87 72 return 0; 88 73 } … … 98 83 || IN6_IS_ADDR_LINKLOCAL(&ptr.sin6->sin6_addr) 99 84 || IN6_IS_ADDR_SITELOCAL(&ptr.sin6->sin6_addr)) { 100 if (TRACE_BOOL(ANNOYING + 1)) { 101 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Address was ignored, not added."); 102 } 85 LOG_A(" DEBUG:fd_ep_add_merge Address was ignored, not added."); 103 86 return 0; 104 87 } … … 108 91 109 92 default: 110 if (TRACE_BOOL(ANNOYING + 1)) { 111 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge Address family was unknown, not added."); 112 } 93 LOG_A(" DEBUG:fd_ep_add_merge Address family was unknown, not added."); 113 94 return 0; 114 95 } … … 175 156 ep->flags |= flags; 176 157 177 if (TRACE_BOOL(ANNOYING + 1)) {178 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_add_merge New list:");179 fd_ep_dump( 4, list );180 }181 158 return 0; 182 159 } … … 190 167 CHECK_PARAMS(list); 191 168 192 if (TRACE_BOOL(ANNOYING + 1)) {193 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter Filter this list for flags %x:", flags);194 fd_ep_dump( 4, list );195 }196 169 for (li = list->next; li != list; li = li->next) { 197 170 struct fd_endpoint * ep = (struct fd_endpoint *)li; … … 204 177 } 205 178 206 if (TRACE_BOOL(ANNOYING + 1)) {207 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter Resulting list:");208 fd_ep_dump( 4, list );209 }210 179 return 0; 211 180 } … … 219 188 CHECK_PARAMS(list); 220 189 221 if (TRACE_BOOL(ANNOYING + 1)) {222 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter_family Filter this list for family %d:", af);223 fd_ep_dump( 4, list );224 }225 190 for (li = list->next; li != list; li = li->next) { 226 191 struct fd_endpoint * ep = (struct fd_endpoint *)li; … … 233 198 } 234 199 235 if (TRACE_BOOL(ANNOYING + 1)) {236 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter_family Resulting list:");237 fd_ep_dump( 4, list );238 }239 200 return 0; 240 201 } … … 253 214 li_ex = exclude_list->next; 254 215 255 if (TRACE_BOOL(ANNOYING + 1)) {256 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter_list Filter this list ");257 fd_ep_dump( 4, list );258 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter_list Removing from list");259 fd_ep_dump( 6, exclude_list );260 }261 216 /* Now browse both lists in parallel */ 262 217 while ((li_out != list) && (li_ex != exclude_list)) { … … 304 259 } 305 260 306 if (TRACE_BOOL(ANNOYING + 1)) {307 TRACE_DEBUG(ANNOYING, " DEBUG:fd_ep_filter_list Resulting list:");308 fd_ep_dump( 4, list );309 }310 261 return 0; 311 262 … … 334 285 } 335 286 336 void fd_ep_dump_one( char * prefix, struct fd_endpoint * ep ) 337 { 338 char buf[1024]; 339 340 sSA_DUMP_NODE_SERV( buf, sizeof(buf), &ep->sa, NI_NUMERICHOST | NI_NUMERICSERV ); 341 fd_log_debug("%s%s {%s%s%s%s}%s", prefix ?: "", buf, 287 DECLARE_FD_DUMP_PROTOTYPE(fd_ep_dump_one, struct fd_endpoint * ep ) 288 { 289 size_t o = 0; 290 if (!offset) 291 offset=&o; 292 293 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{ep}(@%p): ", ep), return NULL); 294 295 if (!ep) { 296 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "INVALID/NULL\n"), return NULL); 297 return *buf; 298 } 299 300 CHECK_MALLOC_DO( fd_sa_dump_node_serv( FD_DUMP_STD_PARAMS, &ep->sa, NI_NUMERICHOST | NI_NUMERICSERV ), return NULL); 301 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " {%s%s%s%s%s}", 342 302 (ep->flags & EP_FL_CONF) ? "C" : "-", 343 303 (ep->flags & EP_FL_DISC) ? "D" : "-", 344 304 (ep->flags & EP_FL_ADV) ? "A" : "-", 345 305 (ep->flags & EP_FL_LL) ? "L" : "-", 346 (ep->flags & EP_FL_PRIMARY) ? "P" : "-"); 347 } 348 349 void fd_ep_dump( int indent, struct fd_list * eps ) 350 { 351 struct fd_list * li; 352 for (li = eps->next; li != eps; li = li->next) { 353 struct fd_endpoint * ep = (struct fd_endpoint *)li; 354 fd_log_debug("%*s", indent, ""); 355 fd_ep_dump_one( NULL, ep ); 356 } 357 } 358 306 (ep->flags & EP_FL_PRIMARY) ? "P" : "-"), return NULL); 307 return *buf; 308 } 309 310 DECLARE_FD_DUMP_PROTOTYPE(fd_ep_dump, int indent, struct fd_list * eps ) 311 { 312 struct fd_list * li; 313 size_t o = 0; 314 if (!offset) 315 offset=&o; 316 317 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%*s{eps}(@%p):\n", indent, "", eps), return NULL); 318 if (eps) { 319 for (li = eps->next; li != eps; li = li->next) { 320 struct fd_endpoint * ep = (struct fd_endpoint *)li; 321 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%*s", indent+1, ""), return NULL); 322 CHECK_MALLOC_DO( fd_ep_dump_one( FD_DUMP_STD_PARAMS, ep ), return NULL); 323 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "\n"), return NULL); 324 } 325 } 326 } 327 -
libfdcore/events.c
r974 r1085 106 106 case _val : return #_val 107 107 case_str(FDEV_TERMINATE); 108 case_str(FDEV_DUMP_DICT);109 case_str(FDEV_DUMP_EXT);110 case_str(FDEV_DUMP_SERV);111 case_str(FDEV_DUMP_QUEUES);112 case_str(FDEV_DUMP_CONFIG);113 case_str(FDEV_DUMP_PEERS);114 108 case_str(FDEV_TRIGGER); 115 109 … … 168 162 } 169 163 170 void fd_event_trig_dump()164 DECLARE_FD_DUMP_PROTOTYPE(fd_event_trig_dump) 171 165 { 172 166 struct fd_list * li; 173 if (!TRACE_BOOL(FULL)) 174 return; 167 size_t o=0; 168 if (!offset) 169 offset=&o; 175 170 176 171 CHECK_POSIX_DO( pthread_rwlock_rdlock(&trig_rwl), ); … … 178 173 for (li = trig_list.next; li != &trig_list; li = li->next) { 179 174 struct trig_item *t = li->o; 180 fd_log_debug(" Trigger %d, module '%s': %p", t->trig_value, t->trig_module, t->cb);175 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{trigger sig:%d}'%s'->%p ", t->trig_value, t->trig_module, t->cb), break); 181 176 } 182 177 183 178 CHECK_POSIX_DO( pthread_rwlock_unlock(&trig_rwl), ); 179 return *buf; 184 180 } 185 181 -
libfdcore/extensions.c
r1006 r1085 78 78 79 79 /* Dump the list */ 80 void fd_ext_dump(void)80 DECLARE_FD_DUMP_PROTOTYPE(fd_ext_dump) 81 81 { 82 82 struct fd_list * li; 83 84 fd_log_debug("Dumping extensions list :"); 83 size_t o=0; 84 if (!offset) 85 offset = &o; 85 86 86 87 for (li = ext_list.next; li != &ext_list; li = li->next) 87 88 { 88 89 struct fd_ext_info * ext = (struct fd_ext_info *)li; 89 fd_log_debug(" - '%s'[%s] is %sloaded", ext->filename, ext->conffile?:"no conf", ext->handler ? "" : "not "); 90 } 90 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{extension}(@%p): '%s'[%s], %sloaded\n", ext, ext->filename, ext->conffile?:"no conf", ext->handler ? "" : "not "), return NULL); 91 } 92 return *buf; 91 93 } 92 94 -
libfdcore/fdcore-internal.h
r1016 r1085 86 86 int fd_conf_init(); 87 87 int fd_conf_deinit(); 88 void fd_conf_dump();89 88 int fd_conf_parse(); 90 89 int fddparse(struct fd_config * conf); /* yacc generated */ … … 95 94 int fd_ext_add( char * filename, char * conffile ); 96 95 int fd_ext_load(); 97 void fd_ext_dump(void);98 96 int fd_ext_term(void); 99 97 … … 218 216 /* Events codespace for struct fd_peer->p_events */ 219 217 enum { 220 /* Dump all info about this peer in the debug log */221 FDEVP_DUMP_ALL = 1500222 223 218 /* request to terminate this peer : disconnect, requeue all messages */ 224 ,FDEVP_TERMINATE219 FDEVP_TERMINATE = 1500 225 220 226 221 /* A connection object has received a message. (data contains the buffer + struct timespec piggytailed -- unaligned) */ … … 250 245 }; 251 246 #define CHECK_PEVENT( _e ) \ 252 (((int)(_e) >= FDEVP_ DUMP_ALL) && ((int)(_e) <= FDEVP_PSM_TIMEOUT))247 (((int)(_e) >= FDEVP_TERMINATE) && ((int)(_e) <= FDEVP_PSM_TIMEOUT)) 253 248 /* The following macro is actually called in p_psm.c -- another solution would be to declare it static inline */ 254 249 #define DECLARE_PEV_STR() \ … … 256 251 { \ 257 252 switch (event) { \ 258 case_str(FDEVP_DUMP_ALL); \259 253 case_str(FDEVP_TERMINATE); \ 260 254 case_str(FDEVP_CNX_MSG_RECV); \ … … 281 275 /* Functions */ 282 276 int fd_peer_fini(); 283 void fd_peer_dump_list(int details);284 void fd_peer_dump(struct fd_peer * peer, int details);285 277 int fd_peer_alloc(struct fd_peer ** ptr); 286 278 int fd_peer_free(struct fd_peer ** ptr); … … 339 331 340 332 /* Server sockets */ 341 void fd_servers_dump();342 333 int fd_servers_start(); 343 334 int fd_servers_stop(); -
libfdcore/p_psm.c
r1078 r1085 454 454 } 455 455 456 /* Handle the (easy) debug event now */457 if (event == FDEVP_DUMP_ALL) {458 fd_peer_dump(peer, ANNOYING);459 goto psm_loop;460 }461 462 456 /* Requests to terminate the peer object */ 463 457 if (event == FDEVP_TERMINATE) { … … 712 706 CHECK_FCT_DO( fd_cnx_getremoteeps(peer->p_cnxctx, &peer->p_hdr.info.pi_endpoints), /* ignore the error */); 713 707 714 /* We do not support local endpoints change currently, but it could be added here if needed (refresh fd_g_config->cnf_endpoints)*/ 715 716 if (TRACE_BOOL(ANNOYING)) { 717 TRACE_DEBUG(ANNOYING, "New remote endpoint(s):" ); 718 fd_ep_dump(6, &peer->p_hdr.info.pi_endpoints); 708 /* We do not support local endpoints change currently, but it could be added here if needed (refresh fd_g_config->cnf_endpoints) */ 709 { 710 char * buf = NULL; 711 size_t len = 0; 712 LOG_D("New remote endpoint(s): %s", fd_ep_dump(&buf, &len, NULL, 6, &peer->p_hdr.info.pi_endpoints) ?: "error"); 713 free(buf); 719 714 } 720 715 -
libfdcore/peers.c
r1078 r1085 410 410 411 411 /* Dump info of one peer */ 412 void fd_peer_dump(struct fd_peer * peer, int details) 413 { 414 char buf[1024]; 415 if (peer->p_eyec != EYEC_PEER) { 416 fd_log_debug(" Invalid peer @ %p !", peer); 417 return; 418 } 419 420 snprintf(buf, sizeof(buf), "> %s\t%s\t[%ldsr,%ldpa]", STATE_STR(fd_peer_getstate(peer)), peer->p_hdr.info.pi_diamid, peer->p_sr.cnt, peer->p_reqin_count); 421 if (details > INFO) { 422 snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\t(rlm:%s)", peer->p_hdr.info.runtime.pir_realm ?: "<unknown>"); 423 if (peer->p_hdr.info.runtime.pir_prodname) 424 snprintf(buf+strlen(buf), sizeof(buf)-strlen(buf), "\t['%s' %u]", peer->p_hdr.info.runtime.pir_prodname, peer->p_hdr.info.runtime.pir_firmrev); 425 } 426 fd_log_debug("%s", buf); 427 if (details > FULL) { 428 /* Dump all info */ 429 fd_log_debug("\tEntry origin : %s", peer->p_dbgorig?: "not set"); 430 fd_log_debug("\tConfig flags : %s%s%s - %s%s - %s%s", 431 peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_DEFAULT ? "." : 432 (peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_IP ? "IP" : "IPv6"), 433 peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_DEFAULT ? "." : 434 (peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_TCP ? "TCP" : "SCTP"), 435 peer->p_hdr.info.config.pic_flags.alg ? "PrefTCP" : ".", 436 peer->p_hdr.info.config.pic_flags.sec & PI_SEC_NONE ? "NoTLSok" :".", 437 peer->p_hdr.info.config.pic_flags.sec & PI_SEC_TLS_OLD ? "OldTLS" :".", 438 peer->p_hdr.info.config.pic_flags.exp ? "Expire" : ".", 439 peer->p_hdr.info.config.pic_flags.persist ? "Persist" : "." 440 ); 441 fd_log_debug("\tLifetime : %d sec", peer->p_hdr.info.config.pic_lft); 442 } 412 DECLARE_FD_DUMP_PROTOTYPE(fd_peer_dump, struct peer_hdr * p, int details) 413 { 414 size_t o=0; 415 if (!offset) 416 offset = &o; 417 418 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{peer}(@%p): ", p), return NULL); 419 420 if (!CHECK_PEER(p)) { 421 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "INVALID/NULL"), return NULL); 422 } else { 423 struct fd_peer * peer = (struct fd_peer *)p; 424 425 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "%s [%s, cnt:%ldsr,%ldpa]", peer->p_hdr.info.pi_diamid, STATE_STR(fd_peer_getstate(peer)), peer->p_sr.cnt, peer->p_reqin_count), return NULL); 426 if (details > 0) { 427 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " rlm:%s", peer->p_hdr.info.runtime.pir_realm ?: "<unknown>"), return NULL); 428 if (peer->p_hdr.info.runtime.pir_prodname) { 429 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " ['%s' %u]", peer->p_hdr.info.runtime.pir_prodname, peer->p_hdr.info.runtime.pir_firmrev), return NULL); 430 } 431 } 432 if (details > 1) { 433 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " [from:%s] flags:%s%s%s%s%s%s%s lft:%ds", 434 peer->p_dbgorig ?: "unset", 435 peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_DEFAULT ? "-" : 436 (peer->p_hdr.info.config.pic_flags.pro3 == PI_P3_IP ? "4" : "6"), 437 peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_DEFAULT ? "-" : 438 (peer->p_hdr.info.config.pic_flags.pro4 == PI_P4_TCP ? "T" : "S"), 439 peer->p_hdr.info.config.pic_flags.alg ? "P" : "-", 440 peer->p_hdr.info.config.pic_flags.sec & PI_SEC_NONE ? "N" :"-", 441 peer->p_hdr.info.config.pic_flags.sec & PI_SEC_TLS_OLD ? "O" :"-", 442 peer->p_hdr.info.config.pic_flags.exp ? "E" : "-", 443 peer->p_hdr.info.config.pic_flags.persist ? "P" : "-", 444 peer->p_hdr.info.config.pic_lft), return NULL); 445 } 446 447 } 448 449 return *buf; 443 450 } 444 451 445 452 /* Dump the list of peers */ 446 void fd_peer_dump_list(int details)453 DECLARE_FD_DUMP_PROTOTYPE(fd_peer_dump_list, int details) 447 454 { 448 455 struct fd_list * li; 449 450 fd_log_debug("Dumping list of peers :"); 456 size_t o=0; 457 if (!offset) 458 offset = &o; 459 451 460 CHECK_FCT_DO( pthread_rwlock_rdlock(&fd_g_peers_rw), /* continue */ ); 452 461 453 462 for (li = fd_g_peers.next; li != &fd_g_peers; li = li->next) { 454 struct fd_peer * np = (struct fd_peer *)li->o;455 fd_peer_dump(np, details);463 CHECK_MALLOC_DO( fd_peer_dump(FD_DUMP_STD_PARAMS, (struct peer_hdr *)li->o, details), break); 464 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "\n"), break); 456 465 } 457 466 458 467 CHECK_FCT_DO( pthread_rwlock_unlock(&fd_g_peers_rw), /* continue */ ); 468 return *buf; 459 469 } 460 470 -
libfdcore/server.c
r1078 r1085 94 94 95 95 /* Dump all servers information */ 96 void fd_servers_dump()96 DECLARE_FD_DUMP_PROTOTYPE(fd_servers_dump) 97 97 { 98 98 struct fd_list * li, *cli; 99 100 fd_log_debug("Dumping servers list :"); 99 size_t o=0; 100 if (!offset) 101 offset = &o; 102 101 103 for (li = FD_SERVERS.next; li != &FD_SERVERS; li = li->next) { 102 104 struct server * s = (struct server *)li; 103 105 enum s_state st = get_status(s); 104 fd_log_debug(" Serv %p '%s': %s, %s, %s",105 106 107 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, "{server}(@%p)'%s': %s, %s, %s\n", s, fd_cnx_getid(s->conn), 106 108 IPPROTO_NAME( s->proto ), 107 109 s->secur ? "Secur" : "NotSecur", … … 109 111 ((st == RUNNING) ? "Thread running" : 110 112 ((st == TERMINATED) ? "Thread terminated" : 111 "Thread status unknown"))) ;113 "Thread status unknown"))), return NULL); 112 114 /* Dump the client list of this server */ 113 115 CHECK_POSIX_DO( pthread_mutex_lock(&s->clients_mtx), ); … … 115 117 struct client * c = (struct client *)cli; 116 118 char bufts[128]; 117 fd_log_debug(" Connected: '%s' (timeout: %s)", 118 fd_cnx_getid(c->conn), 119 fd_log_time(&c->ts, bufts, sizeof(bufts))); 119 CHECK_MALLOC_DO( fd_dump_extend( FD_DUMP_STD_PARAMS, " {client}(@%p)'%s': to:%s\n", c, fd_cnx_getid(c->conn), fd_log_time(&c->ts, bufts, sizeof(bufts))), break); 120 120 } 121 121 CHECK_POSIX_DO( pthread_mutex_unlock(&s->clients_mtx), ); 122 122 } 123 124 return *buf; 123 125 } 124 126 … … 393 395 } 394 396 } 395 if (TRACE_BOOL(FULL)){ 396 fd_log_debug(" Local server address(es) :"); 397 fd_ep_dump( 5, &fd_g_config->cnf_endpoints ); 397 398 { 399 char * buf = NULL; 400 size_t len = 0, offset = 0; 401 CHECK_MALLOC_DO( fd_dump_extend( &buf, &len, &offset , "Local server address(es): "), ); 402 CHECK_MALLOC_DO( fd_ep_dump( &buf, &len, &offset, 5, &fd_g_config->cnf_endpoints ), ); 403 LOG_N("%s", buf ?: "Error dumping addresses"); 404 free(buf); 398 405 } 399 406 return 0; -
libfdcore/tcp.c
r965 r1085 124 124 int ret = 0; 125 125 int s; 126 char * buf = NULL; size_t len = 0; 126 127 127 128 TRACE_ENTRY("%p %p %d", sock, sa, salen); … … 137 138 pthread_cleanup_push(fd_cleanup_socket, &s); 138 139 139 TRACE_sSA(FD_LOG_DEBUG, FULL, "Attempting TCP connection with peer: ", sa, NI_NUMERICHOST | NI_NUMERICSERV, "..." ); 140 LOG_D( "Attempting TCP connection to %s...", fd_sa_dump_node(&buf, &len, NULL, sa, NI_NUMERICHOST | NI_NUMERICSERV)?:"<error>" ); 141 free(buf); 140 142 141 143 /* Try connecting to the remote address */
Note: See TracChangeset
for help on using the changeset viewer.