]> The Tcpdump Group git mirrors - tcpdump/commitdiff
print verifier cookie for write and commit operation
authorViral Mehta <[email protected]>
Thu, 23 Aug 2018 04:09:14 +0000 (00:09 -0400)
committerDenis Ovsienko <[email protected]>
Wed, 5 Sep 2018 09:55:08 +0000 (10:55 +0100)
print-nfs.c

index 92c87fc4179f0ab3b1d445e8c64da7f42459f6c1..2a45edf8806d08ddac9d5b6c5e0ecd8cf905197f 100644 (file)
@@ -1435,7 +1435,7 @@ trunc:
        return (NULL);
 }
 
-static int
+static const uint32_t *
 parsewccres(netdissect_options *ndo,
             const uint32_t *dp, int verbose)
 {
@@ -1443,7 +1443,7 @@ parsewccres(netdissect_options *ndo,
 
        if (!(dp = parsestatus(ndo, dp, &er)))
                return (0);
-       return parse_wcc_data(ndo, dp, verbose) != NULL;
+       return parse_wcc_data(ndo, dp, verbose);
 }
 
 static const uint32_t *
@@ -1668,6 +1668,10 @@ interp_reply(netdissect_options *ndo,
                                        ND_PRINT(" <%s>",
                                                tok2str(nfsv3_writemodes,
                                                        NULL, EXTRACT_BE_U_4(dp + 1)));
+
+                                       /* write-verf-cookie */
+                                       ND_TCHECK_8(dp + 2);
+                                       ND_PRINT(" verf %" PRIx64, EXTRACT_BE_U_8(dp + 2));
                                }
                                return;
                        }
@@ -1803,8 +1807,14 @@ interp_reply(netdissect_options *ndo,
 
        case NFSPROC_COMMIT:
                dp = parserep(ndo, rp, length);
-               if (dp != NULL && parsewccres(ndo, dp, ndo->ndo_vflag) != 0)
+               if (dp != NULL && (dp = parsewccres(ndo, dp, ndo->ndo_vflag)) != 0) {
+                       if (ndo->ndo_vflag > 1) {
+                               /* write-verf-cookie */
+                               ND_TCHECK_8(dp);
+                               ND_PRINT(" verf %" PRIx64, EXTRACT_BE_U_8(dp));
+                       }
                        return;
+               }
                break;
 
        default: