* Dump an in_multi structure to the console. */
| 3047 | * Dump an in_multi structure to the console. |
| 3048 | */ |
| 3049 | void |
| 3050 | inm_print(const struct in_multi *inm) |
| 3051 | { |
| 3052 | int t; |
| 3053 | char addrbuf[INET_ADDRSTRLEN]; |
| 3054 | |
| 3055 | if ((ktr_mask & KTR_IGMPV3) == 0) |
| 3056 | return; |
| 3057 | |
| 3058 | printf("%s: --- begin inm %p ---\n", __func__, inm); |
| 3059 | printf("addr %s ifp %p(%s) ifma %p\n", |
| 3060 | inet_ntoa_r(inm->inm_addr, addrbuf), |
| 3061 | inm->inm_ifp, |
| 3062 | inm->inm_ifp->if_xname, |
| 3063 | inm->inm_ifma); |
| 3064 | printf("timer %u state %s refcount %u scq.len %u\n", |
| 3065 | inm->inm_timer, |
| 3066 | inm_state_str(inm->inm_state), |
| 3067 | inm->inm_refcount, |
| 3068 | inm->inm_scq.mq_len); |
| 3069 | printf("igi %p nsrc %lu sctimer %u scrv %u\n", |
| 3070 | inm->inm_igi, |
| 3071 | inm->inm_nsrc, |
| 3072 | inm->inm_sctimer, |
| 3073 | inm->inm_scrv); |
| 3074 | for (t = 0; t < 2; t++) { |
| 3075 | printf("t%d: fmode %s asm %u ex %u in %u rec %u\n", t, |
| 3076 | inm_mode_str(inm->inm_st[t].iss_fmode), |
| 3077 | inm->inm_st[t].iss_asm, |
| 3078 | inm->inm_st[t].iss_ex, |
| 3079 | inm->inm_st[t].iss_in, |
| 3080 | inm->inm_st[t].iss_rec); |
| 3081 | } |
| 3082 | printf("%s: --- end inm %p ---\n", __func__, inm); |
| 3083 | } |
| 3084 | |
| 3085 | #else /* !KTR || !(KTR_COMPILE & KTR_IGMPV3) */ |
| 3086 |
no test coverage detected