OPEN(一)

1.OPEN请求报文和应答报文中的数据

        OPEN操作比较复杂,涉及到很多种特殊情况。按照RFC3530的规定,OPEN请求报文中需要包含下列数据:

struct OPEN4args {
        seqid4          seqid;          // 这是一个序号,保证请求能够序列化.
        uint32_t        share_access;   // 这是用户请求的访问权限
        uint32_t        share_deny;     // 一定不能有这些权限,Linux中固定设置为0.
        open_owner4     owner;          // clientid + 这次OPEN操作的名称.
        openflag4       openhow;        // 有两个取值:OPEN4_NOCREATE和OPEN4_CREATE
        open_claim4     claim;          // 有四个取值:CLAIM_NULL、CLAIM_PREVIOUS、CLAIM_DELEGATE_CUR、CLAIM_DELEGATE_PREV
};

        owner包含两个字段:clientid和这次操作的名称,  服务器端可以根据clientid和OPEN操作的名称查找是否已经保存了这次操作的信息。seqid是OPEN操作的序号,保证多个OPEN操作序列化执行。share_access是用户打开文件时请求的访问权限,share_deny是为Windows share reservation设置的字段,Linux系统中这个字段固定为0。openhow表示如果文件不存在是否创建一个新文件。claim表示OPEN类型,按照按照claim值不同,OPEN操作分为四种类型。这篇文>章中,我们只讲解最常见的一种情况:打开服务器端存在的一个文件。这种请求中claim的类型是CLAIM_NULL。这种情况下,open_claim4中还包含了文件的名>称,这是我们要打开的文件。

    按照RFC3530的规定,OPEN操作应答报文包含下列内容

struct OPEN4resok {
        stateid4        stateid;        /* Stateid for open */
        change_info4 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值