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></li>
96 <li class=
"toctree-l2"><a class=
"reference internal" href=
"index_deprecated.html">Deprecated Functionality
</a></li>
99 <li class=
"toctree-l1"><a class=
"reference internal" href=
"index_misc.html">Misc
</a><ul>
100 <li class=
"toctree-l2"><a class=
"reference internal" href=
"configuration.html">Configuration
</a></li>
101 <li class=
"toctree-l2"><a class=
"reference internal" href=
"constants.html">Constants
</a></li>
102 <li class=
"toctree-l2"><a class=
"reference internal" href=
"examples.html">Examples
</a></li>
103 <li class=
"toctree-l2"><a class=
"reference internal" href=
"versioning.html">Versioning
</a></li>
107 <p class=
"caption"><span class=
"caption-text">libmemcachedutil
</span></p>
109 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libmemcachedutil.html">Introduction
</a></li>
110 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libmemcachedutil/index.html">libmemcachedutil API
</a><ul>
111 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../libmemcachedutil/memcached_pool.html">Working with memcached pools
</a></li>
115 <p class=
"caption"><span class=
"caption-text">libhashkit
</span></p>
117 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libhashkit.html">Introduction
</a></li>
118 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../libhashkit/index.html">libhashkit API
</a><ul>
119 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../libhashkit/hashkit_create.html">Creating a hashkit structure
</a></li>
120 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../libhashkit/hashkit_function.html">Set Hash Function
</a></li>
121 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../libhashkit/hashkit_functions.html">Available Hashes
</a></li>
122 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../libhashkit/hashkit_value.html">Generate hash value
</a></li>
126 <p class=
"caption"><span class=
"caption-text">Client Applications
</span></p>
128 <li class=
"toctree-l1"><a class=
"reference internal" href=
"../bin/index.html">Client Applications
</a><ul>
129 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memcapable.html">memcapable - Checking a Memcached server capabilities and compatibility
</a></li>
130 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memcat.html">memcat - “cat” data from a server
</a></li>
131 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memcp.html">memcp - Copy data to a server
</a></li>
132 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memdump.html">memdump - Dumping your server
</a></li>
133 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memerror.html">memerror - translate an error code to a string
</a></li>
134 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memflush.html">memflush - flush all data from a server
</a></li>
135 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memrm.html">memrm - Remove data from a server
</a></li>
136 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memslap.html">memslap - Load testing and benchmarking a server
</a></li>
137 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memaslap.html">memaslap - Load testing and benchmarking a server
</a></li>
138 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memstat.html">memstat - Gather statistics from a server
</a></li>
139 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memexist.html">memexist - Check for the existence of a key
</a></li>
140 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memparse.html">memparse - Parse an option string
</a></li>
141 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memping.html">memping - Test to see if a server is available.
</a></li>
142 <li class=
"toctree-l2"><a class=
"reference internal" href=
"../bin/memtouch.html">memtouch - Touches a key.
</a></li>
153 <section data-toggle=
"wy-nav-shift" class=
"wy-nav-content-wrap">
156 <nav class=
"wy-nav-top" aria-label=
"top navigation">
158 <i data-toggle=
"wy-nav-top" class=
"fa fa-bars"></i>
159 <a href=
"../index.html">libmemcached
</a>
164 <div class=
"wy-nav-content">
166 <div class=
"rst-content">
184 <div role=
"navigation" aria-label=
"breadcrumbs navigation">
186 <ul class=
"wy-breadcrumbs">
188 <li><a href=
"../index.html">Docs
</a> »</li>
190 <li><a href=
"index.html">libmemcached API
</a> »</li>
192 <li><a href=
"index_advanced.html">Advanced Topics
</a> »</li>
194 <li><a href=
"index_advanced_aeh.html">Authentication, Encryption
& Hashing
</a> »</li>
196 <li>SASL support
</li>
199 <li class=
"wy-breadcrumbs-aside">
210 <div role=
"main" class=
"document" itemscope=
"itemscope" itemtype=
"http://schema.org/Article">
211 <div itemprop=
"articleBody">
213 <div class=
"section" id=
"sasl-support">
214 <h1>SASL support
<a class=
"headerlink" href=
"#sasl-support" title=
"Permalink to this headline">¶
</a></h1>
215 <div class=
"section" id=
"synopsis">
216 <span id=
"index-0"></span><h2>SYNOPSIS
<a class=
"headerlink" href=
"#synopsis" title=
"Permalink to this headline">¶
</a></h2>
217 <p>#include
<libmemcached/memcached_pool.h
></p>
218 <dl class=
"function">
219 <dt id=
"_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t">
220 <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>
223 <dl class=
"function">
224 <dt id=
"_CPPv428memcached_get_sasl_callbacksP12memcached_st">
225 <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>
228 <dl class=
"function">
229 <dt id=
"_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc">
230 <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>
233 <dl class=
"function">
234 <dt id=
"_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st">
235 <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>
238 <p>Compile and link with -lmemcached
</p>
240 <div class=
"section" id=
"description">
241 <h2>DESCRIPTION
<a class=
"headerlink" href=
"#description" title=
"Permalink to this headline">¶
</a></h2>
242 <p>libmemcached(
3) allows you to plug in your own callbacks function used by
243 libsasl to perform SASL authentication.
</p>
244 <p>Please note that SASL requires the memcached binary protocol, and you have
245 to specify the callbacks before you connect to the server.
</p>
246 <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
247 the basic functionality for you, but it will store the username and password
248 in memory. If you choose to use this method you have to call
249 <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
250 <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
251 <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
252 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>
254 <div class=
"section" id=
"return">
255 <h2>RETURN
<a class=
"headerlink" href=
"#return" title=
"Permalink to this headline">¶
</a></h2>
256 <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
257 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
258 <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>
260 <div class=
"section" id=
"see-also">
261 <h2>SEE ALSO
<a class=
"headerlink" href=
"#see-also" title=
"Permalink to this headline">¶
</a></h2>
271 <div class=
"rst-footer-buttons" role=
"navigation" aria-label=
"footer navigation">
273 <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>
276 <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>
283 <div role=
"contentinfo">
285 © <a href=
"../copyright.html">Copyright
</a>
289 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>.
302 <script type=
"text/javascript">
304 SphinxRtdTheme.Navigation.enable(true);