284 lines
34 KiB
HTML
284 lines
34 KiB
HTML
|
||
|
||
<!DOCTYPE html>
|
||
<html class="writer-html5" lang="en" data-content_root="../">
|
||
<head>
|
||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Disabling protocol commands — TeamSpeak SDK documentation</title>
|
||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
||
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
||
|
||
|
||
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
||
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
||
<script src="../_static/documentation_options.js?v=7f41d439"></script>
|
||
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||
<script src="../_static/js/theme.js"></script>
|
||
<link rel="index" title="Index" href="../genindex.html" />
|
||
<link rel="search" title="Search" href="../search.html" />
|
||
<link rel="next" title="Filetransfer" href="filetransfer.html" />
|
||
<link rel="prev" title="Security salts and hashes" href="security-salt.html" />
|
||
</head>
|
||
|
||
<body class="wy-body-for-nav">
|
||
<div class="wy-grid-for-nav">
|
||
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
||
<div class="wy-side-scroll">
|
||
<div class="wy-side-nav-search" >
|
||
|
||
|
||
|
||
<a href="../index.html" class="icon icon-home">
|
||
TeamSpeak SDK
|
||
<img src="../_static/logo.png" class="logo" alt="Logo"/>
|
||
</a>
|
||
<div role="search">
|
||
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
||
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
||
<input type="hidden" name="check_keywords" value="yes" />
|
||
<input type="hidden" name="area" value="default" />
|
||
</form>
|
||
</div>
|
||
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
||
<p class="caption" role="heading"><span class="caption-text">API</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="../errors.html">TeamSpeak Error Codes</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../properties.html">Property Enums</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../enumerations.html">Structures & Enumerations</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client_api.html">TeamSpeak Client Functions</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../server_api.html">TeamSpeak Server Functions</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Server</span></p>
|
||
<ul class="current">
|
||
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="basic.html">Getting started</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="list-items.html">List available clients, channels, servers</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="vserver-manage.html">Create and stop virtual servers</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="advanced-create.html">Advanced virtual server creation</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="info.html">Retrieve and store information</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="channels.html">Managing channels</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="clients.html">Managing clients</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="whisper.html">Whisper lists</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="encryption.html">Custom encryption</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="passwords.html">Custom passwords</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="permissions.html">Permission checks</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="security-salt.html">Security salts and hashes</a></li>
|
||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Disabling protocol commands</a><ul>
|
||
<li class="toctree-l2"><a class="reference internal" href="#example">Example</a></li>
|
||
</ul>
|
||
</li>
|
||
<li class="toctree-l1"><a class="reference internal" href="filetransfer.html">Filetransfer</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
|
||
</ul>
|
||
<p class="caption" role="heading"><span class="caption-text">Client</span></p>
|
||
<ul>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/intro.html">Introduction</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/basic.html">Getting started</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/connections.html">Managing server connections</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/logging.html">Logging</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/audio.html">Client Audio</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/wave-files.html">Playing wave files</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/3dsound.html">3D Sound</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/whisper.html">Whisper lists</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/voice-encryption.html">Channel voice data encryption</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/info.html">Retrieve and store information</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/channels.html">Channel Management</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/client-list.html">List clients</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/client-kick.html">Kicking clients</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/local-mute.html">Muting other clients</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/textmessages.html">Text chat</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/filetransfer.html">Filetransfer</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/encryption.html">Custom encryption</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/passwords.html">Custom passwords</a></li>
|
||
<li class="toctree-l1"><a class="reference internal" href="../client/faq.html">FAQ</a></li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
||
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
||
<a href="../index.html">TeamSpeak SDK</a>
|
||
</nav>
|
||
|
||
<div class="wy-nav-content">
|
||
<div class="rst-content">
|
||
<div role="navigation" aria-label="Page navigation">
|
||
<ul class="wy-breadcrumbs">
|
||
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
||
<li class="breadcrumb-item active">Disabling protocol commands</li>
|
||
<li class="wy-breadcrumbs-aside">
|
||
</li>
|
||
</ul>
|
||
<hr/>
|
||
</div>
|
||
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
||
<div itemprop="articleBody">
|
||
|
||
<section id="disabling-protocol-commands">
|
||
<h1>Disabling protocol commands<a class="headerlink" href="#disabling-protocol-commands" title="Link to this heading"></a></h1>
|
||
<p>SDK users can opt to disable specific protocol commands in a TeamSpeak
|
||
server instance, so clients are unable to use these commands. The
|
||
server can still issue disabled commands by calling the appropriate
|
||
Server Lib functions.</p>
|
||
<p>Commands that can be disabled are described in the <a class="reference internal" href="../enumerations.html#c.ClientCommand" title="ClientCommand"><code class="xref c c-enum docutils literal notranslate"><span class="pre">ClientCommand</span></code></a> enum.</p>
|
||
<div class="admonition note">
|
||
<p class="admonition-title">Note</p>
|
||
<p>By default all commands are allowed, unless explicitly disabled.</p>
|
||
</div>
|
||
<p>To disable protocol commands for all clients call</p>
|
||
<dl class="c function">
|
||
<dt class="sig sig-object c">
|
||
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_disableClientCommand</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">clientCommand</span></span><span class="sig-paren">)</span><br /></dt>
|
||
<dd><p>Prevents clients from performing certain actions. SDK only. </p>
|
||
<p>Use this to disable certain features for clients, e.g. deleting channels or moving clients so that the server has authority over these matters and is the only entity who can do so. To disable multiple commands, call this function once for each command you would like to disable for clients.</p>
|
||
<dl class="field-list simple">
|
||
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
||
<dd class="field-odd"><ul class="simple">
|
||
<li><p><strong>clientCommand</strong> – the command to disable. One of the values from the <a class="reference internal" href="../enumerations.html#public__definitions_8h_1a018ea5b8dcbbf3852163d9a8b17bb311"><span class="std std-ref">ClientCommand</span></a> enum </p></li>
|
||
</ul>
|
||
</dd>
|
||
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
||
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
||
</dd>
|
||
</dl>
|
||
</dd></dl>
|
||
|
||
<p>To disable multiple commands, call this function once per command to disable.</p>
|
||
<div class="admonition warning">
|
||
<p class="admonition-title">Warning</p>
|
||
<p>There is no way to enable commands again once disabled.</p>
|
||
<p>To enable all disabled commands again you will have to destroy
|
||
and initialize the server lib again.</p>
|
||
</div>
|
||
<section id="example">
|
||
<h2>Example<a class="headerlink" href="#example" title="Link to this heading"></a></h2>
|
||
<p>For example, an SDK user may decide that clients should not be able to
|
||
create channels on a TeamSpeak server and implement this action only on the
|
||
Server side.</p>
|
||
<p>Any client call to <a class="reference internal" href="../client/channel-create.html#c.ts3client_flushChannelCreation" title="ts3client_flushChannelCreation"><code class="xref c c-func docutils literal notranslate"><span class="pre">ts3client_flushChannelCreation()</span></code></a> will be rejected by the server.</p>
|
||
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><teamspeak/clientlib.h></span>
|
||
<span class="linenos"> 2</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><teamspeak/serverlib.h></span>
|
||
<span class="linenos"> 3</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><teamspeak/public_definitions.h></span>
|
||
<span class="linenos"> 4</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><teamspeak/public_errors.h></span>
|
||
<span class="linenos"> 5</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdio.h></span><span class="c1"> // printf</span>
|
||
<span class="linenos"> 6</span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><string.h></span><span class="c1"> // memset</span>
|
||
<span class="linenos"> 7</span>
|
||
<span class="linenos"> 8</span><span class="kt">void</span><span class="w"> </span><span class="nf">onConnect</span><span class="p">(</span><span class="n">uint64</span><span class="w"> </span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">status</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos"> 9</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">status</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">STATUS_CONNECTION_ESTABLISHING</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">10</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Creating channel...</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
||
<span class="linenos">11</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">err</span><span class="p">;</span>
|
||
<span class="linenos">12</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3client_setChannelVariableAsString</span><span class="p">(</span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">CHANNEL_NAME</span><span class="p">,</span><span class="w"> </span><span class="s">"TestChannel"</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">13</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to set channel variable: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">14</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
||
<span class="linenos">15</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">16</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3client_setChannelVariableAsInt</span><span class="p">(</span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">CHANNEL_FLAG_PERMANENT</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">17</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to set channel variable: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">18</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
||
<span class="linenos">19</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="hll"><span class="linenos">20</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3client_flushChannelCreation</span><span class="p">(</span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="s">"sdk-channel-create"</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
</span><span class="linenos">21</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to set channel variable: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">22</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
||
<span class="linenos">23</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">24</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">25</span><span class="p">}</span>
|
||
<span class="linenos">26</span>
|
||
<span class="linenos">27</span><span class="kt">void</span><span class="w"> </span><span class="nf">onError</span><span class="p">(</span><span class="n">uint64</span><span class="w"> </span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">message</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">error</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">returnCode</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">extra</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">28</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Connection %llu has error 0x%04X"</span><span class="p">,</span><span class="w"> </span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="n">error</span><span class="p">);</span>
|
||
<span class="linenos">29</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">returnCode</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">30</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">" for call %s"</span><span class="p">,</span><span class="w"> </span><span class="n">returnCode</span><span class="p">);</span>
|
||
<span class="linenos">31</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">32</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
||
<span class="linenos">33</span><span class="p">}</span>
|
||
<span class="linenos">34</span>
|
||
<span class="linenos">35</span><span class="kt">void</span><span class="w"> </span><span class="nf">onChannelCreated</span><span class="p">(</span><span class="n">uint64</span><span class="w"> </span><span class="n">schid</span><span class="p">,</span><span class="w"> </span><span class="n">uint64</span><span class="w"> </span><span class="n">channelId</span><span class="p">,</span><span class="w"> </span><span class="n">uint64</span><span class="w"> </span><span class="n">parentId</span><span class="p">,</span><span class="w"> </span><span class="n">anyID</span><span class="w"> </span><span class="n">invokerId</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">invokerName</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">invokerUid</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">36</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Channel %llu created by %s as a child of %llu on connection %llu</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">channelId</span><span class="p">,</span><span class="w"> </span><span class="n">invokerName</span><span class="p">,</span><span class="w"> </span><span class="n">parentId</span><span class="p">,</span><span class="w"> </span><span class="n">schid</span><span class="p">);</span>
|
||
<span class="linenos">37</span><span class="p">}</span>
|
||
<span class="linenos">38</span>
|
||
<span class="linenos">39</span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">40</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">ServerLibFunctions</span><span class="w"> </span><span class="n">sf</span><span class="p">;</span>
|
||
<span class="linenos">41</span><span class="w"> </span><span class="n">memset</span><span class="p">(</span><span class="o">&</span><span class="n">sf</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="n">sf</span><span class="p">);</span>
|
||
<span class="linenos">42</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">ClientUIFunctions</span><span class="w"> </span><span class="n">cf</span><span class="p">;</span>
|
||
<span class="linenos">43</span><span class="w"> </span><span class="n">memset</span><span class="p">(</span><span class="o">&</span><span class="n">cf</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="n">cf</span><span class="p">);</span>
|
||
<span class="linenos">44</span><span class="w"> </span><span class="n">cf</span><span class="p">.</span><span class="n">onConnectStatusChangeEvent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">onConnect</span><span class="p">;</span>
|
||
<span class="linenos">45</span><span class="w"> </span><span class="n">cf</span><span class="p">.</span><span class="n">onServerErrorEvent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">onError</span><span class="p">;</span>
|
||
<span class="linenos">46</span><span class="w"> </span><span class="n">cf</span><span class="p">.</span><span class="n">onNewChannelCreatedEvent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">onChannelCreated</span><span class="p">;</span>
|
||
<span class="linenos">47</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3client_initClientLib</span><span class="p">(</span><span class="o">&</span><span class="n">cf</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">LogType_NONE</span><span class="p">,</span><span class="w"> </span><span class="s">""</span><span class="p">,</span><span class="w"> </span><span class="s">""</span><span class="p">);</span>
|
||
<span class="linenos">48</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">49</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to init lib: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">50</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
<span class="linenos">51</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">52</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3server_initServerLib</span><span class="p">(</span><span class="o">&</span><span class="n">sf</span><span class="p">,</span><span class="w"> </span><span class="n">LogType_NONE</span><span class="p">,</span><span class="w"> </span><span class="s">""</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">53</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to init server lib: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">54</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
|
||
<span class="linenos">55</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="hll"><span class="linenos">56</span><span class="w"> </span><span class="n">ts3server_disableClientCommand</span><span class="p">(</span><span class="n">CLIENT_COMMAND_flushChannelCreation</span><span class="p">);</span>
|
||
</span><span class="linenos">57</span><span class="w"> </span><span class="n">uint64</span><span class="w"> </span><span class="n">serverId</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
|
||
<span class="linenos">58</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3server_createVirtualServer</span><span class="p">(</span><span class="mi">9987</span><span class="p">,</span><span class="w"> </span><span class="s">"127.0.0.1"</span><span class="p">,</span><span class="w"> </span><span class="s">"TestServer"</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">serverId</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">59</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to create server: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">60</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
|
||
<span class="linenos">61</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">62</span>
|
||
<span class="linenos">63</span><span class="w"> </span><span class="n">uint64</span><span class="w"> </span><span class="n">clientTab</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
|
||
<span class="linenos">64</span><span class="w"> </span><span class="n">ts3client_spawnNewServerConnectionHandler</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">clientTab</span><span class="p">);</span>
|
||
<span class="linenos">65</span>
|
||
<span class="linenos">66</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">ident</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span>
|
||
<span class="linenos">67</span><span class="w"> </span><span class="n">ts3client_createIdentity</span><span class="p">(</span><span class="o">&</span><span class="n">ident</span><span class="p">);</span>
|
||
<span class="linenos">68</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3client_startConnection</span><span class="p">(</span><span class="n">clientTab</span><span class="p">,</span><span class="w"> </span><span class="n">ident</span><span class="p">,</span><span class="w"> </span><span class="s">"127.0.0.1"</span><span class="p">,</span><span class="w"> </span><span class="mi">9987</span><span class="p">,</span><span class="w"> </span><span class="s">"TestUser"</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="s">""</span><span class="p">,</span><span class="w"> </span><span class="s">""</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
||
<span class="linenos">69</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Failed to connect: 0x%04X</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">err</span><span class="p">);</span>
|
||
<span class="linenos">70</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
|
||
<span class="linenos">71</span><span class="w"> </span><span class="p">}</span>
|
||
<span class="linenos">72</span>
|
||
<span class="linenos">73</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Press Enter to terminate</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
||
<span class="linenos">74</span><span class="w"> </span><span class="n">getchar</span><span class="p">();</span>
|
||
<span class="linenos">75</span>
|
||
<span class="linenos">76</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Terminating...</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
||
<span class="linenos">77</span><span class="w"> </span><span class="n">ts3client_stopConnection</span><span class="p">(</span><span class="n">clientTab</span><span class="p">,</span><span class="w"> </span><span class="s">"bye"</span><span class="p">);</span>
|
||
<span class="linenos">78</span><span class="w"> </span><span class="n">ts3server_stopVirtualServer</span><span class="p">(</span><span class="n">serverId</span><span class="p">);</span>
|
||
<span class="linenos">79</span><span class="w"> </span><span class="n">ts3client_destroyServerConnectionHandler</span><span class="p">(</span><span class="n">clientTab</span><span class="p">);</span>
|
||
<span class="linenos">80</span><span class="w"> </span><span class="n">ts3client_destroyClientLib</span><span class="p">();</span>
|
||
<span class="linenos">81</span><span class="w"> </span><span class="n">ts3server_destroyServerLib</span><span class="p">();</span>
|
||
<span class="linenos">82</span>
|
||
<span class="linenos">83</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
|
||
<span class="linenos">84</span><span class="p">}</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
||
<a href="security-salt.html" class="btn btn-neutral float-left" title="Security salts and hashes" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
||
<a href="filetransfer.html" class="btn btn-neutral float-right" title="Filetransfer" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
||
</div>
|
||
|
||
<hr/>
|
||
|
||
<div role="contentinfo">
|
||
<p>© Copyright 2020, TeamSpeak Systems GmbH.</p>
|
||
</div>
|
||
|
||
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
||
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
||
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
||
|
||
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<script>
|
||
jQuery(function () {
|
||
SphinxRtdTheme.Navigation.enable(true);
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html> |