s3:smbd: implement smbd_smb2_request_error/done() as macros on top of the _ex() function
authorStefan Metzmacher <metze@samba.org>
Fri, 5 Jun 2009 09:05:03 +0000 (11:05 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 5 Jun 2009 09:31:03 +0000 (11:31 +0200)
metze

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

index 6dd9cab711a121bf8b2366970b8ef093e641b704..7528883c2d9921ee4c9b53651bc298eb2609e25f 100644 (file)
@@ -339,7 +339,4 @@ 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 4c90e8f66b5817b537ef3c5af0ce98fd19779d3a..2e5bc913d05fb02b8894ca1923f0b072fdeaf2db 100644 (file)
@@ -176,14 +176,18 @@ 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_(struct smbd_smb2_request *req,
-                                NTSTATUS status,
-                                const char *wherestr);
+NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
+                                   NTSTATUS status,
+                                   DATA_BLOB *info,
+                                   const char *location);
+#define smbd_smb2_request_error(req, status) \
+       smbd_smb2_request_error_ex(req, status, NULL, __location__)
 NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
                                   NTSTATUS status,
-                                  DATA_BLOB body, DATA_BLOB *dyn);
-NTSTATUS smbd_smb2_request_done(struct smbd_smb2_request *req,
-                               DATA_BLOB body, DATA_BLOB *dyn);
+                                  DATA_BLOB body, DATA_BLOB *dyn,
+                                  const char *location);
+#define smbd_smb2_request_done(req, body, dyn) \
+       smbd_smb2_request_done_ex(req, NT_STATUS_OK, body, dyn, __location__)
 
 NTSTATUS smbd_smb2_request_check_session(struct smbd_smb2_request *req);
 NTSTATUS smbd_smb2_request_check_tcon(struct smbd_smb2_request *req);
index 5c4bdca3e57461705a948f209e956aa5b16221e7..f4dc7c4f466298aaa39b6464820da588be7edb31 100644 (file)
@@ -583,17 +583,18 @@ static void smbd_smb2_request_writev_done(struct tevent_req *subreq)
        talloc_free(mem_pool);
 }
 
-static NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
+NTSTATUS smbd_smb2_request_error_ex(struct smbd_smb2_request *req,
                                    NTSTATUS status,
-                                   const char *wherestr,
-                                   DATA_BLOB *info)
+                                   DATA_BLOB *info,
+                                   const char *location)
 {
        uint8_t *outhdr;
        uint8_t *outbody;
        int i = req->current_idx;
 
-       DEBUG(10,("smbd_smb2_request_error_ex: idx[%d] status[%s] at %s |%s|\n",
-                 i, nt_errstr(status), wherestr, info ? " +info" : ""));
+       DEBUG(10,("smbd_smb2_request_error_ex: idx[%d] status[%s] |%s| at %s\n",
+                 i, nt_errstr(status), info ? " +info" : "",
+                 location));
 
        outhdr = (uint8_t *)req->out.vector[i].iov_base;
 
@@ -620,15 +621,10 @@ static 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, const char *wherestr)
-{
-       return smbd_smb2_request_error_ex(req, status, wherestr, NULL);
-}
-
 NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
                                   NTSTATUS status,
-                                  DATA_BLOB body, DATA_BLOB *dyn)
+                                  DATA_BLOB body, DATA_BLOB *dyn,
+                                  const char *location)
 {
        uint8_t *outhdr;
        uint8_t *outdyn;
@@ -636,10 +632,11 @@ NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
        uint32_t next_command_ofs;
 
        DEBUG(10,("smbd_smb2_request_done_ex: "
-                 "idx[%d] status[%s] body[%u] dyn[%s:%u]\n",
+                 "idx[%d] status[%s] body[%u] dyn[%s:%u] at %s\n",
                  i, nt_errstr(status), (unsigned int)body.length,
                  dyn ? "yes": "no",
-                 (unsigned int)(dyn ? dyn->length : 0)));
+                 (unsigned int)(dyn ? dyn->length : 0),
+                 location));
 
        if (body.length < 2) {
                return smbd_smb2_request_error(req, NT_STATUS_INTERNAL_ERROR);
@@ -690,12 +687,6 @@ NTSTATUS smbd_smb2_request_done_ex(struct smbd_smb2_request *req,
        return smbd_smb2_request_reply(req);
 }
 
-NTSTATUS smbd_smb2_request_done(struct smbd_smb2_request *req,
-                               DATA_BLOB body, DATA_BLOB *dyn)
-{
-       return smbd_smb2_request_done_ex(req, NT_STATUS_OK, body, dyn);
-}
-
 struct smbd_smb2_request_read_state {
        size_t missing;
        bool asked_for_header;
index faf7bd3db311b7dd886863424f5b7e8f89182330..b56f8bd5f6d54fa458056f4ed17bce83a2f2c183 100644 (file)
@@ -114,7 +114,8 @@ NTSTATUS smbd_smb2_request_process_sesssetup(struct smbd_smb2_request *req)
 
        outdyn = out_security_buffer;
 
-       return smbd_smb2_request_done_ex(req, status, outbody, &outdyn);
+       return smbd_smb2_request_done_ex(req, status, outbody, &outdyn,
+                                        __location__);
 }
 
 static int smbd_smb2_session_destructor(struct smbd_smb2_session *session)