Changeset 1085:7d7266115a34 in freeDiameter for libfdcore/peers.c
- Timestamp:
- May 3, 2013, 8:20:56 PM (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.