2013年11月15日
摘要: 该文件是RPCGEN生成的服务器端的存根。主要做了以下的修改0.每个对应的program NEWMDSADD_PROG{ version NEWMDSADD_VERS { struct metadata_info newmdsadd(struct mds_info) = 1; int migrate_metadata(struct metadata_info) = 2; int newmdsdone(struct migrate_argument) = 3; }=1;}=0x20110910;都对应在*.svc.c里面对应一个static voidnewmdsadd_prog_1(str... 阅读全文
posted @ 2013-11-15 16:31 ″ Jerry。 阅读(207) 评论(0) 推荐(0)
摘要: 对于rpc说明书文件test.x,其中定义服务器过程以及他们的参数和结果。使用rpcgen必须要生成的几个文件:rpcgen–C-Mtest.x//-C生成ANSI C的代码, -Mtest.h:过程及其参数的说明tes_xdr.c:用于rpc外部数据表示test_clnt.c:客户端存根test_svc.c:服务器存根对于说明书文件test.x(至于说明书文件能放那些东西,用什么格式表示,这里不做介绍)const NAMELEN=256;typedef string PATHNAME;const MAXCHUNK=256;struct test_in{PATHNAME pathname;ui 阅读全文
posted @ 2013-11-15 15:44 ″ Jerry。 阅读(920) 评论(0) 推荐(0)
摘要: 主要修改的地方。1.返回值的类型。 由rpcgen生成的文件,返回的值一般是enum clnt_stat 但是在项目中做了修改,对应文件修改修改为只返回需要的信息, 如newmdsadd_1()只返回了metadata_info的信息,因为只有这个信息是我们所关心的。2.在rpcgen生成的文件中,是直接return掉很多东西,而在spnfsd中代替的是if语句。如果成功的话==RPC_SUCCESS返回metadata_info类型的变量,否则直接返回NULL这样的好处是可以实现,程序的鲁棒性。robust。3.加入了一些语句,memset(),将简要返回值大小的空间,内容清空。以免影响正常 阅读全文
posted @ 2013-11-15 15:09 ″ Jerry。 阅读(204) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2013-11-15 14:53 ″ Jerry。 阅读(4) 评论(0) 推荐(0)