Also pass by value rather then by reference.
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
}
trim_string(name,"/","/");
- status = unix_convert(ctx, conn, name, NULL, smb_fname, 0);
+ status = unix_convert(ctx, conn, name, 0, smb_fname, 0);
if (!NT_STATUS_IS_OK(status)) {
return NT_STATUS_NO_MEMORY;
}
conn,
r->in.file,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(nt_status)) {
conn,
r->in.file,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(nt_status)) {
*/
static NTSTATUS canonicalize_snapshot_path(struct smb_filename *smb_fname,
- time_t *twrp)
+ NTTIME twrp)
{
char *startp = strchr_m(smb_fname->base_name, '@');
char *endp = NULL;
time_t t;
NTSTATUS status;
- if (twrp != NULL) {
- struct tm *ptm = gmtime_r(twrp, &tm);
+ if (twrp != 0) {
+ struct tm *ptm = NULL;
char *twrp_name = NULL;
+ t = nt_time_to_unix(twrp);
+ ptm = gmtime_r(&t, &tm);
+
twrp_name = talloc_asprintf(
smb_fname,
"@GMT-%04u.%02u.%02u-%02u.%02u.%02u/%s",
TALLOC_FREE(smb_fname->base_name);
smb_fname->base_name = twrp_name;
- unix_to_nt_time(&smb_fname->twrp, *twrp);
+ smb_fname->twrp = twrp;
return NT_STATUS_OK;
}
NTSTATUS unix_convert(TALLOC_CTX *mem_ctx,
connection_struct *conn,
const char *orig_path,
- time_t *twrp,
+ NTTIME twrp,
struct smb_filename **smb_fname_out,
uint32_t ucf_flags)
{
TALLOC_FREE(fname);
return NULL;
}
- status = canonicalize_snapshot_path(smb_fname, NULL);
+ status = canonicalize_snapshot_path(smb_fname, 0);
if (!NT_STATUS_IS_OK(status)) {
TALLOC_FREE(fname);
TALLOC_FREE(smb_fname);
struct smb_request *smbreq,
const char *name_in,
uint32_t ucf_flags,
- time_t *twrp,
+ NTTIME twrp,
bool *ppath_contains_wcard,
struct smb_filename **_smb_fname)
{
connection_struct *conn,
const char *name_in,
uint32_t ucf_flags,
- time_t *twrp,
+ NTTIME twrp,
bool *ppath_contains_wcard,
struct smb_filename **pp_smb_fname)
{
smbreq,
name_in,
ucf_flags,
- NULL,
+ 0,
ppath_contains_wcard,
pp_smb_fname);
}
* unix_convert later in the codepath.
*/
- status = unix_convert(ctx, conn, pdp->reqpath, NULL, &smb_fname,
+ status = unix_convert(ctx, conn, pdp->reqpath, 0, &smb_fname,
ucf_flags);
if (!NT_STATUS_IS_OK(status)) {
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
status = filename_convert(ctx, conn,
oldname,
ucf_flags_src,
- NULL,
+ 0,
NULL,
&smb_fname_old);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
newname,
ucf_flags_dst,
- NULL,
+ 0,
&dest_has_wcard,
&smb_fname_new);
if (!NT_STATUS_IS_OK(status)) {
conn,
new_base_name,
ucf_flags,
- NULL,
+ 0,
NULL,
smb_fname_out);
if (!NT_STATUS_IS_OK(status)) {
NTSTATUS unix_convert(TALLOC_CTX *ctx,
connection_struct *conn,
const char *orig_path,
- time_t *twrp,
+ NTTIME twrp,
struct smb_filename **smb_fname,
uint32_t ucf_flags);
NTSTATUS check_name(connection_struct *conn,
connection_struct *conn,
const char *name_in,
uint32_t ucf_flags,
- time_t *twrp,
+ NTTIME twrp,
bool *ppath_contains_wcard,
struct smb_filename **pp_smb_fname);
NTSTATUS filename_convert_with_privilege(TALLOC_CTX *mem_ctx,
conn,
name,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
nt_status = filename_convert(ctx, conn,
path,
ucf_flags,
- NULL,
+ 0,
&mask_contains_wcard,
&smb_fname);
if (!NT_STATUS_IS_OK(nt_status)) {
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
name,
ucf_flags,
- NULL,
+ 0,
&path_contains_wcard,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
directory,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_dname);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
directory,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_dname);
if (!NT_STATUS_IS_OK(status)) {
conn,
name,
src_ucf_flags,
- NULL,
+ 0,
&src_has_wcard,
&smb_fname_src);
conn,
newname,
dst_ucf_flags,
- NULL,
+ 0,
&dest_has_wcard,
&smb_fname_dst);
status = filename_convert(ctx, conn,
fname_src,
ucf_flags_src,
- NULL,
+ 0,
&source_has_wild,
&smb_fname_src);
if (!NT_STATUS_IS_OK(status)) {
status = filename_convert(ctx, conn,
fname_dst,
ucf_flags_dst,
- NULL,
+ 0,
&dest_has_wild,
&smb_fname_dst);
if (!NT_STATUS_IS_OK(status)) {
ucf_flags = filename_create_ucf_flags(smb1req, FILE_OPEN);
status = filename_convert(talloc_tos(), fsp->conn,
filename, ucf_flags,
- NULL, NULL, &smb_fname);
+ 0, NULL, &smb_fname);
TALLOC_FREE(filename);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10, ("filename_convert returned %s\n",
ssize_t lease_len;
bool need_replay_cache;
struct smbXsrv_open *op;
- time_t twrp_time;
- time_t *twrp_timep;
+ NTTIME twrp_time;
struct smb2_create_blob *dhnc;
struct smb2_create_blob *dh2c;
smb1req->conn,
state->fname,
ucf_flags,
- state->twrp_timep,
+ state->twrp_time,
NULL, /* ppath_contains_wcards */
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
}
if (state->twrp != NULL) {
- NTTIME nttime;
-
if (state->twrp->data.length != 8) {
tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
return;
}
- nttime = BVAL(state->twrp->data.data, 0);
- state->twrp_time = nt_time_to_unix(nttime);
- state->twrp_timep = &state->twrp_time;
+ state->twrp_time = BVAL(state->twrp->data.data, 0);
smb1req->flags2 |= FLAGS2_REPARSE_PATH;
}
conn,
fullpath,
ucf_flags,
- NULL,
+ 0,
&wcard_has_wild,
&smb_fname);
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
ntstatus = filename_convert(talloc_tos(), conn,
directory,
ucf_flags,
- NULL,
+ 0,
&mask_contains_wcard,
&smb_dname);
}
conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
conn,
oldname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname_old);
if (!NT_STATUS_IS_OK(status)) {
conn,
newname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname_dst);
if (!NT_STATUS_IS_OK(status)) {
conn,
newname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname_dst);
if (!NT_STATUS_IS_OK(status)) {
conn,
base_name,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname_dst);
status = filename_convert(req, conn,
fname,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_fname);
if (!NT_STATUS_IS_OK(status)) {
conn,
directory,
ucf_flags,
- NULL,
+ 0,
NULL,
&smb_dname);