Lines Matching refs:handle
144 can_activate(pcap_t* handle) in can_activate() argument
146 struct pcap_can *handlep = handle->priv; in can_activate()
151 handle->bufsize = 24; in can_activate()
152 handle->offset = 8; in can_activate()
153 handle->linktype = DLT_CAN_SOCKETCAN; in can_activate()
154 handle->read_op = can_read_linux; in can_activate()
155 handle->inject_op = can_inject_linux; in can_activate()
156 handle->setfilter_op = can_setfilter_linux; in can_activate()
157 handle->setdirection_op = can_setdirection_linux; in can_activate()
158 handle->set_datalink_op = NULL; in can_activate()
159 handle->getnonblock_op = pcap_getnonblock_fd; in can_activate()
160 handle->setnonblock_op = pcap_setnonblock_fd; in can_activate()
161 handle->stats_op = can_stats_linux; in can_activate()
164 handle->fd = socket(PF_CAN, SOCK_RAW, CAN_RAW); in can_activate()
165 if (handle->fd < 0) in can_activate()
167 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't create raw socket %d:%s", in can_activate()
174 strncpy(ifr.ifr_name, handle->opt.source, sizeof(ifr.ifr_name)); in can_activate()
175 if (ioctl(handle->fd, SIOCGIFINDEX, &ifr) < 0) in can_activate()
177 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, in can_activate()
180 pcap_cleanup_live_common(handle); in can_activate()
186 handle->buffer = malloc(handle->bufsize); in can_activate()
187 if (!handle->buffer) in can_activate()
189 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't allocate dump buffer: %s", in can_activate()
191 pcap_cleanup_live_common(handle); in can_activate()
198 if( bind( handle->fd, (struct sockaddr*)&addr, sizeof(addr) ) < 0 ) in can_activate()
200 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't attach to device %d %d:%s", in can_activate()
202 pcap_cleanup_live_common(handle); in can_activate()
206 if (handle->opt.rfmon) in can_activate()
209 pcap_cleanup_live_common(handle); in can_activate()
213 handle->selectable_fd = handle->fd; in can_activate()
220 can_read_linux(pcap_t *handle, int max_packets, pcap_handler callback, u_char *user) in can_read_linux() argument
227 iv.iov_base = &handle->buffer[handle->offset]; in can_read_linux()
228 iv.iov_len = handle->snapshot; in can_read_linux()
233 msg.msg_control = handle->buffer; in can_read_linux()
234 msg.msg_controllen = handle->offset; in can_read_linux()
238 pkth.caplen = recvmsg(handle->fd, &msg, 0); in can_read_linux()
239 if (handle->break_loop) in can_read_linux()
241 handle->break_loop = 0; in can_read_linux()
248 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't receive packet %d:%s", in can_read_linux()
254 cf = (struct can_frame*)&handle->buffer[8]; in can_read_linux()
262 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "Can't get time of day %d:%s", in can_read_linux()
267 callback(user, &pkth, &handle->buffer[8]); in can_read_linux()
274 can_inject_linux(pcap_t *handle, const void *buf, size_t size) in can_inject_linux() argument
277 snprintf(handle->errbuf, PCAP_ERRBUF_SIZE, "inject not supported on " in can_inject_linux()
284 can_stats_linux(pcap_t *handle, struct pcap_stat *stats) in can_stats_linux() argument