55 * SearchAttributes indicates the attributes that the target file(s) must
56 * have. If SearchAttributes is zero then only normal files are renamed.
57 * If the system file or hidden attributes are specified then the rename
58 * is inclusive - both the specified type(s) of files and normal files are
59 * renamed.
60 */
61 smb_sdrc_t
62 smb_pre_rename(smb_request_t *sr)
63 {
64 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
65 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
66 int rc;
67
68 if ((rc = smbsr_decode_vwv(sr, "w", &src_fqi->fq_sattr)) == 0) {
69 rc = smbsr_decode_data(sr, "%SS", sr, &src_fqi->fq_path.pn_path,
70 &dst_fqi->fq_path.pn_path);
71
72 dst_fqi->fq_sattr = 0;
73 }
74
75 DTRACE_SMB_2(op__Rename__start, smb_request_t *, sr,
76 struct dirop *, &sr->arg.dirop);
77
78 return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
79 }
80
81 void
82 smb_post_rename(smb_request_t *sr)
83 {
84 DTRACE_SMB_1(op__Rename__done, smb_request_t *, sr);
85 }
86
87 smb_sdrc_t
88 smb_com_rename(smb_request_t *sr)
89 {
90 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
91 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
92 smb_pathname_t *src_pn = &src_fqi->fq_path;
93 smb_pathname_t *dst_pn = &dst_fqi->fq_path;
94 uint32_t status;
95
96 if (!STYPE_ISDSK(sr->tid_tree->t_res_type)) {
129 * is inclusive - both the specified type(s) of files and normal files are
130 * renamed.
131 */
132 smb_sdrc_t
133 smb_pre_nt_rename(smb_request_t *sr)
134 {
135 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
136 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
137 uint32_t clusters;
138 int rc;
139
140 rc = smbsr_decode_vwv(sr, "wwl", &src_fqi->fq_sattr,
141 &sr->arg.dirop.info_level, &clusters);
142 if (rc == 0) {
143 rc = smbsr_decode_data(sr, "%SS", sr,
144 &src_fqi->fq_path.pn_path, &dst_fqi->fq_path.pn_path);
145
146 dst_fqi->fq_sattr = 0;
147 }
148
149 DTRACE_SMB_2(op__NtRename__start, smb_request_t *, sr,
150 struct dirop *, &sr->arg.dirop);
151
152 return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
153 }
154
155 void
156 smb_post_nt_rename(smb_request_t *sr)
157 {
158 DTRACE_SMB_1(op__NtRename__done, smb_request_t *, sr);
159 }
160
161 smb_sdrc_t
162 smb_com_nt_rename(smb_request_t *sr)
163 {
164 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
165 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
166 smb_pathname_t *src_pn = &src_fqi->fq_path;
167 smb_pathname_t *dst_pn = &dst_fqi->fq_path;
168 uint32_t status;
169
170 if (!STYPE_ISDSK(sr->tid_tree->t_res_type)) {
|
55 * SearchAttributes indicates the attributes that the target file(s) must
56 * have. If SearchAttributes is zero then only normal files are renamed.
57 * If the system file or hidden attributes are specified then the rename
58 * is inclusive - both the specified type(s) of files and normal files are
59 * renamed.
60 */
61 smb_sdrc_t
62 smb_pre_rename(smb_request_t *sr)
63 {
64 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
65 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
66 int rc;
67
68 if ((rc = smbsr_decode_vwv(sr, "w", &src_fqi->fq_sattr)) == 0) {
69 rc = smbsr_decode_data(sr, "%SS", sr, &src_fqi->fq_path.pn_path,
70 &dst_fqi->fq_path.pn_path);
71
72 dst_fqi->fq_sattr = 0;
73 }
74
75 DTRACE_SMB_1(op__Rename__start, smb_request_t *, sr); /* arg.dirop */
76
77 return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
78 }
79
80 void
81 smb_post_rename(smb_request_t *sr)
82 {
83 DTRACE_SMB_1(op__Rename__done, smb_request_t *, sr);
84 }
85
86 smb_sdrc_t
87 smb_com_rename(smb_request_t *sr)
88 {
89 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
90 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
91 smb_pathname_t *src_pn = &src_fqi->fq_path;
92 smb_pathname_t *dst_pn = &dst_fqi->fq_path;
93 uint32_t status;
94
95 if (!STYPE_ISDSK(sr->tid_tree->t_res_type)) {
128 * is inclusive - both the specified type(s) of files and normal files are
129 * renamed.
130 */
131 smb_sdrc_t
132 smb_pre_nt_rename(smb_request_t *sr)
133 {
134 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
135 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
136 uint32_t clusters;
137 int rc;
138
139 rc = smbsr_decode_vwv(sr, "wwl", &src_fqi->fq_sattr,
140 &sr->arg.dirop.info_level, &clusters);
141 if (rc == 0) {
142 rc = smbsr_decode_data(sr, "%SS", sr,
143 &src_fqi->fq_path.pn_path, &dst_fqi->fq_path.pn_path);
144
145 dst_fqi->fq_sattr = 0;
146 }
147
148 DTRACE_SMB_1(op__NtRename__start, smb_request_t *, sr); /* arg.dirop */
149
150 return ((rc == 0) ? SDRC_SUCCESS : SDRC_ERROR);
151 }
152
153 void
154 smb_post_nt_rename(smb_request_t *sr)
155 {
156 DTRACE_SMB_1(op__NtRename__done, smb_request_t *, sr);
157 }
158
159 smb_sdrc_t
160 smb_com_nt_rename(smb_request_t *sr)
161 {
162 smb_fqi_t *src_fqi = &sr->arg.dirop.fqi;
163 smb_fqi_t *dst_fqi = &sr->arg.dirop.dst_fqi;
164 smb_pathname_t *src_pn = &src_fqi->fq_path;
165 smb_pathname_t *dst_pn = &dst_fqi->fq_path;
166 uint32_t status;
167
168 if (!STYPE_ISDSK(sr->tid_tree->t_res_type)) {
|