Lines Matching defs:nlh

140 		const struct nlmsghdr *nlh = (const struct nlmsghdr *) bp;
170 if (nlh->nlmsg_len < sizeof(struct nlmsghdr) || (u_int)len < nlh->nlmsg_len) {
171 pcap_snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Message truncated: (got: %d) (nlmsg_len: %u)", len, nlh->nlmsg_len);
175 if (NFNL_SUBSYS_ID(nlh->nlmsg_type) == NFNL_SUBSYS_ULOG &&
176 NFNL_MSG_TYPE(nlh->nlmsg_type) == NFULNL_MSG_PACKET)
178 else if (NFNL_SUBSYS_ID(nlh->nlmsg_type) == NFNL_SUBSYS_QUEUE &&
179 NFNL_MSG_TYPE(nlh->nlmsg_type) == NFQNL_MSG_PACKET)
192 if (nlh->nlmsg_len < HDR_LENGTH) {
193 pcap_snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Malformed message: (nlmsg_len: %u)", nlh->nlmsg_len);
197 nfg = NLMSG_DATA(nlh);
198 if (nlh->nlmsg_len > HDR_LENGTH) {
200 int attr_len = nlh->nlmsg_len - NLMSG_ALIGN(HDR_LENGTH);
234 payload = NLMSG_DATA(nlh);
235 pkth.caplen = pkth.len = nlh->nlmsg_len-NLMSG_ALIGN(sizeof(struct nlmsghdr));
254 so nfg is always initialized to NLMSG_DATA(nlh). */
260 msg_len = NLMSG_ALIGN(nlh->nlmsg_len);
321 struct nlmsghdr *nlh = (struct nlmsghdr *) buf;
331 nlh->nlmsg_len = NLMSG_LENGTH(sizeof(struct nfgenmsg));
332 nlh->nlmsg_type = msg_type;
333 nlh->nlmsg_flags = NLM_F_REQUEST | (ack ? NLM_F_ACK : 0);
334 nlh->nlmsg_pid = 0; /* to kernel */
335 nlh->nlmsg_seq = seq_id;
342 struct nfattr *nfa = (struct nfattr *) (buf + NLMSG_ALIGN(nlh->nlmsg_len));
347 nlh->nlmsg_len = NLMSG_ALIGN(nlh->nlmsg_len) + NFA_ALIGN(nfa->nfa_len);
353 if (sendto(handle->fd, nlh, nlh->nlmsg_len, 0, (struct sockaddr *) &snl, sizeof(snl)) == -1)
377 nlh = (struct nlmsghdr *) buf;
378 if (snl.nl_pid != 0 || seq_id != nlh->nlmsg_seq) /* if not from kernel or wrong sequence skip */
381 while ((u_int)len >= NLMSG_SPACE(0) && NLMSG_OK(nlh, (u_int)len)) {
382 if (nlh->nlmsg_type == NLMSG_ERROR || (nlh->nlmsg_type == NLMSG_DONE && nlh->nlmsg_flags & NLM_F_MULTI)) {
383 if (nlh->nlmsg_len < NLMSG_ALIGN(sizeof(struct nlmsgerr))) {
387 errno = -(*((int *)NLMSG_DATA(nlh)));
390 nlh = NLMSG_NEXT(nlh, len);