CcnbMsg CcnLAC_read(CcnLAC self) { if (!CcnLAC_ready(self)) return NULL; struct ccn_charbuf* cbuf = CcnbOR_read(self->ccnbor); if (cbuf == NULL) return NULL; CcnbMsg msg = CcnbMsg_fromEncap(cbuf); if (CcnbMsg_verifyIntegrity(msg)) return msg; else { self->error = true; return NULL; } }
NdnlpPkt Link_read(Link self) { if (self->lmd != NULL) { SockAddr addr = SockAddr_clone(self->addr); NdnlpPkt pkt = LMD_read(self->lmd, addr); SockAddr_dtor(addr); return pkt; } else { struct ccn_charbuf* cbuf = CcnbOR_read(self->ccnbor); if (cbuf == NULL) return NULL; return (NdnlpPkt)cbuf; } }