refactor(net): the big network rebuild
- [x] 重构事件通知链
- [x] 使网络子系统更易读
- [ ] 引入uevent/netlink socket
- [x] 使http_server可中断
- [x] 正确实现unix stream, seqpacket socket框架
- [x] 解决资源依赖导致的潜在死锁
- [ ] 部分网络调用待完善
- [ ] 未能正常运行test-backlog
- [ ] 未引入路由子系统
- [x] close 时 解除 Port 占用 #990
- [ ] 实现shutdown逻辑 #989
- [ ] Address Family在转换到已有地址时,from_u16在2与10(INET6)上会返回None
- [ ] Redis 未能正常使用客户端连接
一次自认为性价比并不十分高的网络子系统重构,但是辛苦 @val213 @smallcjy @1037827920 @Saga1718 的大力支持,愿意在三天两头构建不成功的网络重构分支下协助我一同完成重构。现网络重构分支已准备好合入主线!
@Samuka007: no appropriate reviewer found, use r? to override
r? @fslongjin @yuyi2439
这个
define文件夹改名types更合乎惯例?没见过rust用define表示“定义公共的结构体”的意思的。
这个
define文件夹改名types更合乎惯例?没见过rust用define表示“定义公共的结构体”的意思的。
命名为 definition 如何呢?毕竟是一大票定义(
命名为
definition如何呢?毕竟是一大票定义(
rust仓库里面写的是types
然后rust圣经(R门!/滑稽)写的类型本身也是叫做Types
之前看过一些库,没见过用define之类的名字的。
命名为
definition如何呢?毕竟是一大票定义(
然后,那个文件夹里面的类型的命名也是需要修改,如果某个类型是要跟Posix规范定义的值保持一致的(对外接口的),请全部加上Posix前缀。
unix socket 似乎不能正常关闭、资源也没正常释放 @smallcjy @Saga1718
tcp udp port释放未实现
重构的 PR 命名为 refactor 似乎比 feat 更合适?
https://bbs.dragonos.org.cn/t/topic/414 跟踪 TCP Connect 开发
设备驱动模型部分发生了更改,请进行审查
cc @fslongjin
@dragonosbot review
New TODO: 需要完善 epoll 机制
https://github.com/Samuka007/dragonos-berkeley-socket/
@fslongjin cc? 虽然 unix socket 还用不了,但是原来的也只是充当给 Novashell 通信的内部实现,目前把之前逻辑错误(即会因找不到unix路径所属socket而错误创建socket的错误)去掉之后可以无问题进入 busybox。
@fslongjin cc? 虽然 unix socket 还用不了,但是原来的也只是充当给 Novashell 通信的内部实现,目前把之前逻辑错误(即会因找不到unix路径所属socket而错误创建socket的错误)去掉之后可以无问题进入 busybox。
ok,后面的pr再实现这个呗
解决了一下冲突,合进主线? @fslongjin cc
@Samuka007 @fslongjin cc
支持epoll了,但是测试程序在我那个分支,可以先把这个分支合进主线~
unix stream socket test
这个