diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-05-25 13:00:22 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-05-31 00:32:07 +0200 |
commit | 8524924a460349a9aa56db475d771b8884fbe517 (patch) | |
tree | e96bf4378c676fdf8f4d2ba6f993aea9837e315e /source3/smbd | |
parent | c981d4fa1269569a1c2db4bf72a67a357aacd69f (diff) | |
download | samba-8524924a460349a9aa56db475d771b8884fbe517.tar.gz samba-8524924a460349a9aa56db475d771b8884fbe517.tar.bz2 samba-8524924a460349a9aa56db475d771b8884fbe517.zip |
s3-smbd provide struct smbd_server_connection * to conn_snum_used
This provides the 'sconn' parameter to this key functions, that
is currently duplicated in dummysmbd.c, which causes duplicate symbol
issues in the waf build.
This has natrually caused a number of consequential changes across the
codebase, includning not passing a messaging context into initial
reload_services():
This causes problems because the global smbd_server_connection isn't
yet set up, as there isn't a connection here, just the initial
process.
Andrew Bartlett
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/conn.c | 5 | ||||
-rw-r--r-- | source3/smbd/lanman.c | 2 | ||||
-rw-r--r-- | source3/smbd/msdfs.c | 5 | ||||
-rw-r--r-- | source3/smbd/proto.h | 5 | ||||
-rw-r--r-- | source3/smbd/server.c | 2 | ||||
-rw-r--r-- | source3/smbd/server_reload.c | 6 |
6 files changed, 15 insertions, 10 deletions
diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c index 833147b1a6..c4ab5c1793 100644 --- a/source3/smbd/conn.c +++ b/source3/smbd/conn.c @@ -54,10 +54,9 @@ int conn_num_open(struct smbd_server_connection *sconn) Check if a snum is in use. ****************************************************************************/ -bool conn_snum_used(int snum) +bool conn_snum_used(struct smbd_server_connection *sconn, + int snum) { - struct smbd_server_connection *sconn = smbd_server_conn; - if (sconn->using_smb2) { /* SMB2 */ struct smbd_smb2_session *sess; diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c index b012e09f5e..5958bb9746 100644 --- a/source3/smbd/lanman.c +++ b/source3/smbd/lanman.c @@ -2092,7 +2092,7 @@ static bool api_RNetShareEnum(struct smbd_server_connection *sconn, /* Ensure all the usershares are loaded. */ become_root(); load_registry_shares(); - count = load_usershare_shares(); + count = load_usershare_shares(sconn); unbecome_root(); data_len = fixed_len = string_len = 0; diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c index 82abda79de..085834b4ee 100644 --- a/source3/smbd/msdfs.c +++ b/source3/smbd/msdfs.c @@ -1709,7 +1709,8 @@ out: return cnt; } -struct junction_map *enum_msdfs_links(TALLOC_CTX *ctx, size_t *p_num_jn) +struct junction_map *enum_msdfs_links(struct smbd_server_connection *sconn, + TALLOC_CTX *ctx, size_t *p_num_jn) { struct junction_map *jn = NULL; int i=0; @@ -1724,7 +1725,7 @@ struct junction_map *enum_msdfs_links(TALLOC_CTX *ctx, size_t *p_num_jn) /* Ensure all the usershares are loaded. */ become_root(); load_registry_shares(); - sharecount = load_usershare_shares(); + sharecount = load_usershare_shares(sconn); unbecome_root(); for(i=0;i < sharecount;i++) { diff --git a/source3/smbd/proto.h b/source3/smbd/proto.h index 589d45dade..5b45574bc5 100644 --- a/source3/smbd/proto.h +++ b/source3/smbd/proto.h @@ -94,7 +94,7 @@ NTSTATUS delete_all_streams(connection_struct *conn, const char *fname); void conn_init(struct smbd_server_connection *sconn); int conn_num_open(struct smbd_server_connection *sconn); -bool conn_snum_used(int snum); +bool conn_snum_used(struct smbd_server_connection *sconn, int snum); connection_struct *conn_find(struct smbd_server_connection *sconn, unsigned cnum); connection_struct *conn_new(struct smbd_server_connection *sconn); @@ -407,7 +407,8 @@ bool create_junction(TALLOC_CTX *ctx, struct junction_map *jucn); bool create_msdfs_link(const struct junction_map *jucn); bool remove_msdfs_link(const struct junction_map *jucn); -struct junction_map *enum_msdfs_links(TALLOC_CTX *ctx, size_t *p_num_jn); +struct junction_map *enum_msdfs_links(struct smbd_server_connection *sconn, + TALLOC_CTX *ctx, size_t *p_num_jn); NTSTATUS resolve_dfspath(TALLOC_CTX *ctx, connection_struct *conn, bool dfs_pathnames, diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 4125aebeb4..10edb5ef45 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1033,7 +1033,7 @@ extern void build_options(bool screen); * Reloading of the printers will not work here as we don't have a * server info and rpc services set up. It will be called later. */ - if (!reload_services(smbd_messaging_context(), -1, False)) { + if (!reload_services(NULL, -1, False)) { exit(1); } diff --git a/source3/smbd/server_reload.c b/source3/smbd/server_reload.c index 82b0cb03e9..fef66dac6a 100644 --- a/source3/smbd/server_reload.c +++ b/source3/smbd/server_reload.c @@ -113,7 +113,11 @@ bool reload_services(struct messaging_context *msg_ctx, int smb_sock, if (test && !lp_file_list_changed()) return(True); - lp_killunused(conn_snum_used); + if (msg_ctx) { + lp_killunused(msg_ctx_to_sconn(msg_ctx), conn_snum_used); + } else { + lp_killunused(NULL, NULL); + } ret = lp_load(get_dyn_CONFIGFILE(), False, False, True, True); |