X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcstack.c;h=3fd06d331459680cefa66328ccdb735500c6f866;hp=79f63d2fc8552242223be51cadbccb5c69d7ff40;hb=eff4c7d3a6068f5feccd41d423824ff6180f4dc5;hpb=89429cd0dc7e29b8284d5b6066f94719509ec885 diff --git a/lib/silcutil/silcstack.c b/lib/silcutil/silcstack.c index 79f63d2f..3fd06d33 100644 --- a/lib/silcutil/silcstack.c +++ b/lib/silcutil/silcstack.c @@ -4,7 +4,7 @@ Author: Pekka Riikonen - Copyright (C) 2003 - 2007 Pekka Riikonen + Copyright (C) 2003 - 2008 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -603,6 +603,35 @@ SilcBool silc_stack_purge(SilcStack stack) return ret; } +/* Set global stack */ + +void silc_stack_set_global(SilcStack stack) +{ + SilcTls tls = silc_thread_get_tls(); + + if (!tls) { + /* Try to initialize Tls */ + tls = silc_thread_tls_init(); + SILC_VERIFY(tls); + if (!tls) + return; + } + + tls->stack = stack; +} + +/* Return global stack */ + +SilcStack silc_stack_get_global(void) +{ + SilcTls tls = silc_thread_get_tls(); + + if (!tls) + return NULL; + + return tls->stack; +} + #ifdef SILC_DIST_INPLACE /* Statistics dumping. */