update docs
[m6w6/libmemcached] / libmemcached / memcached_sasl.html
1
2
3 <!DOCTYPE html>
4 <html class="writer-html5" lang="en" >
5 <head>
6 <meta charset="utf-8">
7
8 <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10 <title>SASL support &mdash; libmemcached 1.0.99 documentation</title>
11
12
13
14 <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
15 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
16
17
18
19
20
21
22
23 <!--[if lt IE 9]>
24 <script src="../_static/js/html5shiv.min.js"></script>
25 <![endif]-->
26
27
28 <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
29 <script src="../_static/jquery.js"></script>
30 <script src="../_static/underscore.js"></script>
31 <script src="../_static/doctools.js"></script>
32 <script src="../_static/language_data.js"></script>
33
34 <script type="text/javascript" src="../_static/js/theme.js"></script>
35
36
37 <link rel="index" title="Index" href="../genindex.html" />
38 <link rel="search" title="Search" href="../search.html" />
39 <link rel="copyright" title="Copyright" href="../copyright.html" />
40 <link rel="next" title="Servers and Server Lists" href="index_advanced_servers.html" />
41 <link rel="prev" title="Generating hash values directly" href="memcached_generate_hash_value.html" />
42 </head>
43
44 <body class="wy-body-for-nav">
45
46
47 <div class="wy-grid-for-nav">
48
49 <nav data-toggle="wy-nav-shift" class="wy-nav-side">
50 <div class="wy-side-scroll">
51 <div class="wy-side-nav-search" >
52
53
54
55 <a href="../index.html" class="icon icon-home" alt="Documentation Home"> libmemcached
56
57
58
59 </a>
60
61
62
63
64 <div class="version">
65 1.0
66 </div>
67
68
69
70
71 <div role="search">
72 <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
73 <input type="text" name="q" placeholder="Search docs" />
74 <input type="hidden" name="check_keywords" value="yes" />
75 <input type="hidden" name="area" value="default" />
76 </form>
77 </div>
78
79
80 </div>
81
82
83 <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
84
85
86
87
88
89
90 <p class="caption"><span class="caption-text">libmemcached</span></p>
91 <ul class="current">
92 <li class="toctree-l1"><a class="reference internal" href="../libmemcached.html">Introduction</a></li>
93 <li class="toctree-l1 current"><a class="reference internal" href="index.html">libmemcached API</a><ul class="current">
94 <li class="toctree-l2"><a class="reference internal" href="index_basics.html">Basics</a></li>
95 <li class="toctree-l2"><a class="reference internal" href="index_data.html">Working with Data</a></li>
96 <li class="toctree-l2"><a class="reference internal" href="index_errors.html">Messages and Errors</a></li>
97 <li class="toctree-l2 current"><a class="reference internal" href="index_advanced.html">Advanced Topics</a><ul class="current">
98 <li class="toctree-l3"><a class="reference internal" href="index_advanced_internals.html">Internal Behavior</a></li>
99 <li class="toctree-l3 current"><a class="reference internal" href="index_advanced_aeh.html">Authentication, Encryption &amp; Hashing</a><ul class="current">
100 <li class="toctree-l4"><a class="reference internal" href="memcached_set_encoding_key.html">Set encryption key</a></li>
101 <li class="toctree-l4"><a class="reference internal" href="memcached_generate_hash_value.html">Generating hash values directly</a></li>
102 <li class="toctree-l4 current"><a class="current reference internal" href="#">SASL support</a></li>
103 </ul>
104 </li>
105 <li class="toctree-l3"><a class="reference internal" href="index_advanced_servers.html">Servers and Server Lists</a></li>
106 <li class="toctree-l3"><a class="reference internal" href="index_advanced_daemon.html">Affecting the memcached Daemon</a></li>
107 <li class="toctree-l3"><a class="reference internal" href="index_advanced_stats.html">Statistics</a></li>
108 </ul>
109 </li>
110 <li class="toctree-l2"><a class="reference internal" href="index_deprecated.html">Deprecated Functionality</a></li>
111 </ul>
112 </li>
113 <li class="toctree-l1"><a class="reference internal" href="index_misc.html">Misc</a></li>
114 </ul>
115 <p class="caption"><span class="caption-text">libmemcachedutil</span></p>
116 <ul>
117 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil.html">Introduction</a></li>
118 <li class="toctree-l1"><a class="reference internal" href="../libmemcachedutil/index.html">libmemcachedutil API</a></li>
119 </ul>
120 <p class="caption"><span class="caption-text">libhashkit</span></p>
121 <ul>
122 <li class="toctree-l1"><a class="reference internal" href="../libhashkit.html">Introduction</a></li>
123 <li class="toctree-l1"><a class="reference internal" href="../libhashkit/index.html">libhashkit API</a></li>
124 </ul>
125 <p class="caption"><span class="caption-text">Client Applications</span></p>
126 <ul>
127 <li class="toctree-l1"><a class="reference internal" href="../bin/index.html">Client Applications</a></li>
128 </ul>
129 <p class="caption"><span class="caption-text">Copyright</span></p>
130 <ul>
131 <li class="toctree-l1"><a class="reference internal" href="../copyright.html">Copyright</a></li>
132 </ul>
133
134
135
136 </div>
137
138 </div>
139 </nav>
140
141 <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
142
143
144 <nav class="wy-nav-top" aria-label="top navigation">
145
146 <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
147 <a href="../index.html">libmemcached</a>
148
149 </nav>
150
151
152 <div class="wy-nav-content">
153
154 <div class="rst-content">
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172 <div role="navigation" aria-label="breadcrumbs navigation">
173
174 <ul class="wy-breadcrumbs">
175
176 <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
177
178 <li><a href="index.html">libmemcached API</a> &raquo;</li>
179
180 <li><a href="index_advanced.html">Advanced Topics</a> &raquo;</li>
181
182 <li><a href="index_advanced_aeh.html">Authentication, Encryption &amp; Hashing</a> &raquo;</li>
183
184 <li>SASL support</li>
185
186
187 <li class="wy-breadcrumbs-aside">
188
189
190
191 </li>
192
193 </ul>
194
195
196 <hr/>
197 </div>
198 <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
199 <div itemprop="articleBody">
200
201 <div class="section" id="sasl-support">
202 <h1>SASL support<a class="headerlink" href="#sasl-support" title="Permalink to this headline"></a></h1>
203 <div class="section" id="synopsis">
204 <h2>SYNOPSIS<a class="headerlink" href="#synopsis" title="Permalink to this headline"></a></h2>
205 <dl class="simple">
206 <dt>#include &lt;libmemcached/memcached.h&gt;</dt><dd><p>Compile and link with -lmemcached</p>
207 </dd>
208 </dl>
209 <dl class="cpp function">
210 <dt id="_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t">
211 <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>
212 <dd><dl class="field-list simple">
213 <dt class="field-odd">Parameters</dt>
214 <dd class="field-odd"><ul class="simple">
215 <li><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
216 <li><p><strong>callbacks</strong> -- pointer to <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">sasl_callbacks_t</span></code> holding the callbacks to use</p></li>
217 </ul>
218 </dd>
219 </dl>
220 </dd></dl>
221
222 <dl class="cpp function">
223 <dt id="_CPPv428memcached_get_sasl_callbacksP12memcached_st">
224 <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>
225 <dd><dl class="field-list simple">
226 <dt class="field-odd">Parameters</dt>
227 <dd class="field-odd"><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p>
228 </dd>
229 <dt class="field-even">Returns</dt>
230 <dd class="field-even"><p>pointer to <code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">sasl_callbacks_t</span></code> holding the callbacks currently used</p>
231 </dd>
232 </dl>
233 </dd></dl>
234
235 <dl class="cpp function">
236 <dt id="_CPPv428memcached_set_sasl_auth_dataP12memcached_stPKcPKc">
237 <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>
238 <dd><dl class="field-list simple">
239 <dt class="field-odd">Parameters</dt>
240 <dd class="field-odd"><ul class="simple">
241 <li><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p></li>
242 <li><p><strong>username</strong> -- </p></li>
243 <li><p><strong>password</strong> -- </p></li>
244 </ul>
245 </dd>
246 <dt class="field-even">Returns</dt>
247 <dd class="field-even"><p><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_return_t</span></code></a> indicating success</p>
248 </dd>
249 </dl>
250 </dd></dl>
251
252 <dl class="cpp function">
253 <dt id="_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st">
254 <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>
255 <dd><dl class="field-list simple">
256 <dt class="field-odd">Parameters</dt>
257 <dd class="field-odd"><p><strong>ptr</strong> -- pointer to initialized <a class="reference internal" href="memcached_create.html#_CPPv412memcached_st" title="memcached_st"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_st</span></code></a> struct</p>
258 </dd>
259 <dt class="field-even">Returns</dt>
260 <dd class="field-even"><p><a class="reference internal" href="memcached_return_t.html#_CPPv418memcached_return_t" title="memcached_return_t"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_return_t</span></code></a> indicating success</p>
261 </dd>
262 </dl>
263 </dd></dl>
264
265 </div>
266 <div class="section" id="description">
267 <h2>DESCRIPTION<a class="headerlink" href="#description" title="Permalink to this headline"></a></h2>
268 <p><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">libmemcached</span></code> allows you to plug in your own callbacks function used by
269 libsasl to perform SASL authentication.</p>
270 <p>Please note that SASL requires the memcached binary protocol, and you have
271 to specify the callbacks before you connect to the server.</p>
272 <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
273 the basic functionality for you, but it will store the username and password
274 in memory. If you choose to use this method you have to call
275 <a class="reference internal" href="#_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st" title="memcached_destroy_sasl_auth_data"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_destroy_sasl_auth_data()</span></code></a> before calling <a class="reference internal" href="memcached_create.html#_CPPv414memcached_freeP12memcached_st" title="memcached_free"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_free()</span></code></a> to avoid a
276 memory leak. You should NOT call <a class="reference internal" href="#_CPPv432memcached_destroy_sasl_auth_dataP12memcached_st" title="memcached_destroy_sasl_auth_data"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_destroy_sasl_auth_data()</span></code></a> if you
277 specify your own callback function with <a class="reference internal" href="#_CPPv428memcached_set_sasl_callbacksP12memcached_stPK15sasl_callback_t" title="memcached_set_sasl_callbacks"><code class="xref cpp cpp-any docutils literal notranslate"><span class="pre">memcached_set_sasl_callbacks()</span></code></a>.</p>
278 </div>
279 <div class="section" id="return-value">
280 <h2>RETURN VALUE<a class="headerlink" href="#return-value" title="Permalink to this headline"></a></h2>
281 <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
282 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
283 <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>
284 </div>
285 <div class="section" id="see-also">
286 <h2>SEE ALSO<a class="headerlink" href="#see-also" title="Permalink to this headline"></a></h2>
287 <ul class="simple">
288 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/1/memcached">memcached(1)</a></em></p></li>
289 <li><p><a class="reference internal" href="../libmemcached.html"><span class="doc">C/C++ Client Library for memcached</span></a></p></li>
290 <li><p><a class="reference internal" href="memcached_strerror.html"><span class="doc">Converting Error Codes to Messages</span></a></p></li>
291 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/3/sasl_client_new">sasl_client_new(3)</a></em></p></li>
292 <li><p><em class="manpage"><a class="manpage reference external" href="https://linux.die.net/man/3/sasl_callbacks">sasl_callbacks(3)</a></em></p></li>
293 </ul>
294 </div>
295 </div>
296
297
298 </div>
299
300 </div>
301 <footer>
302
303 <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
304
305 <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>
306
307
308 <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>
309
310 </div>
311
312
313 <hr/>
314
315 <div role="contentinfo">
316 <p>
317
318
319 &copy; <a href="../copyright.html">Copyright</a>
320
321 </p>
322 </div>
323
324
325
326 Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
327
328 <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
329
330 provided by <a href="https://readthedocs.org">Read the Docs</a>.
331
332 </footer>
333
334 </div>
335 </div>
336
337 </section>
338
339 </div>
340
341
342 <script type="text/javascript">
343 jQuery(function () {
344 SphinxRtdTheme.Navigation.enable(true);
345 });
346 </script>
347
348
349
350
351
352
353 </body>
354 </html>