提交 ad8d4f37 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

Close lwIP sockets correctly.

上级 f2afe63f
......@@ -30,13 +30,19 @@ filedup(struct file *f)
void
fileclose(struct file *f)
{
if (__sync_sub_and_fetch(&f->ref, 1) > 0)
extern void netclose(int sock);
if (subfetch(&f->ref, 1) > 0)
return;
if(f->type == FD_PIPE)
pipeclose(f->pipe, f->writable);
else if(f->type == FD_INODE)
iput(f->ip);
else if(f->type == FD_SOCKET)
netclose(f->socket);
else
panic("fileclose bad type");
kmfree(f);
}
......
......@@ -261,6 +261,12 @@ netaccept(int sock, void *xaddr, void *xaddrlen)
return ss;
}
void
netclose(int sock)
{
lwip_close(sock);
}
#else
void
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论