[fedfs-utils] [PATCH 2/4] fedfsc: Fix result type in fedfs-get-limited-nsdb-params

Chuck Lever chuck.lever at oracle.com
Tue Dec 10 10:16:13 PST 2013


A copy-and-paste error resulted in the wrong RPC result type being
used in fedfs-get-limited-nsdb-params.  This goes back to commit
0520ee72 "Initial commit" Mar 29 15:37:40 2011.

The rpcgen-created data types are so unwieldy that typically they
are always type-cast.  Thus the compiler cannot check whether the
correct type is used, and problems like this are missed.

Signed-off-by: Chuck Lever <chuck.lever at oracle.com>
---
 src/fedfsc/fedfs-get-limited-nsdb-params.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/fedfsc/fedfs-get-limited-nsdb-params.c b/src/fedfsc/fedfs-get-limited-nsdb-params.c
index 59c3035..3d10aa0 100644
--- a/src/fedfsc/fedfs-get-limited-nsdb-params.c
+++ b/src/fedfsc/fedfs-get-limited-nsdb-params.c
@@ -97,10 +97,8 @@ fedfs_get_limited_nsdb_params_usage(const char *progname)
  * @param result NSDB information to display
  */
 static void
-fedfs_get_limited_nsdb_params_print_result(FedFsGetNsdbParamsRes result)
+fedfs_get_limited_nsdb_params_print_result(FedFsGetLimitedNsdbParamsRes result)
 {
-	FedFsNsdbParams *params = &result.FedFsGetNsdbParamsRes_u.params;
-
 	if (result.status == FEDFS_ERR_NSDB_PARAMS) {
 		printf("No connection parameters found\n");
 		return;
@@ -110,7 +108,7 @@ fedfs_get_limited_nsdb_params_print_result(FedFsGetNsdbParamsRes result)
 	if (result.status != FEDFS_OK)
 		return;
 
-	switch (params->secType) {
+	switch (result.FedFsGetLimitedNsdbParamsRes_u.secType) {
 	case FEDFS_SEC_NONE:
 		printf("ConnectionSec: FEDFS_SEC_NONE\n");
 		break;
@@ -119,7 +117,7 @@ fedfs_get_limited_nsdb_params_print_result(FedFsGetNsdbParamsRes result)
 		break;
 	default:
 		printf("Unrecognized FedFsConnectionSec value: %u\n",
-				params->secType);
+			result.FedFsGetLimitedNsdbParamsRes_u.secType);
 	}
 }
 
@@ -136,7 +134,7 @@ static FedFsStatus
 fedfs_get_limited_nsdb_params_call(const char *hostname, const char *nettype,
 		char *nsdbname, const unsigned short nsdbport)
 {
-	FedFsGetNsdbParamsRes result;
+	FedFsGetLimitedNsdbParamsRes result;
 	enum clnt_stat status;
 	FedFsNsdbName arg;
 	CLIENT *client;




More information about the fedfs-utils-devel mailing list