|
Apr 08
|
svc_process函数
RPC/NFS协议实现详解
Views: 6546 |
1 Comment »
|
svc_process函数是一条RPC报文的处理入口. 在该函数被调用之前, RPC报文只是一段字节数组, 被放在结构体svc_rqst中. 结构体还包含了整个RPC服务器的上下文环境, 包括所有的程序和它们的过程处理器.
在svc_process函数中, RPC报文字节数组被解码, 然后交给相应的程序和过程进行处理. svc_process的处理流程大致可以分为如下(但代码中并没有按这个顺序进行处理, 而是交叉在一起, 造成了不必要的混乱):
1. RPC请求报文长度验证.
2. 解码出请求首部.
3. 装配部分响应首部.
4. 身份验证, 并将验证信息装配进首部.
5. 查找RPC程序和过程.
6. 调用过程, 处理请求. 此时响应数据已经被写入响应报文中, 或者出错.
7. 发送响应.

Recent Comments