summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_srvsvc_nt.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-01-19 21:10:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:54:00 -0500
commit372440f207d88e058af76cf7ce4c5901ba7a7547 (patch)
tree18ffc8ffb2567fe275273a0697eaa120e196eab5 /source3/rpc_server/srv_srvsvc_nt.c
parent704862b6870bc72dd6d7bf64d2d3788101b39de1 (diff)
downloadsamba-372440f207d88e058af76cf7ce4c5901ba7a7547.tar.gz
samba-372440f207d88e058af76cf7ce4c5901ba7a7547.tar.bz2
samba-372440f207d88e058af76cf7ce4c5901ba7a7547.zip
r4856: after testing a simple add printer script, i realized that you still have to be root to send the message to all smbds that the config file has been updated
(This used to be commit 6409de1a1ef34bb41c3efeebfabdf13be5e08613)
Diffstat (limited to 'source3/rpc_server/srv_srvsvc_nt.c')
-rw-r--r--source3/rpc_server/srv_srvsvc_nt.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c
index 529b4c198d..13e1971925 100644
--- a/source3/rpc_server/srv_srvsvc_nt.c
+++ b/source3/rpc_server/srv_srvsvc_nt.c
@@ -1580,7 +1580,10 @@ WERROR _srv_net_share_set_info(pipes_struct *p, SRV_Q_NET_SHARE_SET_INFO *q_u, S
if ( is_disk_op )
become_root();
- ret = smbrun(command, NULL);
+ if ( (ret = smbrun(command, NULL)) == 0 ) {
+ /* Tell everyone we updated smb.conf. */
+ message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
+ }
if ( is_disk_op )
unbecome_root();
@@ -1591,9 +1594,6 @@ WERROR _srv_net_share_set_info(pipes_struct *p, SRV_Q_NET_SHARE_SET_INFO *q_u, S
if ( ret != 0 )
return WERR_ACCESS_DENIED;
-
- /* Tell everyone we updated smb.conf. */
- message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
} else {
DEBUG(10,("_srv_net_share_set_info: No change to share name (%s)\n", share_name ));
}
@@ -1725,7 +1725,10 @@ WERROR _srv_net_share_add(pipes_struct *p, SRV_Q_NET_SHARE_ADD *q_u, SRV_R_NET_S
if ( is_disk_op )
become_root();
- ret = smbrun(command, NULL);
+ if ( (ret = smbrun(command, NULL)) == 0 ) {
+ /* Tell everyone we updated smb.conf. */
+ message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
+ }
if ( is_disk_op )
unbecome_root();
@@ -1737,9 +1740,6 @@ WERROR _srv_net_share_add(pipes_struct *p, SRV_Q_NET_SHARE_ADD *q_u, SRV_R_NET_S
if ( ret != 0 )
return WERR_ACCESS_DENIED;
- /* Tell everyone we updated smb.conf. */
- message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
-
if (psd) {
if (!set_share_security(p->mem_ctx, share_name, psd)) {
DEBUG(0,("_srv_net_share_add: Failed to add security info to share %s.\n", share_name ));
@@ -1808,7 +1808,10 @@ WERROR _srv_net_share_del(pipes_struct *p, SRV_Q_NET_SHARE_DEL *q_u, SRV_R_NET_S
if ( is_disk_op )
become_root();
- ret = smbrun(command, NULL);
+ if ( (ret = smbrun(command, NULL)) == 0 ) {
+ /* Tell everyone we updated smb.conf. */
+ message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
+ }
if ( is_disk_op )
unbecome_root();
@@ -1820,9 +1823,6 @@ WERROR _srv_net_share_del(pipes_struct *p, SRV_Q_NET_SHARE_DEL *q_u, SRV_R_NET_S
if ( ret != 0 )
return WERR_ACCESS_DENIED;
- /* Tell everyone we updated smb.conf. */
- message_send_all(conn_tdb_ctx(), MSG_SMB_CONF_UPDATED, NULL, 0, False, NULL);
-
/* Delete the SD in the database. */
delete_share_security(snum);