4 <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5 <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
9 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0">
11 <title>SASL support
— libmemcached
1.0.99 documentation
</title>
20 <script type=
"text/javascript" src=
"../_static/js/modernizr.min.js"></script>
23 <script type=
"text/javascript" id=
"documentation_options" data-url_root=
"../" src=
"../_static/documentation_options.js"></script>
24 <script src=
"../_static/jquery.js"></script>
25 <script src=
"../_static/underscore.js"></script>
26 <script src=
"../_static/doctools.js"></script>
27 <script src=
"../_static/language_data.js"></script>
29 <script type=
"text/javascript" src=
"../_static/js/theme.js"></script>
34 <link rel=
"stylesheet" href=
"../_static/css/theme.css" type=
"text/css" />
35 <link rel=
"stylesheet" href=
"../_static/pygments.css" type=
"text/css" />
36 <link rel=
"index" title=
"Index" href=
"../genindex.html" />
37 <link rel=
"search" title=
"Search" href=
"../search.html" />
38 <link rel=
"copyright" title=
"Copyright" href=
"../copyright.html" />
39 <link rel=
"next" title=
"Servers and Server Lists" href=
"index_advanced_servers.html" />
40 <link rel=
"prev" title=
"Generating hash values directly" href=
"memcached_generate_hash_value.html" />
43 <body class=
"wy-body-for-nav">
46 <div class=
"wy-grid-for-nav">
48 <nav data-toggle=
"wy-nav-shift" class=
"wy-nav-side">
49 <div class=
"wy-side-scroll">
50 <div class=
"wy-side-nav-search" >
54 <a href=
"../index.html" class=
"icon icon-home"> libmemcached
71 <form id=
"rtd-search-form" class=
"wy-form" action=
"../search.html" method=
"get">
72 <input type=
"text" name=
"q" placeholder=
"Search docs" />
73 <input type=
"hidden" name=
"check_keywords" value=
"yes" />
74 <input type=
"hidden" name=
"area" value=
"default" />
81 <div class=
"wy-menu wy-menu-vertical" data-spy=
"affix" role=
"navigation" aria-label=
"main navigation">
88 <p class=
"caption"><span class=
"caption-text">libmemcached
</span></p>
90 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libmemcached.html">Introduction
</a></li>
91 <li class=
"toctree-l1 current"><a class=
"reference internal" href=
"index.html">libmemcached API
</a><ul class=
"current">
92 <li class=
"toctree-l2"><a class=
"reference internal" href=
"index_basics.html">Basics
</a></li>
93 <li class=
"toctree-l2"><a class=
"reference internal" href=
"index_data.html">Working with Data
</a></li>
94 <li class=
"toctree-l2"><a class=
"reference internal" href=
"index_errors.html">Messages and Errors
</a></li>
95 <li class=
"toctree-l2 current"><a class=
"reference internal" href=
"index_advanced.html">Advanced Topics
</a><ul class=
"current">
96 <li class=
"toctree-l3"><a class=
"reference internal" href=
"index_advanced_internals.html">Internal Behavior
</a></li>
97 <li class=
"toctree-l3 current"><a class=
"reference internal" href=
"index_advanced_aeh.html">Authentication, Encryption
& Hashing
</a><ul class=
"current">
98 <li class=
"toctree-l4"><a class=
"reference internal" href=
"memcached_set_encoding_key.html">Set encryption key
</a></li>
99 <li class=
"toctree-l4"><a class=
"reference internal" href=
"memcached_generate_hash_value.html">Generating hash values directly
</a></li>
100 <li class=
"toctree-l4 current"><a class=
"current reference internal" href=
"#">SASL support
</a></li>
103 <li class=
"toctree-l3"><a class=
"reference internal" href=
"index_advanced_servers.html">Servers and Server Lists
</a></li>
104 <li class=
"toctree-l3"><a class=
"reference internal" href=
"index_advanced_daemon.html">Affecting the memcached Daemon
</a></li>
105 <li class=
"toctree-l3"><a class=
"reference internal" href=
"index_advanced_stats.html">Statistics
</a></li>
108 <li class=
"toctree-l2"><a class=
"reference internal" href=
"index_deprecated.html">Deprecated Functionality
</a></li>
111 <li class=
"toctree-l1"><a class=
"reference internal" href=
"index_misc.html">Misc
</a></li>
113 <p class=
"caption"><span class=
"caption-text">libmemcachedutil
</span></p>
115 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libmemcachedutil.html">Introduction
</a></li>
116 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libmemcachedutil/index.html">libmemcachedutil API
</a></li>
118 <p class=
"caption"><span class=
"caption-text">libhashkit
</span></p>
120 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libhashkit.html">Introduction
</a></li>
121 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libhashkit/index.html">libhashkit API
</a></li>
123 <p class=
"caption"><span class=
"caption-text">Client Applications
</span></p>
125 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../bin/index.html">Client Applications
</a></li>
127 <p class=
"caption"><span class=
"caption-text">Copyright
</span></p>
129 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../copyright.html">Copyright
</a></li>
138 <section data-toggle=
"wy-nav-shift" class=
"wy-nav-content-wrap">
141 <nav class=
"wy-nav-top" aria-label=
"top navigation">
143 <i data-toggle=
"wy-nav-top" class=
"fa fa-bars"></i>
144 <a href=
"../index.html">libmemcached
</a>
149 <div class=
"wy-nav-content">
151 <div class=
"rst-content">
169 <div role=
"navigation" aria-label=
"breadcrumbs navigation">
171 <ul class=
"wy-breadcrumbs">
173 <li><a href=
"../index.html">Docs
</a> »</li>
175 <li><a href=
"index.html">libmemcached API
</a> »</li>
177 <li><a href=
"index_advanced.html">Advanced Topics
</a> »</li>
179 <li><a href=
"index_advanced_aeh.html">Authentication, Encryption
& Hashing
</a> »</li>
181 <li>SASL support
</li>
184 <li class=
"wy-breadcrumbs-aside">
195 <div role=
"main" class=
"document" itemscope=
"itemscope" itemtype=
"http://schema.org/Article">
196 <div itemprop=
"articleBody">
198 <div class=
"section" id=
"sasl-support">
199 <h1>SASL support
<a class=
"headerlink" href=
"#sasl-support" title=
"Permalink to this headline">¶
</a></h1>
200 <div class=
"section" id=
"synopsis">
201 <span id=
"index-0"></span><h2>SYNOPSIS
<a class=
"headerlink" href=
"#synopsis" title=
"Permalink to this headline">¶
</a></h2>
202 <p>#include
<libmemcached/memcached_pool.h
></p>
203 <dl class=
"cpp function">
204 <dt id=
"_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t">
205 <span id=
"_CPPv328memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t"></span><span id=
"_CPPv228memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t"></span><span id=
"memcached_set_sasl_callbacks__memcached_stP.sasl_callback_tCP"></span>void
<code class=
"sig-name descname">memcached_set_sasl_callbacks
</code><span class=
"sig-paren">(
</span><a class=
"reference internal" href=
"memcached_create.html#_CPPv412memcached_st" title=
"memcached_st">memcached_st
</a> *
<em>ptr
</em>,
<em class=
"property">const
</em> sasl_callback_t *
<em>callbacks
</em><span class=
"sig-paren">)
</span><a class=
"headerlink" href=
"#_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t" title=
"Permalink to this definition">¶
</a><br /></dt>
208 <dl class=
"cpp function">
209 <dt id=
"_CPPv428memcached_get_sasl_callbacksP12memcached_st">
210 <span id=
"_CPPv328memcached_get_sasl_callbacksP12memcached_st"></span><span id=
"_CPPv228memcached_get_sasl_callbacksP12memcached_st"></span><span id=
"memcached_get_sasl_callbacks__memcached_stP"></span><em class=
"property">const
</em> sasl_callback_t *
<code class=
"sig-name descname">memcached_get_sasl_callbacks
</code><span class=
"sig-paren">(
</span><a class=
"reference internal" href=
"memcached_create.html#_CPPv412memcached_st" title=
"memcached_st">memcached_st
</a> *
<em>ptr
</em><span class=
"sig-paren">)
</span><a class=
"headerlink" href=
"#_CPPv428memcached_get_sasl_callbacksP12memcached_st" title=
"Permalink to this definition">¶
</a><br /></dt>
213 <dl class=
"cpp function">
214 <dt id=
"_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc">
215 <span id=
"_CPPv328memcached_set_sasl_auth_dataP12memcached_stPKcPKc"></span><span id=
"_CPPv228memcached_set_sasl_auth_dataP12memcached_stPKcPKc"></span><span id=
"memcached_set_sasl_auth_data__memcached_stP.cCP.cCP"></span><a class=
"reference internal" href=
"memcached_return_t.html#_CPPv418memcached_return_t" title=
"memcached_return_t">memcached_return_t
</a> <code class=
"sig-name descname">memcached_set_sasl_auth_data
</code><span class=
"sig-paren">(
</span><a class=
"reference internal" href=
"memcached_create.html#_CPPv412memcached_st" title=
"memcached_st">memcached_st
</a> *
<em>ptr
</em>,
<em class=
"property">const
</em> char *
<em>username
</em>,
<em class=
"property">const
</em> char *
<em>password
</em><span class=
"sig-paren">)
</span><a class=
"headerlink" href=
"#_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc" title=
"Permalink to this definition">¶
</a><br /></dt>
218 <dl class=
"cpp function">
219 <dt id=
"_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st">
220 <span id=
"_CPPv332memcached_destroy_sasl_auth_dataP12memcached_st"></span><span id=
"_CPPv232memcached_destroy_sasl_auth_dataP12memcached_st"></span><span id=
"memcached_destroy_sasl_auth_data__memcached_stP"></span><a class=
"reference internal" href=
"memcached_return_t.html#_CPPv418memcached_return_t" title=
"memcached_return_t">memcached_return_t
</a> <code class=
"sig-name descname">memcached_destroy_sasl_auth_data
</code><span class=
"sig-paren">(
</span><a class=
"reference internal" href=
"memcached_create.html#_CPPv412memcached_st" title=
"memcached_st">memcached_st
</a> *
<em>ptr
</em><span class=
"sig-paren">)
</span><a class=
"headerlink" href=
"#_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st" title=
"Permalink to this definition">¶
</a><br /></dt>
223 <p>Compile and link with -lmemcached
</p>
225 <div class=
"section" id=
"description">
226 <h2>DESCRIPTION
<a class=
"headerlink" href=
"#description" title=
"Permalink to this headline">¶
</a></h2>
227 <p>libmemcached(
3) allows you to plug in your own callbacks function used by
228 libsasl to perform SASL authentication.
</p>
229 <p>Please note that SASL requires the memcached binary protocol, and you have
230 to specify the callbacks before you connect to the server.
</p>
231 <p><a class=
"reference internal" href=
"#_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc" title=
"memcached_set_sasl_auth_data"><code class=
"xref cpp cpp-func docutils literal notranslate"><span class=
"pre">memcached_set_sasl_auth_data()
</span></code></a> is a helper function defining
232 the basic functionality for you, but it will store the username and password
233 in memory. If you choose to use this method you have to call
234 <a class=
"reference internal" href=
"#_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st" title=
"memcached_destroy_sasl_auth_data"><code class=
"xref cpp cpp-type docutils literal notranslate"><span class=
"pre">memcached_destroy_sasl_auth_data
</span></code></a> before calling
235 <a class=
"reference internal" href=
"memcached_create.html#_CPPv414memcached_freeP12memcached_st" title=
"memcached_free"><code class=
"xref cpp cpp-type docutils literal notranslate"><span class=
"pre">memcached_free
</span></code></a> to avoid a memory leak. You should NOT call
236 <a class=
"reference internal" href=
"#_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st" title=
"memcached_destroy_sasl_auth_data"><code class=
"xref cpp cpp-type docutils literal notranslate"><span class=
"pre">memcached_destroy_sasl_auth_data
</span></code></a> if you specify your own callback
237 function with
<a class=
"reference internal" href=
"#_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t" title=
"memcached_set_sasl_callbacks"><code class=
"xref cpp cpp-func docutils literal notranslate"><span class=
"pre">memcached_set_sasl_callbacks()
</span></code></a>.
</p>
239 <div class=
"section" id=
"return-value">
240 <h2>RETURN VALUE
<a class=
"headerlink" href=
"#return-value" title=
"Permalink to this headline">¶
</a></h2>
241 <p><a class=
"reference internal" href=
"#_CPPv428memcached_get_sasl_callbacksP12memcached_st" title=
"memcached_get_sasl_callbacks"><code class=
"xref cpp cpp-func docutils literal notranslate"><span class=
"pre">memcached_get_sasl_callbacks()
</span></code></a> returns the callbacks currently used by
242 this memcached handle.
<a class=
"reference internal" href=
"#_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc" title=
"memcached_set_sasl_auth_data"><code class=
"xref cpp cpp-func docutils literal notranslate"><span class=
"pre">memcached_set_sasl_auth_data()
</span></code></a> returns
243 <a class=
"reference internal" href=
"memcached_return_t.html#_CPPv4N18memcached_return_t17MEMCACHED_SUCCESSE" title=
"MEMCACHED_SUCCESS"><code class=
"xref cpp cpp-any docutils literal notranslate"><span class=
"pre">MEMCACHED_SUCCESS
</span></code></a> upon success.
</p>
245 <div class=
"section" id=
"see-also">
246 <h2>SEE ALSO
<a class=
"headerlink" href=
"#see-also" title=
"Permalink to this headline">¶
</a></h2>
256 <div class=
"rst-footer-buttons" role=
"navigation" aria-label=
"footer navigation">
258 <a href=
"index_advanced_servers.html" class=
"btn btn-neutral float-right" title=
"Servers and Server Lists" accesskey=
"n" rel=
"next">Next
<span class=
"fa fa-arrow-circle-right"></span></a>
261 <a href=
"memcached_generate_hash_value.html" class=
"btn btn-neutral float-left" title=
"Generating hash values directly" accesskey=
"p" rel=
"prev"><span class=
"fa fa-arrow-circle-left"></span> Previous
</a>
268 <div role=
"contentinfo">
270 © <a href=
"../copyright.html">Copyright
</a>
274 Built with
<a href=
"http://sphinx-doc.org/">Sphinx
</a> using a
<a href=
"https://github.com/rtfd/sphinx_rtd_theme">theme
</a> provided by
<a href=
"https://readthedocs.org">Read the Docs
</a>.
287 <script type=
"text/javascript">
289 SphinxRtdTheme.Navigation.enable(true);