s4/libcli/raw: implemement RAW_SFILEINFO_LINK_INFORMATION
authorRalph Boehme <slow@samba.org>
Fri, 22 Dec 2023 09:40:39 +0000 (10:40 +0100)
committerJule Anger <janger@samba.org>
Tue, 9 Jan 2024 12:13:13 +0000 (12:13 +0000)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13688

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit c62484bc2c60ebac42635793d94cb8e62629acbf)

source4/libcli/raw/rawsetfileinfo.c

index fec99d30b9578115b1e361af0f0cfa87790e7bbc..0ef50940509110399efdd5e896097015fd7287dd 100644 (file)
@@ -119,6 +119,20 @@ bool smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
                                    parms->full_ea_information.in.eas.eas, 4);
                return true;
 
+       case RAW_SFILEINFO_LINK_INFORMATION:
+               NEED_BLOB(20);
+               memset(blob->data, 0, blob->length);
+
+               PUSH_LE_U8(blob->data, 0, parms->link_information.in.overwrite);
+               PUSH_LE_U64(blob->data, 8, parms->link_information.in.root_fid);
+
+               len = smbcli_blob_append_string(
+                       NULL, mem_ctx, blob,
+                       parms->link_information.in.new_name,
+                       STR_UNICODE | STR_TERMINATE);
+               PUSH_LE_U32(blob->data, 16, len - 2);
+               return true;
+
                /* Unhandled levels */
        case RAW_SFILEINFO_PIPE_INFORMATION:
        case RAW_SFILEINFO_VALID_DATA_INFORMATION: