uint8_t *bytes;
size_t converted_len;
uint16_t additional_flags2 = 0;
+ char *fname_cp = NULL;
req = tevent_req_create(mem_ctx, &state, struct cli_ntcreate1_state);
if (req == NULL) {
if (tevent_req_nomem(bytes, req)) {
return tevent_req_post(req, ev);
}
- bytes = smb_bytes_push_str(bytes, smbXcli_conn_use_unicode(cli->conn),
- fname, strlen(fname)+1,
+ /*
+ * SMBntcreateX on a DFS share must use DFS names.
+ */
+ fname_cp = smb1_dfs_share_path(state, cli, fname);
+ if (tevent_req_nomem(fname_cp, req)) {
+ return tevent_req_post(req, ev);
+ }
+ bytes = smb_bytes_push_str(bytes,
+ smbXcli_conn_use_unicode(cli->conn),
+ fname_cp,
+ strlen(fname_cp)+1,
&converted_len);
if (tevent_req_nomem(bytes, req)) {
return tevent_req_post(req, ev);