Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dns cache 功能有bug,应该以hostname+portstr为key。 #3700

Open
zhanggao opened this issue Oct 26, 2017 · 10 comments
Open

dns cache 功能有bug,应该以hostname+portstr为key。 #3700

zhanggao opened this issue Oct 26, 2017 · 10 comments

Comments

@zhanggao
Copy link

rtmp端口号是1935,http-flv端口号默认80。
缓存的addrinfo 的 sockaddr 结构体带有端口号信息。
所以缓存域名解析信息时应该用hostname+portstr为key,
或者从内存里取的addrinfo缓存信息,如果端口号和本次不一致应该修改addrinfo里面的端口号信息。

@zhanggao
Copy link
Author

@raymond1012

@lrs0304
Copy link

lrs0304 commented Oct 26, 2017

ipv6地址存进去就变成空了

@wongzigii
Copy link

@zhanggao @lrs0304 有人有解决办法吗?同样遇到 ipv6 重连时候 dns 无法解析的情况

@houtengzhi
Copy link

修改hostname+portstr为key,解决了重定向的问题,还不清楚有没有其他副作用

@linjiansheng
Copy link
Contributor

linjiansheng commented Oct 31, 2018

设置 dns_cache_timeout 为 -1

补充下:
@zhanggao @yourchanges
tcp 本意默认dns_cache_clear 就是为-1的,但是下面AV_OPT_TYPE_INT64写错成了AV_OPT_TYPE_INT,导致默认值是 4294967295
{ "dns_cache_timeout", "dns cache TTL (in microseconds)", OFFSET(dns_cache_timeout), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E },

dns cache 默认就应该关闭。
如果命中dns cache,connect 失败了,现在没有重试(这时不用cache的info)的操作,这很危险

@yourchanges
Copy link

@mazejia
Copy link

mazejia commented Nov 19, 2019

修改hostname+portstr

请问具体要怎么设置呢,没接触过这块,试了弄了下,发现还是不行。

@nicolasiJasica
Copy link

我们目前处理的方案也是 采用的设置dns_cache_clear。
不过ffmpeg已经做了升级,修复了dns cache的问题(目前没有验证),参见https://patchwork.ffmpeg.org/project/ffmpeg/patch/20181008134841.10300-1-hvostik.leva@gmail.com/
因此猜测 升级到ffmpeg4.0即可解决此问题(目前ijk里默认的ffmpeg版本为3.4),具体升级ffmpeg可以参考https://www.jianshu.com/p/367ae20c2db8

@726491400
Copy link

726491400 commented May 7, 2022

设置了dns_cashe_clear 还是不行,移动网络播放m3u8直播流会报错hit dns cashe but content fail

@lyqanswer
Copy link

设置了dns_cashe_clear 还是不行,移动网络播放m3u8直播流会报错hit dns cashe but content fail

请问你的问题后来解决了吗,我也遇到跟你相同的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants