📄 s_rpc
字号:
#!/bin/sh -# $Id: s_rpc,v 11.18 2002/08/15 15:22:09 bostic Exp $## Build the automatically generated RPC filesecho "Building RPC client/server files". ./RELEASEt=/tmp/__db_atrap 'rm -f $t ; exit 0' 0trap 'rm -f $t ; exit 1' 1 2 3 13 15client_file=../rpc_client/gen_client.cctmpl_file=./template/gen_client_retdbinc_file=../dbinc/db.indefs_file=../dbinc_auto/rpc_defs.inheader_file=../dbinc_auto/db_server.hproc_file=../rpc_server/c/db_server_proc.crpcclnt_file=../rpc_client/db_server_clnt.crpcsvc_file=../rpc_server/c/db_server_svc.crpcxdr_file=../rpc_server/c/db_server_xdr.csed_file=../rpc_server/c/db_server_proc.sedserver_file=../rpc_server/c/gen_db_server.cstmpl_file=./template/db_server_procxdr_file=../rpc_server/db_server.xrm -f $client_file \ $ctmpl_file \ $header_file \ $rpcclnt_file \ $rpcsvc_file \ $proc_file \ $rpcxdr_file \ $sed_file \ $server_file \ $stmpl_file \ $xdr_file## Generate client/server/XDR code#xidsize=\`awk '/^#define/ { if ($2 == "DB_XIDDATASIZE") { print $3 }}' $dbinc_file`awk -f gen_rpc.awk \ -v major=$DB_VERSION_MAJOR \ -v minor=$DB_VERSION_MINOR \ -v xidsize=$xidsize \ -v client_file=$client_file \ -v ctmpl_file=$ctmpl_file \ -v sed_file=$sed_file \ -v server_file=$server_file \ -v stmpl_file=$stmpl_file \ -v xdr_file=$xdr_file < ../rpc_server/rpc.srcchmod 444 $client_file $server_file## Now run rpcgen to generate all our sources from the XDR file#rpcgen -h $xdr_file > $header_filerpcgen -l $xdr_file > $rpcclnt_filerpcgen -s tcp $xdr_file > $rpcsvc_filerpcgen -c $xdr_file > $rpcxdr_file## Run various server files through sed.#cat <<ENDOFSEDTEXT>$ts/^#include[ ]"db_server.h"/#include "db_config.h"\\\\\\#ifndef NO_SYSTEM_INCLUDES\\\\#include <rpc\\/rpc.h>\\\\#include <rpc\\/pmap_clnt.h>//^#include <netinet.in.h>/a\\\\#endif\\\\\\#include "db_int.h"\\\\#include "dbinc_auto/db_server.h"\\\\#include "dbinc/db_server_int.h"\\\\#include "dbinc_auto/rpc_server_ext.h"/^ return;/i\\\\ __dbsrv_timeout(0);s/svc_sendreply(transp, xdr_void,/svc_sendreply(transp, (xdrproc_t)xdr_void,/s/svc_getargs(transp, xdr_argument, &argument)/svc_getargs(transp, (xdrproc_t)xdr_argument, (char *)\&argument)/s/svc_sendreply(transp, xdr_result, result)/svc_sendreply(transp, (xdrproc_t)xdr_result, result)/s/svc_freeargs(transp, xdr_argument, &argument)/svc_freeargs(transp, (xdrproc_t)xdr_argument, (char *)\&argument)/s/^main/void __dbsrv_main/ENDOFSEDTEXTsed -f $t $rpcsvc_file > ${rpcsvc_file}.newmv ${rpcsvc_file}.new $rpcsvc_filesed -f $sed_file ${proc_file}.in > ${proc_file}# Run rpcgen files through sed to add HAVE_RPC ifdef and appropriate# includes.cat <<ENDOFSEDTEXT>$t1i\\\\#include "db_config.h"\\\\\\#ifdef HAVE_RPC/^#include "db_server.h"/c\\\\#ifndef NO_SYSTEM_INCLUDES\\\\#include <rpc/rpc.h>\\\\\\#include <strings.h>\\\\#endif\\\\\\#include "db_int.h"\\\\#include "dbinc_auto/db_server.h"\$a\\\\#endif /* HAVE_RPC */ENDOFSEDTEXTsed -f $t $rpcxdr_file > ${rpcxdr_file}.newmv ${rpcxdr_file}.new $rpcxdr_filesed -f $t $rpcclnt_file > ${rpcclnt_file}.newmv ${rpcclnt_file}.new $rpcclnt_file# Copy the DB_RPC SERVER #defines into a separate file so# they can be part of db.h.msgc="/* DO NOT EDIT: automatically built by dist/s_rpc. */"(echo "" && echo "$msgc" && sed -n -e "/DB_RPC_SERVER/p" $header_file) > $defs_file# Fix up the header file:# Remove the DB_RPC_SERVER #defines.# Remove the <rpc/rpc.h> include, it needs to be included earlier# than that.sed -e "/DB_RPC_SERVER/d"\ -e "/^#include.*<rpc\/rpc.h>/d" $header_file > ${header_file}.newmv ${header_file}.new $header_filechmod 444 $header_file $rpcclnt_file $rpcsvc_file $rpcxdr_file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -