Whamcloud - gitweb
minor fix to make gss error report more accurate.
authorericm <ericm>
Wed, 7 Sep 2005 00:46:19 +0000 (00:46 +0000)
committerericm <ericm>
Wed, 7 Sep 2005 00:46:19 +0000 (00:46 +0000)
lustre/sec/gss/sec_gss.c
lustre/sec/gss/svcsec_gss.c

index e89e0e1..c901197 100644 (file)
@@ -212,10 +212,12 @@ static int secinit_parse_reply(char *repbuf, int replen,
         p = (__u32 *) buf_to_sec_data(repbuf);
         effective = 0;
 
-        status = le32_to_cpu(*p++);
+        p += 2; /* skip the leading unused bytes */
+        seq = le32_to_cpu(*p++);
         major = le32_to_cpu(*p++);
         minor = le32_to_cpu(*p++);
-        seq = le32_to_cpu(*p++);
+        status = 0;
+
         effective += 4 * 4;
 
         if (copy_to_user(outbuf, &status, 4))
index 1ecfc46..8bff6bf 100644 (file)
@@ -997,7 +997,7 @@ gss_svcsec_handle_init(struct ptlrpc_request *req,
                                req->rq_peer.peer_id.nid, nidstr));
 
         svcdata->is_init = 1;
-        svcdata->reserve_len = 6 * 4 +
+        svcdata->reserve_len = 7 * 4 +
                 size_round4(rsip->out_handle.len) +
                 size_round4(rsip->out_token.len);
 
@@ -1018,14 +1018,15 @@ gss_svcsec_handle_init(struct ptlrpc_request *req,
         resp += req->rq_replen / 4;
         reslen = svcdata->reserve_len;
 
-        /* gss reply:
-         * status, major, minor, seq, out_handle, out_token
+        /* gss reply: (conform to err notify format)
+         * x, x, seq, major, minor, handle, token
          */
-        *resp++ = cpu_to_le32(PTLRPCS_OK);
+        *resp++ = 0;
+        *resp++ = 0;
+        *resp++ = cpu_to_le32(GSS_SEQ_WIN);
         *resp++ = cpu_to_le32(rsip->major_status);
         *resp++ = cpu_to_le32(rsip->minor_status);
-        *resp++ = cpu_to_le32(GSS_SEQ_WIN);
-        reslen -= (4 * 4);
+        reslen -= (5 * 4);
         if (rawobj_serialize(&rsip->out_handle,
                              &resp, &reslen)) {
                 dump_rsi(rsip);