The functions from the "bottom level" TI-RPC API:
 * svc_dg_create
 * svc_vc_create
 * clnt_dg_create
 * clnt_vc_create
do not accept RPC_ANYFD parameter. This parameter is for the "expert level" API.

These functions should be passed with a bound socket.

Implemented it using bound_socket() function.

Signed-off-by: Stanislav Kholmanskikh <[email protected]>
---
 .../tirpc_bottomlevel_clnt_call.c                  |   18 ++++++++++++++--
 .../tirpc_clnt_dg_create.c                         |   16 ++++++++++++++-
 .../tirpc_clnt_vc_create.c                         |   18 +++++++++++++++-
 .../tirpc_svc_dg_create.c                          |   16 ++++++++++++++-
 .../tirpc_svc_vc_create.c                          |   21 +++++++++++++++++++-
 5 files changed, 81 insertions(+), 8 deletions(-)

diff --git 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/tirpc_bottomlevel_clnt_call.c
 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/tirpc_bottomlevel_clnt_call.c
index 2498965..28d14ff 100644
--- 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/tirpc_bottomlevel_clnt_call.c
+++ 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_call/tirpc_bottomlevel_clnt_call.c
@@ -32,6 +32,8 @@
 #include <netinet/in.h>
 #include <tirpc/rpc/svc.h>
 #include <errno.h>
+#include <unistd.h>
+#include "librpc-tirpc.h"
 
 #define PROCNUM 1
 #define VERSNUM 1
@@ -54,9 +56,10 @@ int main(int argn, char *argc[])
        int var_snd = 10;
        int var_rec = -1;
        struct timeval tv;
+       int sock;
 
-       tv.tv_sec = 0;
-       tv.tv_usec = 100;
+       tv.tv_sec = 1;
+       tv.tv_usec = 0;
 
        nconf = getnetconfigent("udp");
        if (nconf == (struct netconfig *)NULL) {
@@ -75,12 +78,19 @@ int main(int argn, char *argc[])
                exit(1);
        }
 
-       client = clnt_dg_create(RPC_ANYFD, &svcaddr,
+       sock = bound_socket(AF_INET, SOCK_DGRAM);
+       if (sock < 0) {
+               perror("bound_socket() failed");
+               exit(1);
+       }
+
+       client = clnt_dg_create(sock, &svcaddr,
                                progNum, VERSNUM, 1024, 1024);
 
        if (client == NULL) {
                clnt_pcreateerror("ERR");
                printf("5\n");
+               close(sock);
                exit(1);
        }
 
@@ -94,5 +104,7 @@ int main(int argn, char *argc[])
 
        clnt_destroy(client);
 
+       close(sock);
+
        return test_status;
 }
diff --git 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/tirpc_clnt_dg_create.c
 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/tirpc_clnt_dg_create.c
index 88a86f8..b38bc9e 100644
--- 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/tirpc_clnt_dg_create.c
+++ 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create/tirpc_clnt_dg_create.c
@@ -32,6 +32,8 @@
 #include <netinet/in.h>
 #include <tirpc/rpc/svc.h>
 #include <errno.h>
+#include <unistd.h>
+#include "librpc-tirpc.h"
 
 #define PROCNUM 1
 #define VERSNUM 1
@@ -50,6 +52,7 @@ int main(int argn, char *argc[])
        struct netconfig *nconf = NULL;
        struct netbuf svcaddr;
        char addrbuf[ADDRBUFSIZE];
+       int sock;
 
        nconf = getnetconfigent("udp");
        if (nconf == (struct netconfig *)NULL) {
@@ -68,10 +71,21 @@ int main(int argn, char *argc[])
                exit(1);
        }
 
