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

fix: a problem that cannot read mtr output from pipe #132

Merged
merged 7 commits into from
Aug 15, 2022

Conversation

mzz2017
Copy link
Contributor

@mzz2017 mzz2017 commented Aug 14, 2022

bufio.ScanLines scans lines using \r?\n by default, which prevents us from reading the output of some programs from a pipe, such as mtr.

Because these programs use \r for newlines, we can use strace to know that.

This PR fixed it by using \r?\n|\r\n? to check the newline.

To reproduce it, try:

mtr 223.5.5.5 --curses | nali

Thanks co-debuggers @chinggg @cubercsl .

Copy link
Owner

@zu1k zu1k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, this will fix #12, #61, #85, #115, #123.

I think it should work, I will test it tomorrow.

pkg/common/scan.go Outdated Show resolved Hide resolved
cmd/root.go Outdated Show resolved Hide resolved
@mzz2017
Copy link
Contributor Author

mzz2017 commented Aug 14, 2022

I have read those issues and fixed the format problem.

@zu1k zu1k merged commit 8e68a77 into zu1k:master Aug 15, 2022
@zu1k
Copy link
Owner

zu1k commented Aug 15, 2022

Thank you, I have test it, it works well with mtr.

fcwys added a commit to fcwys/nali that referenced this pull request Oct 21, 2022
修复wry文件不完整时crash的问题

对 nali 的数据库和配置文件目录进行了规范,具体见 [文档-工作目录](https://github.com/zu1k/nali#%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95)

优先使用环境变量 NALI_HOME、NALI_CONFIG_HOME、NALI_DB_HOME 指定的目录
未指定 nali 特定环境变量的情况下默认使用 XDG 规范,配置文件目录在 $XDG_CONFIG_HOME/nali,数据库文件目录在 $XDG_DATA_HOME/nali
若未检测到 XDG 相关环境变量,将根据平台使用默认目录,具体见 XDG Base Directory 中 XDG_CONFIG_HOME 和 XDG_DATA_HOME 部分
初次运行此版本将会进行目录和数据的迁移,将 ~/.nali 下的配置文件和数据库转移到相应目录,并删除 ~/.nali 目录

支持使用环境变量指定的代理下载数据库,thanks to @jingjingxyk zu1k#126
修复了 pipe mtr 时无法获取内容和格式错乱的问题,thanks to @mzz2017 zu1k#132 , fix zu1k#12, zu1k#61, zu1k#85, zu1k#115, zu1k#123.
cache map 使用并发安全的版本,thanks to @lhcn zu1k#125
升级 Go 版本到 1.19,更新了依赖
不再支持 ip2region 旧数据库格式,目前仅支持 ip2region xdb 格式

去除了已过时的数据库下载代码
从 git 历史记录中去除了数据库文件

修复自动迁移导致生成空配置文件的bug
更新纯真IP数据库的下载地址
fcwys added a commit to fcwys/nali that referenced this pull request May 11, 2024
修复wry文件不完整时crash的问题

对 nali 的数据库和配置文件目录进行了规范,具体见 [文档-工作目录](https://github.com/zu1k/nali#%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95)

优先使用环境变量 NALI_HOME、NALI_CONFIG_HOME、NALI_DB_HOME 指定的目录
未指定 nali 特定环境变量的情况下默认使用 XDG 规范,配置文件目录在 $XDG_CONFIG_HOME/nali,数据库文件目录在 $XDG_DATA_HOME/nali
若未检测到 XDG 相关环境变量,将根据平台使用默认目录,具体见 XDG Base Directory 中 XDG_CONFIG_HOME 和 XDG_DATA_HOME 部分
初次运行此版本将会进行目录和数据的迁移,将 ~/.nali 下的配置文件和数据库转移到相应目录,并删除 ~/.nali 目录

支持使用环境变量指定的代理下载数据库,thanks to @jingjingxyk zu1k#126
修复了 pipe mtr 时无法获取内容和格式错乱的问题,thanks to @mzz2017 zu1k#132 , fix zu1k#12, zu1k#61, zu1k#85, zu1k#115, zu1k#123.
cache map 使用并发安全的版本,thanks to @lhcn zu1k#125
升级 Go 版本到 1.19,更新了依赖
不再支持 ip2region 旧数据库格式,目前仅支持 ip2region xdb 格式

去除了已过时的数据库下载代码
从 git 历史记录中去除了数据库文件

修复自动迁移导致生成空配置文件的bug
更新纯真IP数据库的下载地址
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

Successfully merging this pull request may close these issues.

None yet

2 participants