Navigation


Changeset 1085:7d7266115a34 in freeDiameter for libfdcore


Ignore:
Timestamp:
May 3, 2013, 8:20:56 PM (11 years ago)
Author:
Sebastien Decugis <sdecugis@freediameter.net>
Branch:
default
Phase:
public
Message:

Cleaning of the traces in progress

Location:
libfdcore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • libfdcore/config.c

    r1034 r1085  
    8181}
    8282
    83 void fd_conf_dump()
     83DECLARE_FD_DUMP_PROTOTYPE(fd_conf_dump)
    8484{
    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);
    99100        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);
    101102        } 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);
    104105        }
    105106        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);
    107108        } else {
    108109                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);
    110111                while (li != &fd_g_config->cnf_apps) {
    111112                        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",
    114114                                        app->appid,
    115115                                        app->flags.auth ? "Au" : "--",
    116116                                        app->flags.acct ? "Ac" : "--",
    117                                         app->vndid);
     117                                        app->vndid), return NULL);
    118118                        li = li->next;
    119119                }
    120120        }
    121121       
    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);
    126126        #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);
    128128        #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);
    130130        #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;
    145148}
    146149
  • libfdcore/core.c

    r1079 r1085  
    8585                CHECK_FCT_DO(  fd_event_get(fd_g_config->cnf_main_ev, &code, &sz, &data),  break  );
    8686                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                        
    11387                        case FDEV_TRIGGER:
    11488                                {
     
    182156        }
    183157       
    184         TRACE_DEBUG(INFO, "libfdproto initialized.");
     158        LOG_D("libfdproto initialized.");
    185159       
    186160        /* Name this thread */
     
    225199int fd_core_parseconf(const char * conffile)
    226200{
     201        char * buf = NULL, *b;
     202        size_t len = 0, offset=0;
     203       
     204       
    227205        TRACE_ENTRY("%p", conffile);
    228206       
     
    240218       
    241219        /* Display configuration */
    242         fd_conf_dump();
     220        b = fd_conf_dump(&buf, &len, NULL);
     221        LOG_N("%s\n", b ?: "Error during configuration dump...");
    243222       
    244223        /* 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               
    247231        return 0;
    248232}
  • libfdcore/endpoints.c

    r1033 r1085  
    5858        }
    5959       
    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         }
    7360        ptr.sa = sa;
    7461       
     
    8269                                 || ((ntohl(ptr.sin->sin_addr.s_addr) & 0xe0000000) == 0xe0000000)
    8370                                 || (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.");
    8772                                        return 0;
    8873                                }
     
    9883                                 || IN6_IS_ADDR_LINKLOCAL(&ptr.sin6->sin6_addr)
    9984                                 || 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.");
    10386                                        return 0;
    10487                                }
     
    10891
    10992                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.");
    11394                        return 0;
    11495        }
     
    175156        ep->flags |= flags;
    176157       
    177         if (TRACE_BOOL(ANNOYING + 1)) {
    178                 TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_add_merge  New list:");
    179                 fd_ep_dump( 4, list );
    180         }
    181158        return 0;
    182159}
     
    190167        CHECK_PARAMS(list);
    191168       
    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         }
    196169        for (li = list->next; li != list; li = li->next) {
    197170                struct fd_endpoint * ep = (struct fd_endpoint *)li;
     
    204177        }
    205178       
    206         if (TRACE_BOOL(ANNOYING + 1)) {
    207                 TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_filter  Resulting list:");
    208                 fd_ep_dump( 4, list );
    209         }
    210179        return 0;
    211180}
     
    219188        CHECK_PARAMS(list);
    220189       
    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         }
    225190        for (li = list->next; li != list; li = li->next) {
    226191                struct fd_endpoint * ep = (struct fd_endpoint *)li;
     
    233198        }
    234199       
    235         if (TRACE_BOOL(ANNOYING + 1)) {
    236                 TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_filter_family  Resulting list:");
    237                 fd_ep_dump( 4, list );
    238         }
    239200        return 0;
    240201}
     
    253214        li_ex = exclude_list->next;
    254215       
    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         }
    261216        /* Now browse both lists in parallel */
    262217        while ((li_out != list) && (li_ex != exclude_list)) {
     
    304259        }
    305260       
    306         if (TRACE_BOOL(ANNOYING + 1)) {
    307                 TRACE_DEBUG(ANNOYING, "  DEBUG:fd_ep_filter_list  Resulting list:");
    308                 fd_ep_dump( 4, list );
    309         }
    310261        return 0;
    311262
     
    334285}
    335286
    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,
     287DECLARE_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}",
    342302                        (ep->flags & EP_FL_CONF)        ? "C" : "-",
    343303                        (ep->flags & EP_FL_DISC)        ? "D" : "-",
    344304                        (ep->flags & EP_FL_ADV)         ? "A" : "-",
    345305                        (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
     310DECLARE_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  
    106106                case _val : return #_val
    107107                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);
    114108                case_str(FDEV_TRIGGER);
    115109               
     
    168162}
    169163
    170 void fd_event_trig_dump()
     164DECLARE_FD_DUMP_PROTOTYPE(fd_event_trig_dump)
    171165{
    172166        struct fd_list * li;
    173         if (!TRACE_BOOL(FULL))
    174                 return;
     167        size_t o=0;
     168        if (!offset)
     169                offset=&o;
    175170       
    176171        CHECK_POSIX_DO( pthread_rwlock_rdlock(&trig_rwl),  );
     
    178173        for (li = trig_list.next; li != &trig_list; li = li->next) {
    179174                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);
    181176        }
    182177       
    183178        CHECK_POSIX_DO( pthread_rwlock_unlock(&trig_rwl),  );
     179        return *buf;
    184180}
    185181
  • libfdcore/extensions.c

    r1006 r1085  
    7878
    7979/* Dump the list */
    80 void fd_ext_dump(void)
     80DECLARE_FD_DUMP_PROTOTYPE(fd_ext_dump)
    8181{
    8282        struct fd_list * li;
    83        
    84         fd_log_debug("Dumping extensions list :");
     83        size_t o=0;
     84        if (!offset)
     85                offset = &o;
    8586       
    8687        for (li = ext_list.next; li != &ext_list; li = li->next)
    8788        {
    8889                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;
    9193}
    9294
  • libfdcore/fdcore-internal.h

    r1016 r1085  
    8686int fd_conf_init();
    8787int fd_conf_deinit();
    88 void fd_conf_dump();
    8988int fd_conf_parse();
    9089int fddparse(struct fd_config * conf); /* yacc generated */
     
    9594int fd_ext_add( char * filename, char * conffile );
    9695int fd_ext_load();
    97 void fd_ext_dump(void);
    9896int fd_ext_term(void);
    9997
     
    218216/* Events codespace for struct fd_peer->p_events */
    219217enum {
    220         /* Dump all info about this peer in the debug log */
    221          FDEVP_DUMP_ALL = 1500
    222        
    223218        /* request to terminate this peer : disconnect, requeue all messages */
    224         ,FDEVP_TERMINATE
     219        FDEVP_TERMINATE = 1500
    225220       
    226221        /* A connection object has received a message. (data contains the buffer + struct timespec piggytailed -- unaligned) */
     
    250245};
    251246#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))
    253248/* The following macro is actually called in p_psm.c -- another solution would be to declare it static inline */
    254249#define DECLARE_PEV_STR()                               \
     
    256251{                                                       \
    257252        switch (event) {                                \
    258                 case_str(FDEVP_DUMP_ALL);               \
    259253                case_str(FDEVP_TERMINATE);              \
    260254                case_str(FDEVP_CNX_MSG_RECV);           \
     
    281275/* Functions */
    282276int  fd_peer_fini();
    283 void fd_peer_dump_list(int details);
    284 void fd_peer_dump(struct fd_peer * peer, int details);
    285277int  fd_peer_alloc(struct fd_peer ** ptr);
    286278int  fd_peer_free(struct fd_peer ** ptr);
     
    339331
    340332/* Server sockets */
    341 void fd_servers_dump();
    342333int  fd_servers_start();
    343334int  fd_servers_stop();
  • libfdcore/p_psm.c

    r1078 r1085  
    454454        }
    455455
    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 
    462456        /* Requests to terminate the peer object */
    463457        if (event == FDEVP_TERMINATE) {
     
    712706                CHECK_FCT_DO( fd_cnx_getremoteeps(peer->p_cnxctx, &peer->p_hdr.info.pi_endpoints), /* ignore the error */);
    713707               
    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);
    719714                }
    720715               
  • libfdcore/peers.c

    r1078 r1085  
    410410
    411411/* 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         }
     412DECLARE_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;
    443450}
    444451
    445452/* Dump the list of peers */
    446 void fd_peer_dump_list(int details)
     453DECLARE_FD_DUMP_PROTOTYPE(fd_peer_dump_list, int details)
    447454{
    448455        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       
    451460        CHECK_FCT_DO( pthread_rwlock_rdlock(&fd_g_peers_rw), /* continue */ );
    452461       
    453462        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);
    456465        }
    457466       
    458467        CHECK_FCT_DO( pthread_rwlock_unlock(&fd_g_peers_rw), /* continue */ );
     468        return *buf;
    459469}
    460470
  • libfdcore/server.c

    r1078 r1085  
    9494
    9595/* Dump all servers information */
    96 void fd_servers_dump()
     96DECLARE_FD_DUMP_PROTOTYPE(fd_servers_dump)
    9797{
    9898        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       
    101103        for (li = FD_SERVERS.next; li != &FD_SERVERS; li = li->next) {
    102104                struct server * s = (struct server *)li;
    103105                enum s_state st = get_status(s);
    104                 fd_log_debug("  Serv %p '%s': %s, %s, %s",
    105                                 s, fd_cnx_getid(s->conn),
     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),
    106108                                IPPROTO_NAME( s->proto ),
    107109                                s->secur ? "Secur" : "NotSecur",
     
    109111                                ((st == RUNNING) ? "Thread running" :
    110112                                ((st == TERMINATED) ? "Thread terminated" :
    111                                                           "Thread status unknown")));
     113                                                          "Thread status unknown"))), return NULL);
    112114                /* Dump the client list of this server */
    113115                CHECK_POSIX_DO( pthread_mutex_lock(&s->clients_mtx), );
     
    115117                        struct client * c = (struct client *)cli;
    116118                        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);
    120120                }
    121121                CHECK_POSIX_DO( pthread_mutex_unlock(&s->clients_mtx), );
    122122        }
     123       
     124        return *buf;
    123125}
    124126
     
    393395                }
    394396        }
    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);
    398405        }
    399406        return 0;
  • libfdcore/tcp.c

    r965 r1085  
    124124        int ret = 0;
    125125        int s;
     126        char * buf = NULL; size_t len = 0;
    126127       
    127128        TRACE_ENTRY("%p %p %d", sock, sa, salen);
     
    137138        pthread_cleanup_push(fd_cleanup_socket, &s);
    138139       
    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);
    140142       
    141143        /* Try connecting to the remote address */
Note: See TracChangeset for help on using the changeset viewer.