当前位置: 首页>>代码示例>>Golang>>正文


Golang C.pcap_close函数代码示例

本文整理汇总了Golang中C.pcap_close函数的典型用法代码示例。如果您正苦于以下问题:Golang pcap_close函数的具体用法?Golang pcap_close怎么用?Golang pcap_close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了pcap_close函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: OpenLive

// OpenLive opens a device and returns a *Handle.
// It takes as arguments the name of the device ("eth0"), the maximum size to
// read for each packet (snaplen), whether to put the interface in promiscuous
// mode, and a timeout.
func OpenLive(device string, snaplen int32, promisc bool, timeout time.Duration) (handle *Handle, _ error) {
	var buf *C.char
	buf = (*C.char)(C.calloc(errorBufferSize, 1))
	defer C.free(unsafe.Pointer(buf))
	var pro C.int
	if promisc {
		pro = 1
	}

	dev := C.CString(device)
	defer C.free(unsafe.Pointer(dev))

	// This copies a bunch of the pcap_open_live implementation from pcap.c:
	cptr := C.pcap_create(dev, buf)
	if cptr == nil {
		return nil, errors.New(C.GoString(buf))
	}
	var status C.int
	if status = C.pcap_set_snaplen(cptr, C.int(snaplen)); status < 0 {
		goto fail
	} else if status = C.pcap_set_promisc(cptr, pro); status < 0 {
		goto fail
	} else if status = C.pcap_set_timeout(cptr, C.int(timeout/time.Millisecond)); status < 0 {
		goto fail
	}
	return newHandle(cptr), nil
fail:
	C.pcap_close(cptr)
	return nil, statusError(status)
}
开发者ID:pombredanne,项目名称:geard,代码行数:34,代码来源:pcap.go

示例2: Close

// Close closes the files associated with p and deallocates C resources.
func (p *Pcap) Close() {
	if p.cptr != nil {
		p.m.Lock()
		C.pcap_close(p.cptr)
		p.m.Unlock()
	}
}
开发者ID:pote,项目名称:golibpcap,代码行数:8,代码来源:pcap.go

示例3: Close

// Close closes the underlying pcap handle.
func (p *Handle) Close() {
	p.mu.Lock()
	if p.cptr == nil {
		return
	}
	C.pcap_close(p.cptr)
	p.cptr = nil
	p.mu.Unlock()
}
开发者ID:ldnvnbl,项目名称:gopacket,代码行数:10,代码来源:pcap.go

示例4: Close

func (p *Pcap) Close() {
	C.pcap_close(p.cptr)
}
开发者ID:dlintw,项目名称:gopcap,代码行数:3,代码来源:pcap.go

示例5: CleanUp

// CleanUp cleans up any stuff left over from a successful or failed building
// of a handle.
func (p *InactiveHandle) CleanUp() {
	if p.cptr != nil {
		C.pcap_close(p.cptr)
	}
}
开发者ID:donckers,项目名称:gopacket,代码行数:7,代码来源:pcap.go

示例6: Close

// Close closes the underlying pcap handle.
func (p *Handle) Close() {
	C.pcap_close(p.cptr)
}
开发者ID:donckers,项目名称:gopacket,代码行数:4,代码来源:pcap.go

示例7: Close

// Close the packet source.
func (h *Handle) Close() {
	C.pcap_close(h.pcap)
}
开发者ID:kelixin,项目名称:go.pkt,代码行数:4,代码来源:capture.go

示例8: Close

func (p *Pcap) Close() error {
	// is there a possible error condition here?
	C.pcap_close(p.cptr)
	return nil
}
开发者ID:jvortega,项目名称:mimir,代码行数:5,代码来源:pcap.go

示例9: Close

func (p *Pcap) Close() {
	C.pcap_close(p.pcap)
}
开发者ID:jasonish,项目名称:dumpy,代码行数:3,代码来源:pcap.go


注:本文中的C.pcap_close函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。