Change smbd_smb2_request_error() to add a __location__.
authorJeremy Allison <jra@samba.org>
Thu, 4 Jun 2009 19:47:17 +0000 (12:47 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 4 Jun 2009 19:47:17 +0000 (12:47 -0700)
This allows quick identification of smb2 parsing errors.
Jeremy.

source3/include/smb_macros.h
source3/smbd/globals.h
source3/smbd/smb2_server.c

index 7528883c2d9921ee4c9b53651bc298eb2609e25f..6dd9cab711a121bf8b2366970b8ef093e641b704 100644 (file)
@@ -339,4 +339,7 @@ extern const char toupper_ascii_fast_table[];
 #define toupper_ascii_fast(c) toupper_ascii_fast_table[(unsigned int)(c)];
 #endif
 
+#define smbd_smb2_request_error(req, status) \
+       smbd_smb2_request_error_((req), (status), __location__)
+
 #endif /* _SMB_MACROS_H */
index 1c2b628eee8391d7dc4018515d0a2344a0933c76..4c90e8f66b5817b537ef3c5af0ce98fd19779d3a 100644 (file)
@@ -176,10 +176,9 @@ void reply_smb2002(struct smb_request *req, uint16_t choice);
 void smbd_smb2_first_negprot(struct smbd_server_connection *conn,
                             const uint8_t *inbuf, size_t size);
 
-NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
-                                   NTSTATUS status, DATA_BLOB *info);
-NTSTATUS smbd_smb2_request_error(struct smbd_smb2_request *req,
-                                NTSTATUS status);
+NTSTATUS smbd_smb2_request_error_(struct smbd_smb2_request *req,
+                                NTSTATUS status,
+                                const char *wherestr);
 NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
                                   NTSTATUS status,
                                   DATA_BLOB body, DATA_BLOB *dyn);
index 20754fbf9c8974bfb575ef82e4e4a172e71610ce..5c4bdca3e57461705a948f209e956aa5b16221e7 100644 (file)
@@ -583,16 +583,17 @@ static void smbd_smb2_request_writev_done(struct tevent_req *subreq)
        talloc_free(mem_pool);
 }
 
-NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
+static NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
                                    NTSTATUS status,
+                                   const char *wherestr,
                                    DATA_BLOB *info)
 {
        uint8_t *outhdr;
        uint8_t *outbody;
        int i = req->current_idx;
 
-       DEBUG(10,("smbd_smb2_request_error_ex: idx[%d] status[%s]%s\n",
-                 i, nt_errstr(status), info ? " +info" : ""));
+       DEBUG(10,("smbd_smb2_request_error_ex: idx[%d] status[%s] at %s |%s|\n",
+                 i, nt_errstr(status), wherestr, info ? " +info" : ""));
 
        outhdr = (uint8_t *)req->out.vector[i].iov_base;
 
@@ -619,10 +620,10 @@ NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
        return smbd_smb2_request_reply(req);
 }
 
-NTSTATUS smbd_smb2_request_error(struct smbd_smb2_request *req,
-                                NTSTATUS status)
+NTSTATUS smbd_smb2_request_error_(struct smbd_smb2_request *req,
+                                NTSTATUS status, const char *wherestr)
 {
-       return smbd_smb2_request_error_ex(req, status, NULL);
+       return smbd_smb2_request_error_ex(req, status, wherestr, NULL);
 }
 
 NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,