{
uint32_t evt_msk = 0xff000000;
unsigned int evt_bits = 24;
- int idx;
+ int idx = 0;
- for (idx = 0; evt_msk; evt_msk >>= 8, evt_bits -= 8) {
+ /* no events: do nothing */
+ if (!evts)
+ goto end;
+
+ /* -1 means the feature is not supported for the location or the entity does not exist. print a dash */
+ if (evts == UINT_MAX) {
+ tevt_evts_str[idx++] = '-';
+ goto end;
+ }
+
+ for (; evt_msk; evt_msk >>= 8, evt_bits -= 8) {
unsigned char evt = (evts & evt_msk) >> evt_bits;
unsigned int is_back;
tevt_evts_str[idx++] = hextab[evt & 0xf];
}
+ end:
tevt_evts_str[idx] = '\0';
return tevt_evts_str;
}
if (bconn && bconn->mux && bconn->mux->ctl)
bc_mux_ret = bconn->mux->ctl(bconn, MUX_CTL_TEVTS, NULL);
- chunk_printf(trash, "{%s,", fconn ? tevt_evts2str(fconn->term_evts_log) : "-");
- chunk_appendf(trash, "%s,", (fc_mux_ret != -1) ? tevt_evts2str(fc_mux_ret) : "-");
- chunk_appendf(trash, "%s,", smp->strm ? tevt_evts2str(smp->strm->scf->sedesc->term_evts_log) : "-");
- chunk_appendf(trash, "%s,", smp->strm ? tevt_evts2str(smp->strm->term_evts_log) : "-");
- chunk_appendf(trash, "%s,", smp->strm ? tevt_evts2str(smp->strm->scb->sedesc->term_evts_log) : "-");
- chunk_appendf(trash, "%s,", (bc_mux_ret != -1) ? tevt_evts2str(bc_mux_ret) : "-");
- chunk_appendf(trash, "%s}", bconn ? tevt_evts2str(bconn->term_evts_log) : "-");
+ chunk_printf(trash, "{%s,", tevt_evts2str(fconn ? fconn->term_evts_log : -1));
+ chunk_appendf(trash, "%s,", tevt_evts2str(fc_mux_ret));
+ chunk_appendf(trash, "%s,", tevt_evts2str(smp->strm ? smp->strm->scf->sedesc->term_evts_log : -1));
+ chunk_appendf(trash, "%s,", tevt_evts2str(smp->strm ? smp->strm->term_evts_log : -1));
+ chunk_appendf(trash, "%s,", tevt_evts2str(smp->strm ? smp->strm->scb->sedesc->term_evts_log : -1));
+ chunk_appendf(trash, "%s,", tevt_evts2str(bc_mux_ret));
+ chunk_appendf(trash, "%s}", tevt_evts2str(bconn ? bconn->term_evts_log : -1));
smp->data.u.str = *trash;
smp->data.type = SMP_T_STR;