Просмотр исходного кода

Define common structure for simple requests/answers

Sylver Bruneau 9 лет назад
Родитель
Сommit
b4a9b0e5d0
2 измененных файлов с 17 добавлено и 18 удалено
  1. 12 13
      src/smb_packets.h
  2. 5 5
      src/smb_share.c

+ 12 - 13
src/smb_packets.h

@@ -68,6 +68,14 @@ typedef struct
 ////////////////////////////////////////////////////////////////////////////////
 // Individual SMB command payload description
 
+// Simple structure used for several requests/responses
+typedef struct
+{
+    uint8_t         wct;              // 0
+    uint16_t        bct;
+} __attribute__((packed))   smb_simple_struct;
+
+
 //-> Negotiate Protocol
 typedef struct
 {
@@ -186,14 +194,9 @@ typedef struct
     uint8_t         payload[];
 } __attribute__((packed))   smb_tree_connect_resp;
 
-//-> Tree Disconnect / <- Tree Disconnect (params are the same)
-typedef struct
-{
-    uint8_t         wct;              // 0
-    uint16_t        bct;
-} __attribute__((packed))   smb_tree_disconnect_req_resp;
-
-
+//-> Tree Disconnect / <- Tree Disconnect
+typedef smb_simple_struct smb_tree_disconnect_req;
+typedef smb_simple_struct smb_tree_disconnect_resp;
 
 //-> Create File
 typedef struct
@@ -351,11 +354,7 @@ typedef struct
 } __attribute__((packed))   smb_file_mv_req;
 
 //<- Move File
-typedef struct
-{
-    uint8_t         wct;                // 0x00
-    uint16_t        bct;                // 0x0000
-} __attribute__((packed))   smb_file_mv_resp;
+typedef smb_simple_struct smb_file_mv_resp;
 
 //-> Trans
 typedef struct

+ 5 - 5
src/smb_share.c

@@ -111,10 +111,10 @@ smb_tid         smb_tree_connect(smb_session *s, const char *name)
 
 int           smb_tree_disconnect(smb_session *s, smb_tid tid)
 {
-    smb_tree_disconnect_req_resp   req;
-    smb_tree_disconnect_req_resp *resp;
-    smb_message                  *req_msg;
-    smb_message                   resp_msg;
+    smb_tree_disconnect_req   req;
+    smb_tree_disconnect_resp *resp;
+    smb_message              *req_msg;
+    smb_message               resp_msg;
 
     if ((s == NULL) || (tid == -1))
         return -1;
@@ -143,7 +143,7 @@ int           smb_tree_disconnect(smb_session *s, smb_tid tid)
     if (resp_msg.packet->header.status != NT_STATUS_SUCCESS)
         return -1;
 
-    resp  = (smb_tree_disconnect_req_resp *)resp_msg.packet->payload;
+    resp  = (smb_tree_disconnect_resp *)resp_msg.packet->payload;
     if ((resp->wct != 0) || (resp->bct != 0))
         return -1;