Apr 08

svc_process函数是一条RPC报文的处理入口. 在该函数被调用之前, RPC报文只是一段字节数组, 被放在结构体svc_rqst中. 结构体还包含了整个RPC服务器的上下文环境, 包括所有的程序和它们的过程处理器.

在svc_process函数中, RPC报文字节数组被解码, 然后交给相应的程序和过程进行处理. svc_process的处理流程大致可以分为如下(但代码中并没有按这个顺序进行处理, 而是交叉在一起, 造成了不必要的混乱):

1. RPC请求报文长度验证.
2. 解码出请求首部.
3. 装配部分响应首部.
4. 身份验证, 并将验证信息装配进首部.
5. 查找RPC程序和过程.
6. 调用过程, 处理请求. 此时响应数据已经被写入响应报文中, 或者出错.
7. 发送响应.

Continue reading »

Written by benegg at 2009-04-08 08:49:48 | tags: ,