-       client = clnt_dg_create(RPC_ANYFD, &svcaddr,
+       sock = bound_socket(AF_INET, SOCK_DGRAM);
+       if (sock < 0) {
+               perror("bound_socket() failed");
+               exit(1);
+       }
+
+       client = clnt_dg_create(sock, &svcaddr,
                                progNum, VERSNUM, 1024, 1024);
        test_status = ((CLIENT *) client != NULL) ? 0 : 1;
 
+       if (client != NULL)
+               clnt_destroy(client);
+
+       close(sock);
+
        printf("%d\n", test_status);
 
        return test_status;
diff --git 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/tirpc_clnt_vc_create.c
 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/tirpc_clnt_vc_create.c
index e547f1f..acbb55f 100644
--- 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/tirpc_clnt_vc_create.c
+++ 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create/tirpc_clnt_vc_create.c
@@ -32,6 +32,8 @@
 #include <netinet/in.h>
 #include <tirpc/rpc/svc.h>
 #include <errno.h>
+#include <unistd.h>
+#include "librpc-tirpc.h"
 
 //Standard define
 #define PROCNUM 1
@@ -53,8 +55,9 @@ int main(int argn, char *argc[])
        struct netconfig *nconf = NULL;
        struct netbuf svcaddr;
        char addrbuf[ADDRBUFSIZE];
+       int sock;
 
-       nconf = getnetconfigent("udp");
+       nconf = getnetconfigent("tcp");
        if (nconf == (struct netconfig *)NULL) {
                printf("err nconf\n");
                exit(1);
@@ -69,10 +72,21 @@ int main(int argn, char *argc[])
                exit(1);
        }
 
-       client = clnt_vc_create(RPC_ANYFD, &svcaddr,
+       sock = bound_socket(AF_INET, SOCK_DGRAM);
+       if (sock < 0) {
+               perror("bound_socket() failed");
+               exit(1);
+       }
+
+       client = clnt_vc_create(sock, &svcaddr,
                                progNum, VERSNUM, 1024, 1024);
        test_status = ((CLIENT *) client != NULL) ? 0 : 1;
 
+       if (client != NULL)
+               clnt_destroy(client);
+
+       close(sock);
+
        printf("%d\n", test_status);
 
        return test_status;
diff --git 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/tirpc_svc_dg_create.c
 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/tirpc_svc_dg_create.c
index 8f1953e..b93e4d6 100644
--- 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/tirpc_svc_dg_create.c
+++ 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create/tirpc_svc_dg_create.c
@@ -32,6 +32,8 @@
 #include <netinet/in.h>
 #include <tirpc/rpc/svc.h>
 #include <errno.h>
+#include <unistd.h>
+#include "librpc-tirpc.h"
 
 #define PROCNUM 1
 #define VERSNUM 1
@@ -40,10 +42,22 @@ int main(int argn, char *argc[])
 {
        int test_status = 1;
        SVCXPRT *transp = NULL;
+       int sock;
 
-       transp = svc_dg_create(RPC_ANYFD, 0, 0);
+       sock = bound_socket(AF_INET, SOCK_DGRAM);
+       if (sock < 0) {
+               perror("bound_socket() failed");
+               return 1;
+       }
+
+       transp = svc_dg_create(sock, 0, 0);
        test_status = ((SVCXPRT *) transp != NULL) ? 0 : 1;
 
+       if (transp != NULL)
+               svc_destroy(transp);
+
+       close(sock);
+
        printf("%d\n", test_status);
 
        return test_status;
diff --git 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/tirpc_svc_vc_create.c
 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/tirpc_svc_vc_create.c
index 4245586..491ac82 100644
--- 
a/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/tirpc_svc_vc_create.c
+++ 
b/testcases/network/rpc/rpc-tirpc/tests_pack/rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create/tirpc_svc_vc_create.c
@@ -32,6 +32,8 @@
 #include <netinet/in.h>
 #include <tirpc/rpc/svc.h>
 #include <errno.h>
+#include <unistd.h>
+#include "librpc-tirpc.h"
 
 #define PROCNUM 1
 #define VERSNUM 1
@@ -40,10 +42,27 @@ int main(int argn, char *argc[])
 {
        int test_status = 1;
        SVCXPRT *transp = NULL;
+       int sock;
 
-       transp = svc_vc_create(RPC_ANYFD, 0, 0);
+       sock = bound_socket(AF_INET, SOCK_STREAM);
+       if (sock < 0) {
+               perror("bound_socket() failed");
+               return 1;
+       }
+
+       if (listen(sock, 10) < 0) {
+               perror("listen() failed");
+               return 1;
+       }
+
+       transp = svc_vc_create(sock, 0, 0);
        test_status = ((SVCXPRT *) transp != NULL) ? 0 : 1;
 
+       if (transp != NULL)
+               svc_destroy(transp);
+
+       close(sock);
+
        printf("%d\n", test_status);
 
        return test_status;
-- 
1.7.1


------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to