Пример #1
0
static void
dag_platform_cleanup(pcap_t *p)
{
    struct pcap_dag *pd;

    if (p != NULL) {
        pd = p->priv;
#ifdef HAVE_DAG_STREAMS_API
        if(dag_stop_stream(p->fd, pd->dag_stream) < 0)
            fprintf(stderr,"dag_stop_stream: %s\n", strerror(errno));

        if(dag_detach_stream(p->fd, pd->dag_stream) < 0)
            fprintf(stderr,"dag_detach_stream: %s\n", strerror(errno));
#else
        if(dag_stop(p->fd) < 0)
            fprintf(stderr,"dag_stop: %s\n", strerror(errno));
#endif /* HAVE_DAG_STREAMS_API */
        if(p->fd != -1) {
            if(dag_close(p->fd) < 0)
                fprintf(stderr,"dag_close: %s\n", strerror(errno));
            p->fd = -1;
        }
        delete_pcap_dag(p);
        pcap_cleanup_live_common(p);
    }
    /* Note: don't need to call close(p->fd) here as dag_close(p->fd) does this. */
}
Пример #2
0
static void
dag_platform_close(pcap_t *p)
{
	
	if (p != NULL) {
#ifdef HAVE_DAG_STREAMS_API
		if(dag_stop_stream(p->fd, p->md.dag_stream) < 0)
			fprintf(stderr,"dag_stop_stream: %s\n", strerror(errno));
		
		if(dag_detach_stream(p->fd, p->md.dag_stream) < 0)
			fprintf(stderr,"dag_detach_stream: %s\n", strerror(errno));
#else
		if(dag_stop(p->fd) < 0)
			fprintf(stderr,"dag_stop: %s\n", strerror(errno));
#endif /* HAVE_DAG_STREAMS_API */
		if(dag_close(p->fd) < 0)
			fprintf(stderr,"dag_close: %s\n", strerror(errno));
#ifdef linux		
		free(p->md.device);
#endif
	}
	delete_pcap_dag(p);
	/* Note: don't need to call close(p->fd) here as dag_close(p->fd) does this. */
}
Пример #3
0
/* Pauses a DAG input trace */
static int dag_pause_input(libtrace_t *libtrace) {
	dag_stop(FORMAT_DATA->fd);
	return 0;
}