summaryrefslogtreecommitdiff
path: root/source3/smbd/globals.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/smbd/globals.c')
-rw-r--r--source3/smbd/globals.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/smbd/globals.c b/source3/smbd/globals.c
index 10ee5e81e2..892bc89d08 100644
--- a/source3/smbd/globals.c
+++ b/source3/smbd/globals.c
@@ -125,6 +125,33 @@ int num_children = 0;
struct smbd_server_connection *smbd_server_conn = NULL;
+struct messaging_context *smbd_messaging_context(void)
+{
+ if (smbd_msg_ctx == NULL) {
+ smbd_msg_ctx = messaging_init(talloc_autofree_context(),
+ procid_self(),
+ smbd_event_context());
+ }
+ if (smbd_msg_ctx == NULL) {
+ DEBUG(0, ("Could not init smbd messaging context.\n"));
+ }
+ return smbd_msg_ctx;
+}
+
+struct memcache *smbd_memcache(void)
+{
+ if (!smbd_memcache_ctx) {
+ smbd_memcache_ctx = memcache_init(talloc_autofree_context(),
+ lp_max_stat_cache_size()*1024);
+ }
+ if (!smbd_memcache_ctx) {
+ smb_panic("Could not init smbd memcache");
+ }
+
+ return smbd_memcache_ctx;
+}
+
+
void smbd_init_globals(void)
{
ZERO_STRUCT(char_flags);