The branch, master has been updated
       via  d697c9f messaging4: Simplify imessaging_path
       via  d7b4f86 messaging3: messaging_array is no longer used
       via  f4e7a49 unix_msg: simplify unix_msg_send
       via  f1f4388 unix_msg: Use struct initializers
       via  8621870 unix_msg: Use empty arrays in structs
       via  f5efddb lib: directory_create_or_exist() does not use "uid" 
parameter
       via  2b9c35d lib: Simplify directory_create_or_exist with an early return
      from  f481009 winbind/i18n: update Japanese pam winbind translation

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d697c9fdcb9d1d08fa80fc78a299690c8114917c
Author: Volker Lendecke <[email protected]>
Date:   Sun Jul 20 16:07:44 2014 +0200

    messaging4: Simplify imessaging_path
    
    Use server_id_str_buf
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>
    
    Autobuild-User(master): Jeremy Allison <[email protected]>
    Autobuild-Date(master): Tue Jul 29 00:30:55 CEST 2014 on sn-devel-104

commit d7b4f863e488cd8e088ec77c35718cfdcc19c743
Author: Volker Lendecke <[email protected]>
Date:   Wed Jul 9 14:40:12 2014 +0000

    messaging3: messaging_array is no longer used
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit f4e7a49cd755532a4201311655f3474228fd7b81
Author: Volker Lendecke <[email protected]>
Date:   Thu Jul 24 14:59:33 2014 +0000

    unix_msg: simplify unix_msg_send
    
    We have a variable array inside one-fragment fast path anyway. Moving
    that to the toplevel of the function saves us a malloc/free pair.
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit f1f43886f02966e3fe759d7406b84e46b38867fe
Author: Volker Lendecke <[email protected]>
Date:   Mon Jul 28 11:54:16 2014 +0000

    unix_msg: Use struct initializers
    
    Saves a few lines and bytes of .text
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 8621870559c6274eaa645aa47109c75ebc190278
Author: Volker Lendecke <[email protected]>
Date:   Mon Jul 28 12:02:12 2014 +0000

    unix_msg: Use empty arrays in structs
    
    Just a simple style update
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit f5efddb9aebd896df014a011d68aefb314beee22
Author: Volker Lendecke <[email protected]>
Date:   Sun Jul 27 19:18:09 2014 +0200

    lib: directory_create_or_exist() does not use "uid" parameter
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

commit 2b9c35da12f6892e22253e8beb6a7ec95ba17c58
Author: Volker Lendecke <[email protected]>
Date:   Sun Jul 27 19:08:52 2014 +0200

    lib: Simplify directory_create_or_exist with an early return
    
    Signed-off-by: Volker Lendecke <[email protected]>
    Reviewed-by: Jeremy Allison <[email protected]>

-----------------------------------------------------------------------

Summary of changes:
 lib/param/util.c                  |    4 +-
 lib/util/samba_util.h             |    3 +-
 lib/util/util.c                   |   54 +++++++++++-----------
 source3/lib/dumpcore.c            |    2 +-
 source3/lib/eventlog/eventlog.c   |    2 +-
 source3/lib/unix_msg/unix_msg.c   |   87 +++++++++++++++++--------------------
 source3/librpc/idl/messaging.idl  |    5 --
 source3/nmbd/nmbd.c               |    4 +-
 source3/printing/nt_printing.c    |    6 +--
 source3/printing/printing.c       |    2 +-
 source3/registry/reg_perfcount.c  |    2 +-
 source3/rpc_server/rpc_server.c   |    4 +-
 source3/smbd/server.c             |    2 +-
 source3/winbindd/winbindd.c       |    4 +-
 source4/ldap_server/ldap_server.c |    2 +-
 source4/lib/messaging/messaging.c |   13 ++----
 source4/smbd/service_named_pipe.c |    2 +-
 17 files changed, 89 insertions(+), 109 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/param/util.c b/lib/param/util.c
