summaryrefslogtreecommitdiff
path: root/source3/smbd/open.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2006-12-28 21:50:31 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:16:46 -0500
commit98c082489bec0a0ce4db1daf4390e785381f229a (patch)
treee0872d7bdb525991311bab54137208381a58c223 /source3/smbd/open.c
parent143a364d6253125c27e229d533940a6822ce7575 (diff)
downloadsamba-98c082489bec0a0ce4db1daf4390e785381f229a.tar.gz
samba-98c082489bec0a0ce4db1daf4390e785381f229a.tar.bz2
samba-98c082489bec0a0ce4db1daf4390e785381f229a.zip
r20394: This is a *VERY* early start of my work on notify.
Checking in because Jeremy was bugging me. Potentially this becomes quite intrusive, I'm not sure if I should open a temporary branch for this. Jeremy, Jerry, do you think 3_0 is the right place for this? Volker (This used to be commit bcf5c751cbe203c00814642e26440cf88f300bce)
Diffstat (limited to 'source3/smbd/open.c')
-rw-r--r--source3/smbd/open.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 28170e9cd8..040b0543aa 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -1127,7 +1127,8 @@ NTSTATUS open_file_ntcreate(connection_struct *conn,
uint32 open_access_mask = access_mask;
NTSTATUS status;
int ret_flock;
- const char *parent_dir;
+ char *parent_dir;
+ const char *newname;
if (conn->printer) {
/*
@@ -1144,8 +1145,8 @@ NTSTATUS open_file_ntcreate(connection_struct *conn,
return print_fsp_open(conn, fname, result);
}
- if (!(parent_dir = talloc_strdup(tmp_talloc_ctx(),
- parent_dirname(fname)))) {
+ if (!parent_dirname_talloc(tmp_talloc_ctx(), fname, &parent_dir,
+ &newname)) {
return NT_STATUS_NO_MEMORY;
}
@@ -1878,7 +1879,8 @@ static NTSTATUS mkdir_internal(connection_struct *conn, const char *name,
{
int ret= -1;
mode_t mode;
- const char *parent_dir;
+ char *parent_dir;
+ const char *dirname;
if(!CAN_WRITE(conn)) {
DEBUG(5,("mkdir_internal: failing create on read-only share "
@@ -1890,8 +1892,8 @@ static NTSTATUS mkdir_internal(connection_struct *conn, const char *name,
return map_nt_error_from_unix(errno);
}
- if (!(parent_dir = talloc_strdup(tmp_talloc_ctx(),
- parent_dirname(name)))) {
+ if (!parent_dirname_talloc(tmp_talloc_ctx(), name, &parent_dir,
+ &dirname)) {
return NT_STATUS_NO_MEMORY;
}
@@ -1936,6 +1938,8 @@ static NTSTATUS mkdir_internal(connection_struct *conn, const char *name,
change_dir_owner_to_parent(conn, parent_dir, name, psbuf);
}
+ notify_action(conn, parent_dir, dirname, NOTIFY_ACTION_ADDED);
+
return NT_STATUS_OK;
}