Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
c762bbfc
提交
c762bbfc
authored
9月 11, 2015
作者:
Juan Benet
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1682 from ipfs/fix/nat-spam
Fix/nat spam
上级
fdbe3620
5ebf962b
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
13 行增加
和
0 行删除
+13
-0
nat.go
p2p/nat/nat.go
+13
-0
没有找到文件。
p2p/nat/nat.go
浏览文件 @
c762bbfc
...
...
@@ -29,6 +29,9 @@ var log = eventlog.Logger("nat")
// Port mappings are renewed every (MappingDuration / 3)
const
MappingDuration
=
time
.
Second
*
60
// CacheTime is the time a mapping will cache an external address for
const
CacheTime
=
time
.
Second
*
15
// DiscoverNAT looks for a NAT device in the network and
// returns an object that can manage port mappings.
func
DiscoverNAT
()
*
NAT
{
...
...
@@ -159,6 +162,9 @@ type mapping struct {
extport
int
intaddr
ma
.
Multiaddr
proc
goprocess
.
Process
cached
ma
.
Multiaddr
cacheTime
time
.
Time
}
func
(
m
*
mapping
)
NAT
()
*
NAT
{
...
...
@@ -198,6 +204,10 @@ func (m *mapping) InternalAddr() ma.Multiaddr {
}
func
(
m
*
mapping
)
ExternalAddr
()
(
ma
.
Multiaddr
,
error
)
{
if
time
.
Now
()
.
Sub
(
m
.
cacheTime
)
<
CacheTime
{
return
m
.
cached
,
nil
}
if
m
.
ExternalPort
()
==
0
{
// dont even try right now.
return
nil
,
ErrNoMapping
}
...
...
@@ -224,6 +234,9 @@ func (m *mapping) ExternalAddr() (ma.Multiaddr, error) {
}
maddr2
:=
ipmaddr
.
Encapsulate
(
tcp
)
m
.
cached
=
maddr2
m
.
cacheTime
=
time
.
Now
()
return
maddr2
,
nil
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论