index 232e85b..faf161d 100644
--- a/lib/param/util.c
+++ b/lib/param/util.c
@@ -91,7 +91,7 @@ static char *lpcfg_common_path(TALLOC_CTX* mem_ctx,
        }
        trim_string(dname,"","/");
 
-       ok = directory_create_or_exist(dname, geteuid(), 0755);
+       ok = directory_create_or_exist(dname, 0755);
        if (!ok) {
                DEBUG(1, ("Unable to create directory %s for file %s. "
                          "Error was %s\n", dname, name, strerror(errno)));
@@ -231,7 +231,7 @@ char *smbd_tmp_path(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       ok = directory_create_or_exist(dname, geteuid(), 0755);
+       ok = directory_create_or_exist(dname, 0755);
        if (!ok) {
                return NULL;
        }
diff --git a/lib/util/samba_util.h b/lib/util/samba_util.h
index 251ddc2..2ffe028 100644
--- a/lib/util/samba_util.h
+++ b/lib/util/samba_util.h
@@ -649,8 +649,7 @@ _PUBLIC_ bool file_check_permissions(const char *fname,
  * @retval true if the directory already existed and has the right permissions 
  * or was successfully created.
  */
-_PUBLIC_ bool directory_create_or_exist(const char *dname, uid_t uid, 
-                              mode_t dir_perms);
+_PUBLIC_ bool directory_create_or_exist(const char *dname, mode_t dir_perms);
 
 _PUBLIC_ bool directory_create_or_exist_strict(const char *dname,
                                               uid_t uid,
diff --git a/lib/util/util.c b/lib/util/util.c
index b6f60c4..1f75266 100644
--- a/lib/util/util.c
+++ b/lib/util/util.c
@@ -191,40 +191,40 @@ _PUBLIC_ bool directory_exist(const char *dname)
  * or was successfully created.
  */
 _PUBLIC_ bool directory_create_or_exist(const char *dname,
-                                       uid_t uid,
                                        mode_t dir_perms)
 {
        int ret;
        struct stat st;
+       mode_t old_umask;
 
        ret = lstat(dname, &st);
-       if (ret == -1) {
-               mode_t old_umask;
+       if (ret == 0) {
+               return true;
+       }
 
-               if (errno != ENOENT) {
-                       DEBUG(0, ("lstat failed on directory %s: %s\n",
-                                 dname, strerror(errno)));
-                       return false;
-               }
+       if (errno != ENOENT) {
+               DEBUG(0, ("lstat failed on directory %s: %s\n",
+                         dname, strerror(errno)));
+               return false;
+       }
 
-               /* Create directory */
-               old_umask = umask(0);
-               ret = mkdir(dname, dir_perms);
-               if (ret == -1 && errno != EEXIST) {
-                       DEBUG(0, ("mkdir failed on directory "
-                                 "%s: %s\n", dname,
-                                 strerror(errno)));
-                       umask(old_umask);
-                       return false;
-               }
+       /* Create directory */
+       old_umask = umask(0);
+       ret = mkdir(dname, dir_perms);
+       if (ret == -1 && errno != EEXIST) {
+               DEBUG(0, ("mkdir failed on directory "
+                         "%s: %s\n", dname,
+                         strerror(errno)));
                umask(old_umask);
+               return false;
+       }
+       umask(old_umask);
 
-               ret = lstat(dname, &st);
-               if (ret == -1) {
-                       DEBUG(0, ("lstat failed on created directory %s: %s\n",
-                                 dname, strerror(errno)));
-                       return false;
-               }
+       ret = lstat(dname, &st);
+       if (ret == -1) {
+               DEBUG(0, ("lstat failed on created directory %s: %s\n",
+                         dname, strerror(errno)));
+               return false;
        }
 
        return true;
@@ -253,7 +253,7 @@ _PUBLIC_ bool directory_create_or_exist_strict(const char 
*dname,
        bool ok;
        int rc;
 
-       ok = directory_create_or_exist(dname, uid, dir_perms);
+       ok = directory_create_or_exist(dname, dir_perms);
        if (!ok) {
                return false;
        }
diff --git a/source3/lib/dumpcore.c b/source3/lib/dumpcore.c
index f284ea4..487ccec 100644
--- a/source3/lib/dumpcore.c
+++ b/source3/lib/dumpcore.c
@@ -67,7 +67,7 @@ static char *get_default_corepath(const char *logbase, const 
char *progname)
                goto err_out;
        }
 
-       if (!directory_create_or_exist(tmp_corepath, uid, mode)) {
+       if (!directory_create_or_exist(tmp_corepath, mode)) {
                DEBUG(0, ("Failed to create %s for user %d with mode 0%o\n",
                          tmp_corepath, (int)uid, (int)mode));
                goto err_out;
diff --git a/source3/lib/eventlog/eventlog.c b/source3/lib/eventlog/eventlog.c
index 0cc0240..4c6767d 100644
--- a/source3/lib/eventlog/eventlog.c
+++ b/source3/lib/eventlog/eventlog.c
@@ -373,7 +373,7 @@ ELOG_TDB *elog_open_tdb( const char *logname, bool 
force_clear, bool read_only )
        /* make sure that the eventlog dir exists */
 
        eventlogdir = state_path( "eventlog" );
-       ok = directory_create_or_exist(eventlogdir, geteuid(), 0755);
+       ok = directory_create_or_exist(eventlogdir, 0755);
        if (!ok) {
                return NULL;
        }
diff --git a/source3/lib/unix_msg/unix_msg.c b/source3/lib/unix_msg/unix_msg.c
index f3185a3..00438ce 100644
--- a/source3/lib/unix_msg/unix_msg.c
+++ b/source3/lib/unix_msg/unix_msg.c
@@ -43,7 +43,7 @@ struct unix_dgram_msg {
        ssize_t sent;
        int sys_errno;
        size_t buflen;
-       uint8_t buf[1];
+       uint8_t buf[];
 };
 
 struct unix_dgram_send_queue {
@@ -51,7 +51,7 @@ struct unix_dgram_send_queue {
        struct unix_dgram_ctx *ctx;
        int sock;
        struct unix_dgram_msg *msgs;
-       char path[1];
+       char path[];
 };
 
 struct unix_dgram_ctx {
@@ -72,7 +72,7 @@ struct unix_dgram_ctx {
        struct poll_watch *pool_read_watch;
 
        uint8_t *recv_buf;
-       char path[1];
+       char path[];
 };
 
 static ssize_t iov_buflen(const struct iovec *iov, int iovlen);
@@ -163,20 +163,19 @@ static int unix_dgram_init(const struct sockaddr_un 
*addr, size_t max_msg,
                ctx->path[0] = '\0';
        }
 
+       *ctx = (struct unix_dgram_ctx) {
+               .max_msg = max_msg,
+               .ev_funcs = ev_funcs,
+               .recv_callback = recv_callback,
+               .private_data = private_data,
+               .created_pid = (pid_t)-1
+       };
+
        ctx->recv_buf = malloc(max_msg);
        if (ctx->recv_buf == NULL) {
                free(ctx);
                return ENOMEM;
        }
-       ctx->max_msg = max_msg;
-       ctx->ev_funcs = ev_funcs;
-       ctx->recv_callback = recv_callback;
-       ctx->private_data = private_data;
-       ctx->sock_read_watch = NULL;
-       ctx->send_pool = NULL;
-       ctx->pool_read_watch = NULL;
-       ctx->send_queues = NULL;
-       ctx->created_pid = (pid_t)-1;
 
        ctx->sock = socket(AF_UNIX, SOCK_DGRAM, 0);
        if (ctx->sock == -1) {
@@ -486,15 +485,12 @@ static int unix_dgram_send(struct unix_dgram_ctx *ctx,
         * Try a cheap nonblocking send
         */
 
-       msg.msg_name = discard_const_p(struct sockaddr_un, dst);
-       msg.msg_namelen = sizeof(*dst);
-       msg.msg_iov = discard_const_p(struct iovec, iov);
-       msg.msg_iovlen = iovlen;
-#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
-       msg.msg_control = NULL;
-       msg.msg_controllen = 0;
-#endif
-       msg.msg_flags = 0;
+       msg = (struct msghdr) {
+               .msg_name = discard_const_p(struct sockaddr_un, dst),
+               .msg_namelen = sizeof(*dst),
+               .msg_iov = discard_const_p(struct iovec, iov),
+               .msg_iovlen = iovlen
+       };
 
        ret = sendmsg(ctx->sock, &msg, 0);
        if (ret >= 0) {
@@ -620,6 +616,13 @@ int unix_msg_init(const struct sockaddr_un *addr,
                return ENOMEM;
        }
 
+       *ctx = (struct unix_msg_ctx) {
+               .fragment_len = fragment_len,
+               .cookie = cookie,
+               .recv_callback = recv_callback,
+               .private_data = private_data
+       };
+
        ret = unix_dgram_init(addr, fragment_len, ev_funcs,
                              unix_msg_recv, ctx, &ctx->dgram);
        if (ret != 0) {
@@ -627,12 +630,6 @@ int unix_msg_init(const struct sockaddr_un *addr,
                return ret;
        }
 
-       ctx->fragment_len = fragment_len;
-       ctx->cookie = cookie;
-       ctx->recv_callback = recv_callback;
-       ctx->private_data = private_data;
-       ctx->msgs = NULL;
-
        *result = ctx;
        return 0;
 }
@@ -643,7 +640,7 @@ int unix_msg_send(struct unix_msg_ctx *ctx, const struct 
sockaddr_un *dst,
        ssize_t msglen;
        size_t sent;
        int ret = 0;
-       struct iovec *iov_copy;
+       struct iovec iov_copy[iovlen+2];
        struct unix_msg_hdr hdr;
        struct iovec src_iov;
 
@@ -657,27 +654,24 @@ int unix_msg_send(struct unix_msg_ctx *ctx, const struct 
sockaddr_un *dst,
        }
 
        if (msglen <= (ctx->fragment_len - sizeof(uint64_t))) {
-               struct iovec tmp_iov[iovlen+1];
                uint64_t cookie = 0;
 
-               tmp_iov[0].iov_base = &cookie;
-               tmp_iov[0].iov_len = sizeof(cookie);
+               iov_copy[0].iov_base = &cookie;
+               iov_copy[0].iov_len = sizeof(cookie);
                if (iovlen > 0) {
-                       memcpy(&tmp_iov[1], iov,
+                       memcpy(&iov_copy[1], iov,
                               sizeof(struct iovec) * iovlen);
                }
 
-               return unix_dgram_send(ctx->dgram, dst, tmp_iov, iovlen+1);
+               return unix_dgram_send(ctx->dgram, dst, iov_copy, iovlen+1);
        }
 
-       hdr.msglen = msglen;
-       hdr.pid = getpid();
-       hdr.sock = unix_dgram_sock(ctx->dgram);
+       hdr = (struct unix_msg_hdr) {
+               .msglen = msglen,
+               .pid = getpid(),
+               .sock = unix_dgram_sock(ctx->dgram)
+       };
 
-       iov_copy = malloc(sizeof(struct iovec) * (iovlen + 2));
-       if (iov_copy == NULL) {
-               return ENOMEM;
-       }
        iov_copy[0].iov_base = &ctx->cookie;
        iov_copy[0].iov_len = sizeof(ctx->cookie);
        iov_copy[1].iov_base = &hdr;
@@ -731,8 +725,6 @@ int unix_msg_send(struct unix_msg_ctx *ctx, const struct 
sockaddr_un *dst,
                }
        }
 
-       free(iov_copy);
-
        ctx->cookie += 1;
        if (ctx->cookie == 0) {
                ctx->cookie += 1;
@@ -790,11 +782,12 @@ static void unix_msg_recv(struct unix_dgram_ctx 
*dgram_ctx,
                if (msg == NULL) {
                        return;
                }
-               msg->msglen = hdr.msglen;
-               msg->received = 0;
-               msg->sender_pid = hdr.pid;
-               msg->sender_sock = hdr.sock;
-               msg->cookie = cookie;
+               *msg = (struct unix_msg) {
+                       .msglen = hdr.msglen,
+                       .sender_pid = hdr.pid,
+                       .sender_sock = hdr.sock,
+                       .cookie = cookie
+               };
                DLIST_ADD(ctx->msgs, msg);
        }
 
diff --git a/source3/librpc/idl/messaging.idl b/source3/librpc/idl/messaging.idl
index a396b5b..66d4ae5 100644
--- a/source3/librpc/idl/messaging.idl
+++ b/source3/librpc/idl/messaging.idl
@@ -131,9 +131,4 @@ interface messaging
                server_id src;
                DATA_BLOB buf;
        } messaging_rec;
-
-       typedef [public] struct {
-               uint32 num_messages;
-               messaging_rec messages[num_messages];
-       } messaging_array;
 }
diff --git a/source3/nmbd/nmbd.c b/source3/nmbd/nmbd.c
index 8c66d75..50b18e5 100644
--- a/source3/nmbd/nmbd.c
+++ b/source3/nmbd/nmbd.c
@@ -973,12 +973,12 @@ static bool open_sockets(bool isdaemon, int port)
        }
 #endif
 
-       ok = directory_create_or_exist(lp_lock_directory(), geteuid(), 0755);
+       ok = directory_create_or_exist(lp_lock_directory(), 0755);
        if (!ok) {
                exit_daemon("Failed to create directory for lock files, check 
'lock directory'", errno);
        }
 
-       ok = directory_create_or_exist(lp_pid_directory(), geteuid(), 0755);
+       ok = directory_create_or_exist(lp_pid_directory(), 0755);
        if (!ok) {
                exit_daemon("Failed to create directory for pid files, check 
'pid directory'", errno);
        }
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 6a5f2d7..b76badf 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -95,7 +95,7 @@ static bool print_driver_directories_init(void)
                return false;
        }
 
-       ok = directory_create_or_exist(driver_path, sec_initial_uid(), 0755);
+       ok = directory_create_or_exist(driver_path, 0755);
        if (!ok) {
                DEBUG(1, ("Failed to create printer driver directory %s\n",
                          driver_path));
@@ -115,9 +115,7 @@ static bool print_driver_directories_init(void)
                        return false;
                }
 
-               ok = directory_create_or_exist(arch_path,
-                                              sec_initial_uid(),
-                                              0755);
+               ok = directory_create_or_exist(arch_path, 0755);
                if (!ok) {
                        DEBUG(1, ("Failed to create printer driver "
                                  "architecture directory %s\n",
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index fa4a2fc..dcfd2a2 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -203,7 +203,7 @@ bool print_backend_init(struct messaging_context *msg_ctx)
                return false;
        }
 
-       ok = directory_create_or_exist(cache_path("printing"), geteuid(), 0755);
+       ok = directory_create_or_exist(cache_path("printing"), 0755);
        if (!ok) {
                return false;
        }
diff --git a/source3/registry/reg_perfcount.c b/source3/registry/reg_perfcount.c
index 82e5624..b875067 100644
--- a/source3/registry/reg_perfcount.c
+++ b/source3/registry/reg_perfcount.c
@@ -48,7 +48,7 @@ static char *counters_directory(const char *dbname)
        TALLOC_CTX *ctx = talloc_tos();
 
        path = state_path(PERFCOUNTDIR);
-       if (!directory_create_or_exist(path, geteuid(), 0755)) {
+       if (!directory_create_or_exist(path, 0755)) {
                return NULL;
        }
 
diff --git a/source3/rpc_server/rpc_server.c b/source3/rpc_server/rpc_server.c
index 2ac29e1..01a854c 100644
--- a/source3/rpc_server/rpc_server.c
+++ b/source3/rpc_server/rpc_server.c
@@ -106,7 +106,7 @@ int create_named_pipe_socket(const char *pipe_name)
         * lp_ncalrpc_dir()/np should have 0700, we need to
         * create lp_ncalrpc_dir() first.
         */
-       if (!directory_create_or_exist(lp_ncalrpc_dir(), geteuid(), 0755)) {
+       if (!directory_create_or_exist(lp_ncalrpc_dir(), 0755)) {
                DEBUG(0, ("Failed to create pipe directory %s - %s\n",
                          lp_ncalrpc_dir(), strerror(errno)));
                goto out;
@@ -773,7 +773,7 @@ int create_dcerpc_ncalrpc_socket(const char *name)
                name = "DEFAULT";
        }
 
-       if (!directory_create_or_exist(lp_ncalrpc_dir(), geteuid(), 0755)) {
+       if (!directory_create_or_exist(lp_ncalrpc_dir(), 0755)) {
                DEBUG(0, ("Failed to create ncalrpc directory %s - %s\n",
                          lp_ncalrpc_dir(), strerror(errno)));
                return -1;
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index dd1e20a..ec9348c 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -1488,7 +1488,7 @@ extern void build_options(bool screen);
        /* This MUST be done before start_epmd() because otherwise
         * start_epmd() forks and races against dcesrv_ep_setup() to
         * call directory_create_or_exist() */
-       if (!directory_create_or_exist(lp_ncalrpc_dir(), geteuid(), 0755)) {
+       if (!directory_create_or_exist(lp_ncalrpc_dir(), 0755)) {
                DEBUG(0, ("Failed to create pipe directory %s - %s\n",
                          lp_ncalrpc_dir(), strerror(errno)));
                return -1;
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index cb61646..a51a172 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -1519,14 +1519,14 @@ int main(int argc, const char **argv)
                exit(1);
        }
 
-       ok = directory_create_or_exist(lp_lock_directory(), geteuid(), 0755);
+       ok = directory_create_or_exist(lp_lock_directory(), 0755);
        if (!ok) {
                DEBUG(0, ("Failed to create directory %s for lock files - %s\n",
                          lp_lock_directory(), strerror(errno)));
                exit(1);
        }
 
-       ok = directory_create_or_exist(lp_pid_directory(), geteuid(), 0755);
+       ok = directory_create_or_exist(lp_pid_directory(), 0755);
        if (!ok) {
                DEBUG(0, ("Failed to create directory %s for pid files - %s\n",
                          lp_pid_directory(), strerror(errno)));
diff --git a/source4/ldap_server/ldap_server.c 
b/source4/ldap_server/ldap_server.c
index d59668b..691266c 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -1007,7 +1007,7 @@ static void ldapsrv_task_init(struct task_server *task)
         * Make sure the directory for the privileged ldapi socket exists, and
         * is of the correct permissions
         */
-       if (!directory_create_or_exist(priv_dir, geteuid(), 0750)) {
+       if (!directory_create_or_exist(priv_dir, 0750)) {
                task_server_terminate(task, "Cannot create ldap "
                                      "privileged ldapi directory", true);
                return;
diff --git a/source4/lib/messaging/messaging.c 
b/source4/lib/messaging/messaging.c
index ffa668a..a67a58a 100644
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -136,15 +136,10 @@ static NTSTATUS irpc_uptime(struct irpc_message *msg,
 */
 static char *imessaging_path(struct imessaging_context *msg, struct server_id 
server_id)
 {
-       TALLOC_CTX *tmp_ctx = talloc_new(msg);
-       const char *id = server_id_str(tmp_ctx, &server_id);
-       char *s;
-       if (id == NULL) {
-               return NULL;
-       }
-       s = talloc_asprintf(msg, "%s/msg.%s", msg->base_path, id);
-       talloc_steal(s, tmp_ctx);
-       return s;
+       struct server_id_buf buf;
+
+       return talloc_asprintf(msg, "%s/msg.%s", msg->base_path,
+                              server_id_str_buf(server_id, &buf));
 }
 
 /*
diff --git a/source4/smbd/service_named_pipe.c 
b/source4/smbd/service_named_pipe.c
index 6aa984d..f9907b2 100644


-- 
Samba Shared Repository

Reply via email to