svc_vc_create/clnt_vc_create and RPC_ANYFD
Hi!
Sorry, but yet another question regarding rpc-tirpc-full-test-suite.
Some binaries from this suite pass RPC_ANYFD to svc_vc_create() or clnt_vc_create().
Like this one -
https://github.com/linux-test-project/ltp/blob/master/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_5/tirpc_svc_5.c
:
transp = svc_vc_create(RPC_ANYFD, 1024, 1024);
And, of course, the tests using this fail.
I dig into the libtirpc sources and didn't found anything that could state that we may pass RPC_ANYFD to these functions.
From svc_vc_create() comments:
"The filedescriptor passed in is expected to refer to a bound, but not yet connected socket."
and from clnt_vc_create():
"fd should be an open socket"
So invoking svc_vc_create(RPC_ANYFD,...) or clnt_vc_create(RPC_ANYFD, ...) is incorrect. Right?
Thank you.
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 22 lines · Stanislav Kholmanskikh
Hi!
Sorry, but yet another question regarding rpc-tirpc-full-test-suite.
Some binaries from this suite pass
RPC_ANYFDtosvc_vc_create()orclnt_vc_create().Like this one -
https://github.com/linux-test-project/ltp/blob/master/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_5/tirpc_svc_5.c
:transp =
svc_vc_create(RPC_ANYFD, 1024, 1024);And, of course, the tests using this fail.
I dig into the libtirpc sources and didn't found anything that could state that we may pass
RPC_ANYFDto these functions.From
svc_vc_create()comments:
"The filedescriptor passed in is expected to refer to a bound, but not yet connected socket."
Quoted 5 lines
and from
clnt_vc_create():
"fd should be an open socket"So invoking
svc_vc_create(RPC_ANYFD,...)orclnt_vc_create(RPC_ANYFD, ...)is incorrect. Right?
I don’t see anything in
http://docs.oracle.com/cd/E19504-01/802-5885/802-5885.pdf
that contradicts that.
AFAICT RPC_ANYFD is OK for the so-called “expert level” API, which means clnt_tli_create(3t) and svc_tli_create(3t).
It is also OK for the legacy APIs svctcp_create() and clnttcp_create() to take RPC_ANYSOCK.
--
Chuck Lever
[email protected]
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
Quoted 33 lines · Chuck Lever
Quoted 22 lines · Stanislav Kholmanskikh
Hi!
Sorry, but yet another question regarding rpc-tirpc-full-test-suite.
Some binaries from this suite pass
RPC_ANYFDtosvc_vc_create()orclnt_vc_create().Like this one -
https://github.com/linux-test-project/ltp/blob/master/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/tirpc_svc_5/tirpc_svc_5.c
:transp =
svc_vc_create(RPC_ANYFD, 1024, 1024);And, of course, the tests using this fail.
I dig into the libtirpc sources and didn't found anything that could state that we may pass
RPC_ANYFDto these functions.From
svc_vc_create()comments:
"The filedescriptor passed in is expected to refer to a bound, but not yet connected socket."Quoted 5 lines
and from
clnt_vc_create():
"fd should be an open socket"So invoking
svc_vc_create(RPC_ANYFD,...)orclnt_vc_create(RPC_ANYFD, ...)is incorrect. Right?I don’t see anything in
Quoted 8 lines
http://docs.oracle.com/cd/E19504-01/802-5885/802-5885.pdfthat contradicts that.
AFAICT
RPC_ANYFDis OK for the so-called “expert level” API, which meansclnt_tli_create(3t)andsvc_tli_create(3t).It is also OK for the legacy APIs
svctcp_create()andclnttcp_create()to takeRPC_ANYSOCK.
Thank you.
Quoted 6 lines
--
Chuck Lever
[email protected]
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list