void trace_if(const char *act, struct interface *ifp) { if (!TRACEACTIONS || ftrace == 0) return; lastlog(); (void)fprintf(ftrace, "%-3s interface %-4s ", act, ifp->int_name); (void)fprintf(ftrace, "%-15s-->%-15s ", naddr_ntoa(ifp->int_addr), addrname(((ifp->int_if_flags & IFF_POINTOPOINT) ? ifp->int_dstaddr : htonl(ifp->int_net)), ifp->int_mask, 1)); if (ifp->int_metric != 0) (void)fprintf(ftrace, "metric=%d ", ifp->int_metric); if (ifp->int_adj_inmetric != 0) (void)fprintf(ftrace, "adj_inmetric=%u ", ifp->int_adj_inmetric); if (ifp->int_adj_outmetric != 0) (void)fprintf(ftrace, "adj_outmetric=%u ", ifp->int_adj_outmetric); if (!IS_RIP_OUT_OFF(ifp->int_state) && ifp->int_d_metric != 0) (void)fprintf(ftrace, "fake_default=%u ", ifp->int_d_metric); trace_bits(if_bits, ifp->int_if_flags, 0); trace_bits(is_bits, ifp->int_state, 0); (void)fputc('\n',ftrace); }
void trace_khash(const struct khash *krt) { if (ftrace == NULL) return; lastlog(); (void) fprintf(ftrace, " %-15s-->%-15s metric=%d ", addrname(krt->k_dst, krt->k_mask, 0), naddr_ntoa(krt->k_gate), krt->k_metric); if (krt->k_ifp != NULL) (void) fprintf(ftrace, "ifp %s ", krt->k_ifp->int_name); else (void) fprintf(ftrace, "ifp NULL "); (void) fprintf(ftrace, "%s ", ts(krt->k_keep)); (void) fprintf(ftrace, "%s ", ts(krt->k_redirect_time)); trace_bits(ks_bits, krt->k_state, _B_TRUE); (void) fputc('\n', ftrace); }