Fix issue where descriptions for attributes of SharedFile and SharedDevice classes do not appear on readthedocs.io
Michael Teo
5 years ago
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
0 | 0 | # Sphinx build info version 1 |
1 | 1 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. |
2 | config: 668fd9f196a8769b5ce67eab576083f2 | |
2 | config: 572e6ae39b59e2cb6fe5a2a6ec7a8b1e | |
3 | 3 | tags: 645f666f9bcd5a90fca523b33c5a78b7 |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Overview: module code — pysmb 1.1.22 documentation</title> | |
8 | <title>Overview: module code — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | </head> |
27 | 27 | <body role="document"> |
28 | 28 | <div class="related" role="navigation" aria-label="related navigation"> |
34 | 34 | <li class="right" > |
35 | 35 | <a href="../py-modindex.html" title="Python Module Index" |
36 | 36 | >modules</a> |</li> |
37 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
37 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
38 | 38 | </ul> |
39 | 39 | </div> |
40 | 40 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
84 | 84 | <li class="right" > |
85 | 85 | <a href="../py-modindex.html" title="Python Module Index" |
86 | 86 | >modules</a> |</li> |
87 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
87 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
88 | 88 | </ul> |
89 | 89 | </div> |
90 | 90 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>nmb.NetBIOS — pysmb 1.1.22 documentation</title> | |
8 | <title>nmb.NetBIOS — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
223 | 223 | <li class="right" > |
224 | 224 | <a href="../../py-modindex.html" title="Python Module Index" |
225 | 225 | >modules</a> |</li> |
226 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
226 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
227 | 227 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
228 | 228 | </ul> |
229 | 229 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>nmb.NetBIOSProtocol — pysmb 1.1.22 documentation</title> | |
8 | <title>nmb.NetBIOSProtocol — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
215 | 215 | <li class="right" > |
216 | 216 | <a href="../../py-modindex.html" title="Python Module Index" |
217 | 217 | >modules</a> |</li> |
218 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
218 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
219 | 219 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
220 | 220 | </ul> |
221 | 221 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>smb.SMBConnection — pysmb 1.1.22 documentation</title> | |
8 | <title>smb.SMBConnection — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
480 | 480 | <span class="sd"> It supports the use of wildcards in file names, allowing for unlocking of multiple files/folders in a single request.</span> |
481 | 481 | <span class="sd"> This function is very helpful when deleting files/folders that are read-only.</span> |
482 | 482 | <span class="sd"> Note: this function is currently only implemented for SMB2! Technically, it sets the FILE_ATTRIBUTE_NORMAL flag, therefore clearing all other flags. (See https://msdn.microsoft.com/en-us/library/cc232110.aspx for further information)</span> |
483 | <span class="sd"> </span> | |
483 | ||
484 | 484 | <span class="sd"> :param string/unicode service_name: Contains the name of the shared folder.</span> |
485 | 485 | <span class="sd"> :param string/unicode path_file_pattern: The pathname of the file(s) to be deleted, relative to the service_name.</span> |
486 | 486 | <span class="sd"> Wildcards may be used in the filename component of the path.</span> |
591 | 591 | <span class="sd">"""</span> |
592 | 592 | <span class="sd"> Send an echo command containing *data* to the remote SMB/CIFS server. The remote SMB/CIFS will reply with the same *data*.</span> |
593 | 593 | |
594 | <span class="sd"> :param string data: Data to send to the remote server.</span> | |
594 | <span class="sd"> :param bytes data: Data to send to the remote server. Must be a bytes object.</span> | |
595 | 595 | <span class="sd"> :return: The *data* parameter</span> |
596 | 596 | <span class="sd"> """</span> |
597 | 597 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">sock</span><span class="p">:</span> |
692 | 692 | <li class="right" > |
693 | 693 | <a href="../../py-modindex.html" title="Python Module Index" |
694 | 694 | >modules</a> |</li> |
695 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
695 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
696 | 696 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
697 | 697 | </ul> |
698 | 698 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>smb.SMBProtocol — pysmb 1.1.22 documentation</title> | |
8 | <title>smb.SMBProtocol — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
433 | 433 | <span class="sd">"""</span> |
434 | 434 | <span class="sd"> Send an echo command containing *data* to the remote SMB/CIFS server. The remote SMB/CIFS will reply with the same *data*.</span> |
435 | 435 | |
436 | <span class="sd"> :param string data: Data to send to the remote server.</span> | |
436 | <span class="sd"> :param bytes data: Data to send to the remote server. Must be a bytes object.</span> | |
437 | 437 | <span class="sd"> :param integer/float timeout: Number of seconds that pysmb will wait before raising *SMBTimeout* via the returned *Deferred* instance's *errback* method.</span> |
438 | 438 | <span class="sd"> :return: A *twisted.internet.defer.Deferred* instance. The callback function will be called with the *data* parameter.</span> |
439 | 439 | <span class="sd"> """</span> |
480 | 480 | <li class="right" > |
481 | 481 | <a href="../../py-modindex.html" title="Python Module Index" |
482 | 482 | >modules</a> |</li> |
483 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
483 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
484 | 484 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
485 | 485 | </ul> |
486 | 486 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>smb.base — pysmb 1.1.22 documentation</title> | |
8 | <title>smb.base — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
132 | 132 | <span class="bp">self</span><span class="o">.</span><span class="n">use_ntlm_v2</span> <span class="o">=</span> <span class="n">use_ntlm_v2</span> <span class="c1">#: Similar to LMAuthenticationPolicy and NTAuthenticationPolicy as described in [MS-CIFS] 3.2.1.1</span> |
133 | 133 | <span class="bp">self</span><span class="o">.</span><span class="n">smb_message</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">()</span> |
134 | 134 | <span class="bp">self</span><span class="o">.</span><span class="n">is_using_smb2</span> <span class="o">=</span> <span class="bp">False</span> <span class="c1">#: Are we communicating using SMB2 protocol? self.smb_message will be a SMB2Message instance if this flag is True</span> |
135 | <span class="bp">self</span><span class="o">.</span><span class="n">async_requests</span> <span class="o">=</span> <span class="p">{</span> <span class="p">}</span> <span class="c1">#: AsyncID mapped to _PendingRequest instance</span> | |
135 | 136 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span> <span class="o">=</span> <span class="p">{</span> <span class="p">}</span> <span class="c1">#: MID mapped to _PendingRequest instance</span> |
136 | 137 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span> <span class="o">=</span> <span class="p">{</span> <span class="p">}</span> <span class="c1">#: Share name mapped to TID</span> |
137 | 138 | <span class="bp">self</span><span class="o">.</span><span class="n">next_rpc_call_id</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1">#: Next RPC callID value. Not used directly in SMB message. Usually encapsulated in sub-commands under SMB_COM_TRANSACTION or SMB_COM_TRANSACTION2 messages</span> |
337 | 338 | <span class="bp">self</span><span class="o">.</span><span class="n">_handleSessionChallenge</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="n">ntlm_token</span><span class="p">)</span> |
338 | 339 | <span class="k">except</span> <span class="p">(</span> <span class="n">securityblob</span><span class="o">.</span><span class="n">BadSecurityBlobError</span><span class="p">,</span> <span class="n">securityblob</span><span class="o">.</span><span class="n">UnsupportedSecurityProvider</span> <span class="p">),</span> <span class="n">ex</span><span class="p">:</span> |
339 | 340 | <span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">),</span> <span class="n">message</span><span class="o">.</span><span class="n">raw_data</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span> |
340 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000006d</span><span class="p">:</span> <span class="c1"># STATUS_LOGON_FAILURE</span> | |
341 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000006d</span> <span class="c1"># STATUS_LOGON_FAILURE</span> | |
342 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc0000064</span> <span class="c1"># STATUS_NO_SUCH_USER</span> | |
343 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000006a</span><span class="p">):</span><span class="c1"># STATUS_WRONG_PASSWORD</span> | |
341 | 344 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> |
342 | 345 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Please check username and password.'</span><span class="p">)</span> |
343 | 346 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> |
347 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc0000193</span> <span class="c1"># STATUS_ACCOUNT_EXPIRED</span> | |
348 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xC0000071</span><span class="p">):</span> <span class="c1"># STATUS_PASSWORD_EXPIRED</span> | |
349 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
350 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Account or password has expired.'</span><span class="p">)</span> | |
351 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
352 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc0000234</span><span class="p">:</span> <span class="c1"># STATUS_ACCOUNT_LOCKED_OUT</span> | |
353 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
354 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Account has been locked due to too many invalid logon attempts.'</span><span class="p">)</span> | |
355 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
356 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc0000072</span><span class="p">:</span> <span class="c1"># STATUS_ACCOUNT_DISABLED</span> | |
357 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
358 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Account has been disabled.'</span><span class="p">)</span> | |
359 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
360 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000006f</span> <span class="c1"># STATUS_INVALID_LOGON_HOURS</span> | |
361 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000015b</span> <span class="c1"># STATUS_LOGON_TYPE_NOT_GRANTED</span> | |
362 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc0000070</span><span class="p">):</span> <span class="c1"># STATUS_INVALID_WORKSTATION</span> | |
363 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
364 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Not allowed.'</span><span class="p">)</span> | |
365 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
366 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000018c</span><span class="p">:</span> <span class="c1"># STATUS_TRUSTED_DOMAIN_FAILURE</span> | |
367 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
368 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Domain not trusted.'</span><span class="p">)</span> | |
369 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
370 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0xc000018d</span><span class="p">:</span> <span class="c1"># STATUS_TRUSTED_RELATIONSHIP_FAILURE</span> | |
371 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
372 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (on SMB2) failed. Workstation not trusted.'</span><span class="p">)</span> | |
373 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
344 | 374 | <span class="k">else</span><span class="p">:</span> |
345 | 375 | <span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span><span class="s1">'Unknown status value (0x</span><span class="si">%08X</span><span class="s1">) in SMB_COM_SESSION_SETUP_ANDX (with extended security)'</span> <span class="o">%</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="p">,</span> |
346 | 376 | <span class="n">message</span><span class="o">.</span><span class="n">raw_data</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span> |
347 | 377 | |
348 | <span class="n">req</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> | |
349 | <span class="k">if</span> <span class="n">req</span><span class="p">:</span> | |
350 | <span class="n">req</span><span class="o">.</span><span class="n">callback</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">**</span><span class="n">req</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> | |
351 | <span class="k">return</span> <span class="bp">True</span> | |
378 | <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">isAsync</span><span class="p">:</span> | |
379 | <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0x00000103</span><span class="p">:</span> <span class="c1"># STATUS_PENDING</span> | |
380 | <span class="n">req</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> | |
381 | <span class="k">if</span> <span class="n">req</span><span class="p">:</span> | |
382 | <span class="bp">self</span><span class="o">.</span><span class="n">async_requests</span><span class="p">[</span><span class="n">message</span><span class="o">.</span><span class="n">async_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">req</span> | |
383 | <span class="k">else</span><span class="p">:</span> <span class="c1"># All other status including SUCCESS</span> | |
384 | <span class="n">req</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">async_requests</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">async_id</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> | |
385 | <span class="k">if</span> <span class="n">req</span><span class="p">:</span> | |
386 | <span class="n">req</span><span class="o">.</span><span class="n">callback</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">**</span><span class="n">req</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> | |
387 | <span class="k">return</span> <span class="bp">True</span> | |
388 | <span class="k">else</span><span class="p">:</span> | |
389 | <span class="n">req</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span> | |
390 | <span class="k">if</span> <span class="n">req</span><span class="p">:</span> | |
391 | <span class="n">req</span><span class="o">.</span><span class="n">callback</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">**</span><span class="n">req</span><span class="o">.</span><span class="n">kwargs</span><span class="p">)</span> | |
392 | <span class="k">return</span> <span class="bp">True</span> | |
352 | 393 | |
353 | 394 | |
354 | 395 | <span class="k">def</span> <span class="nf">_updateServerInfo_SMB2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">payload</span><span class="p">):</span> |
388 | 429 | <span class="n">lm_challenge_response</span><span class="p">,</span> |
389 | 430 | <span class="n">session_key</span><span class="p">,</span> |
390 | 431 | <span class="bp">self</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> |
391 | <span class="bp">self</span><span class="o">.</span><span class="n">domain</span><span class="p">)</span> | |
432 | <span class="bp">self</span><span class="o">.</span><span class="n">domain</span><span class="p">,</span> | |
433 | <span class="bp">self</span><span class="o">.</span><span class="n">my_name</span><span class="p">)</span> | |
392 | 434 | |
393 | 435 | <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">isEnabledFor</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">):</span> |
394 | 436 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">'NT challenge response is "</span><span class="si">%s</span><span class="s1">" (</span><span class="si">%d</span><span class="s1"> bytes)'</span><span class="p">,</span> <span class="n">binascii</span><span class="o">.</span><span class="n">hexlify</span><span class="p">(</span><span class="n">nt_challenge_response</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">nt_challenge_response</span><span class="p">))</span> |
437 | 479 | |
438 | 480 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
439 | 481 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
440 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">connectSrvSvcCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">)</span> | |
482 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">connectSrvSvcCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">)</span> | |
441 | 483 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
442 | 484 | |
443 | 485 | <span class="k">def</span> <span class="nf">connectSrvSvcCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
459 | 501 | <span class="s2">01 00 00 00</span> |
460 | 502 | <span class="s2">"""</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> |
461 | 503 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2WriteRequest</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="n">data_bytes</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> |
462 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">tid</span> | |
504 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">]</span> | |
463 | 505 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
464 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">rpcBindCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
506 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">rpcBindCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
465 | 507 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
466 | 508 | <span class="k">else</span><span class="p">:</span> |
467 | 509 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list shares: Unable to locate Server Service RPC endpoint'</span><span class="p">,</span> <span class="n">messages_history</span><span class="p">))</span> |
470 | 512 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">trans_message</span><span class="p">)</span> |
471 | 513 | <span class="k">if</span> <span class="n">trans_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
472 | 514 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2ReadRequest</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">read_len</span> <span class="o">=</span> <span class="mi">1024</span><span class="p">,</span> <span class="n">read_offset</span> <span class="o">=</span> <span class="mi">0</span><span class="p">))</span> |
473 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">trans_message</span><span class="o">.</span><span class="n">tid</span> | |
515 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">]</span> | |
474 | 516 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
475 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">rpcReadCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
517 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">rpcReadCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
476 | 518 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
477 | 519 | <span class="k">else</span><span class="p">:</span> |
478 | <span class="n">closeFid</span><span class="p">(</span><span class="n">trans_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="s1">'Failed to list shares: Unable to read from Server Service RPC endpoint'</span><span class="p">)</span> | |
520 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="s1">'Failed to list shares: Unable to read from Server Service RPC endpoint'</span><span class="p">)</span> | |
479 | 521 | |
480 | 522 | <span class="k">def</span> <span class="nf">rpcReadCB</span><span class="p">(</span><span class="n">read_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
481 | 523 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">read_message</span><span class="p">)</span> |
503 | 545 | <span class="s2">00 00 00 00 ff ff ff ff 08 00 02 00 00 00 00 00</span> |
504 | 546 | <span class="s2">"""</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">' '</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> |
505 | 547 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2IoctlRequest</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="mh">0x0011C017</span><span class="p">,</span> <span class="n">flags</span> <span class="o">=</span> <span class="mh">0x01</span><span class="p">,</span> <span class="n">max_out_size</span> <span class="o">=</span> <span class="mi">8196</span><span class="p">,</span> <span class="n">in_data</span> <span class="o">=</span> <span class="n">data_bytes</span><span class="p">))</span> |
506 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">tid</span> | |
548 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">]</span> | |
507 | 549 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
508 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">listShareResultsCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
550 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">listShareResultsCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
509 | 551 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
510 | 552 | <span class="k">else</span><span class="p">:</span> |
511 | <span class="n">closeFid</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="s1">'Failed to list shares: Unable to bind to Server Service RPC endpoint'</span><span class="p">)</span> | |
553 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="s1">'Failed to list shares: Unable to bind to Server Service RPC endpoint'</span><span class="p">)</span> | |
512 | 554 | |
513 | 555 | <span class="k">def</span> <span class="nf">listShareResultsCB</span><span class="p">(</span><span class="n">result_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
514 | 556 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result_message</span><span class="p">)</span> |
517 | 559 | <span class="n">data_bytes</span> <span class="o">=</span> <span class="n">result_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">out_data</span> |
518 | 560 | |
519 | 561 | <span class="k">if</span> <span class="nb">ord</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="o">&</span> <span class="mh">0x02</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
520 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">result_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_bytes</span><span class="p">)</span> | |
521 | <span class="k">else</span><span class="p">:</span> | |
522 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">result_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_bytes</span><span class="p">)</span> | |
523 | <span class="k">elif</span> <span class="n">result_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0x0103</span><span class="p">:</span> <span class="c1"># STATUS_PENDING</span> | |
524 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">result_message</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">result_message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">listShareResultsCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
525 | <span class="k">else</span><span class="p">:</span> | |
526 | <span class="n">closeFid</span><span class="p">(</span><span class="n">result_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
562 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_bytes</span><span class="p">)</span> | |
563 | <span class="k">else</span><span class="p">:</span> | |
564 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_bytes</span><span class="p">)</span> | |
565 | <span class="k">else</span><span class="p">:</span> | |
566 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
527 | 567 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list shares: Unable to retrieve shared device list'</span><span class="p">,</span> <span class="n">messages_history</span><span class="p">))</span> |
528 | 568 | |
529 | 569 | <span class="k">def</span> <span class="nf">decodeResults</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">data_bytes</span><span class="p">):</span> |
562 | 602 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
563 | 603 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
564 | 604 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">readCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> |
565 | <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">data_bytes</span> <span class="o">=</span> <span class="n">data_bytes</span><span class="p">)</span> | |
605 | <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">data_bytes</span> <span class="o">=</span> <span class="n">data_bytes</span><span class="p">)</span> | |
566 | 606 | |
567 | 607 | <span class="k">def</span> <span class="nf">readCB</span><span class="p">(</span><span class="n">read_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
568 | 608 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">read_message</span><span class="p">)</span> |
569 | 609 | <span class="k">if</span> <span class="n">read_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
570 | <span class="n">data_len</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data_length</span> | |
571 | 610 | <span class="n">data_bytes</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data</span> |
572 | 611 | |
573 | 612 | <span class="k">if</span> <span class="nb">ord</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="o">&</span> <span class="mh">0x02</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
574 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="n">data_len</span><span class="o">-</span><span class="mi">24</span><span class="p">])</span> | |
575 | <span class="k">else</span><span class="p">:</span> | |
576 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="n">data_len</span><span class="o">-</span><span class="mi">24</span><span class="p">])</span> | |
577 | <span class="k">else</span><span class="p">:</span> | |
578 | <span class="n">closeFid</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
613 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:])</span> | |
614 | <span class="k">else</span><span class="p">:</span> | |
615 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:])</span> | |
616 | <span class="k">else</span><span class="p">:</span> | |
617 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
579 | 618 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list shares: Unable to retrieve shared device list'</span><span class="p">,</span> <span class="n">messages_history</span><span class="p">))</span> |
580 | 619 | |
581 | 620 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">results</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
640 | 679 | <span class="n">create_context_data</span> <span class="o">=</span> <span class="n">create_context_data</span><span class="p">))</span> |
641 | 680 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
642 | 681 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
643 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">)</span> | |
682 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">)</span> | |
644 | 683 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
645 | 684 | |
646 | 685 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
647 | 686 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">create_message</span><span class="p">)</span> |
648 | 687 | <span class="k">if</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
649 | <span class="n">sendQuery</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> | |
688 | <span class="n">sendQuery</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span> | |
650 | 689 | <span class="k">else</span><span class="p">:</span> |
651 | 690 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open directory'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
652 | 691 | |
657 | 696 | <span class="n">output_buf_len</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_transact_size</span><span class="p">))</span> |
658 | 697 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
659 | 698 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
660 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">queryCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">data_buf</span> <span class="o">=</span> <span class="n">data_buf</span><span class="p">)</span> | |
699 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">queryCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">data_buf</span> <span class="o">=</span> <span class="n">data_buf</span><span class="p">)</span> | |
661 | 700 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
662 | 701 | |
663 | 702 | <span class="k">def</span> <span class="nf">queryCB</span><span class="p">(</span><span class="n">query_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
664 | 703 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">query_message</span><span class="p">)</span> |
665 | 704 | <span class="k">if</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
666 | 705 | <span class="n">data_buf</span> <span class="o">=</span> <span class="n">decodeQueryStruct</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_buf'</span><span class="p">]</span> <span class="o">+</span> <span class="n">query_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> |
667 | <span class="n">sendQuery</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_buf</span><span class="p">)</span> | |
706 | <span class="n">sendQuery</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">data_buf</span><span class="p">)</span> | |
668 | 707 | <span class="k">elif</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0x80000006</span><span class="n">L</span><span class="p">:</span> <span class="c1"># STATUS_NO_MORE_FILES</span> |
669 | <span class="n">closeFid</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">results</span> <span class="o">=</span> <span class="n">results</span><span class="p">)</span> | |
670 | <span class="k">else</span><span class="p">:</span> | |
671 | <span class="n">closeFid</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
708 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">results</span> <span class="o">=</span> <span class="n">results</span><span class="p">)</span> | |
709 | <span class="k">else</span><span class="p">:</span> | |
710 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
672 | 711 | |
673 | 712 | <span class="k">def</span> <span class="nf">decodeQueryStruct</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">):</span> |
674 | 713 | <span class="c1"># SMB_FIND_FILE_BOTH_DIRECTORY_INFO structure. See [MS-CIFS]: 2.2.8.1.7 and [MS-SMB]: 2.2.8.1.1</span> |
691 | 730 | <span class="k">return</span> <span class="n">data_bytes</span><span class="p">[</span><span class="n">offset</span><span class="p">:]</span> |
692 | 731 | |
693 | 732 | <span class="n">filename</span> <span class="o">=</span> <span class="n">data_bytes</span><span class="p">[</span><span class="n">offset2</span><span class="p">:</span><span class="n">offset2</span><span class="o">+</span><span class="n">filename_length</span><span class="p">]</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> |
694 | <span class="n">short_name</span> <span class="o">=</span> <span class="n">short_name</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
733 | <span class="n">short_name</span> <span class="o">=</span> <span class="n">short_name</span><span class="p">[:</span><span class="n">short_name_length</span><span class="p">]</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
695 | 734 | <span class="n">results</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">SharedFile</span><span class="p">(</span><span class="n">convertFILETIMEtoEpoch</span><span class="p">(</span><span class="n">create_time</span><span class="p">),</span> <span class="n">convertFILETIMEtoEpoch</span><span class="p">(</span><span class="n">last_access_time</span><span class="p">),</span> |
696 | 735 | <span class="n">convertFILETIMEtoEpoch</span><span class="p">(</span><span class="n">last_write_time</span><span class="p">),</span> <span class="n">convertFILETIMEtoEpoch</span><span class="p">(</span><span class="n">last_attr_change_time</span><span class="p">),</span> |
697 | 736 | <span class="n">file_size</span><span class="p">,</span> <span class="n">alloc_size</span><span class="p">,</span> <span class="n">file_attributes</span><span class="p">,</span> <span class="n">short_name</span><span class="p">,</span> <span class="n">filename</span><span class="p">))</span> |
763 | 802 | <span class="n">create_context_data</span> <span class="o">=</span> <span class="n">create_context_data</span><span class="p">))</span> |
764 | 803 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
765 | 804 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
766 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">)</span> | |
805 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">)</span> | |
767 | 806 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
768 | 807 | |
769 | 808 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
774 | 813 | <span class="n">info</span> <span class="o">=</span> <span class="n">SharedFile</span><span class="p">(</span><span class="n">p</span><span class="o">.</span><span class="n">create_time</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">lastaccess_time</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">lastwrite_time</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">change_time</span><span class="p">,</span> |
775 | 814 | <span class="n">p</span><span class="o">.</span><span class="n">file_size</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">allocation_size</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">file_attributes</span><span class="p">,</span> |
776 | 815 | <span class="n">filename</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span> |
777 | <span class="n">closeFid</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">p</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="n">info</span> <span class="o">=</span> <span class="n">info</span><span class="p">)</span> | |
816 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">p</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="n">info</span> <span class="o">=</span> <span class="n">info</span><span class="p">)</span> | |
778 | 817 | <span class="k">else</span><span class="p">:</span> |
779 | 818 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to get attributes for </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open remote file object'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
780 | 819 | |
831 | 870 | <span class="n">create_disp</span> <span class="o">=</span> <span class="n">FILE_OPEN</span><span class="p">))</span> |
832 | 871 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
833 | 872 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
834 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">)</span> | |
873 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">)</span> | |
835 | 874 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
836 | 875 | |
837 | 876 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
844 | 883 | <span class="n">file_info_class</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="c1"># [MS-SMB2] 2.2.37, 3.2.4.12</span> |
845 | 884 | <span class="n">input_buf</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span> |
846 | 885 | <span class="n">output_buf_len</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_transact_size</span><span class="p">))</span> |
847 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">tid</span> | |
886 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">]</span> | |
848 | 887 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
849 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">queryCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
888 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">queryCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
850 | 889 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
851 | 890 | <span class="k">else</span><span class="p">:</span> |
852 | 891 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to get the security descriptor of </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file or directory'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
855 | 894 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">query_message</span><span class="p">)</span> |
856 | 895 | <span class="k">if</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
857 | 896 | <span class="n">security</span> <span class="o">=</span> <span class="n">SecurityDescriptor</span><span class="o">.</span><span class="n">from_bytes</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data</span><span class="p">)</span> |
858 | <span class="n">closeFid</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">result</span> <span class="o">=</span> <span class="n">security</span><span class="p">)</span> | |
859 | <span class="k">else</span><span class="p">:</span> | |
860 | <span class="n">closeFid</span><span class="p">(</span><span class="n">query_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
897 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">result</span> <span class="o">=</span> <span class="n">security</span><span class="p">)</span> | |
898 | <span class="k">else</span><span class="p">:</span> | |
899 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">query_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
861 | 900 | |
862 | 901 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">result</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
863 | 902 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
937 | 976 | <span class="n">file_info_class</span> <span class="o">=</span> <span class="mh">0x16</span><span class="p">,</span> <span class="c1"># FileStreamInformation [MS-FSCC] 2.4</span> |
938 | 977 | <span class="n">input_buf</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span> |
939 | 978 | <span class="n">output_buf_len</span> <span class="o">=</span> <span class="mi">4096</span><span class="p">))</span> |
940 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">tid</span> | |
979 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">]</span> | |
941 | 980 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
942 | 981 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> <span class="n">infoCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> |
943 | <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="n">file_attributes</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">file_attributes</span><span class="p">)</span> | |
982 | <span class="n">tid</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> | |
983 | <span class="n">fid</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> | |
984 | <span class="n">file_attributes</span> <span class="o">=</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">file_attributes</span><span class="p">)</span> | |
944 | 985 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
945 | 986 | <span class="k">else</span><span class="p">:</span> |
946 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
987 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to retrieve </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
947 | 988 | |
948 | 989 | <span class="k">def</span> <span class="nf">infoCB</span><span class="p">(</span><span class="n">info_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
949 | 990 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">info_message</span><span class="p">)</span> |
958 | 999 | <span class="n">remaining_len</span> <span class="o">=</span> <span class="n">file_len</span> |
959 | 1000 | <span class="k">if</span> <span class="n">starting_offset</span> <span class="o">+</span> <span class="n">remaining_len</span> <span class="o">></span> <span class="n">file_len</span><span class="p">:</span> |
960 | 1001 | <span class="n">remaining_len</span> <span class="o">=</span> <span class="n">file_len</span> <span class="o">-</span> <span class="n">starting_offset</span> |
961 | <span class="n">sendRead</span><span class="p">(</span><span class="n">info_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">starting_offset</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">])</span> | |
962 | <span class="k">else</span><span class="p">:</span> | |
963 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to retrieve information on file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
1002 | <span class="n">sendRead</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">starting_offset</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">])</span> | |
1003 | <span class="k">else</span><span class="p">:</span> | |
1004 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to retrieve </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to retrieve information on file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
964 | 1005 | |
965 | 1006 | <span class="k">def</span> <span class="nf">sendRead</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">,</span> <span class="n">read_len</span><span class="p">,</span> <span class="n">file_attributes</span><span class="p">):</span> |
966 | 1007 | <span class="n">read_count</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">max_read_size</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">)</span> |
968 | 1009 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
969 | 1010 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
970 | 1011 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">readCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> |
971 | <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span><span class="p">,</span> | |
1012 | <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span><span class="p">,</span> | |
972 | 1013 | <span class="n">remaining_len</span> <span class="o">=</span> <span class="n">remaining_len</span><span class="p">,</span> |
973 | 1014 | <span class="n">read_len</span> <span class="o">=</span> <span class="n">read_len</span><span class="p">,</span> |
974 | 1015 | <span class="n">file_attributes</span> <span class="o">=</span> <span class="n">file_attributes</span><span class="p">)</span> |
982 | 1023 | <span class="n">remaining_len</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'remaining_len'</span><span class="p">]</span> <span class="o">-</span> <span class="n">data_len</span> |
983 | 1024 | |
984 | 1025 | <span class="k">if</span> <span class="n">remaining_len</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> |
985 | <span class="n">sendRead</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'offset'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'read_len'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">])</span> | |
986 | <span class="k">else</span><span class="p">:</span> | |
987 | <span class="n">closeFid</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">(</span> <span class="n">file_obj</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'read_len'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span> <span class="p">))</span> | |
1026 | <span class="n">sendRead</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'offset'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span><span class="p">,</span> <span class="n">remaining_len</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'read_len'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">])</span> | |
1027 | <span class="k">else</span><span class="p">:</span> | |
1028 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">ret</span> <span class="o">=</span> <span class="p">(</span> <span class="n">file_obj</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'file_attributes'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'read_len'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_len</span> <span class="p">))</span> | |
988 | 1029 | <span class="k">else</span><span class="p">:</span> |
989 | 1030 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">read_message</span><span class="p">)</span> |
990 | <span class="n">closeFid</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1031 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">error</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
991 | 1032 | |
992 | 1033 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">ret</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
993 | 1034 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
1063 | 1104 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">create_message</span><span class="p">)</span> |
1064 | 1105 | <span class="k">if</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1065 | 1106 | <span class="n">sendWrite</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">,</span> <span class="n">starting_offset</span><span class="p">)</span> |
1066 | <span class="k">elif</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0x0103</span><span class="p">:</span> <span class="c1"># STATUS_PENDING</span> | |
1067 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">create_message</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> | |
1068 | <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> | |
1069 | <span class="n">tid</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">])</span> | |
1070 | 1107 | <span class="k">else</span><span class="p">:</span> |
1071 | 1108 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to store </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1072 | 1109 | |
1078 | 1115 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2WriteRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">offset</span><span class="p">))</span> |
1079 | 1116 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
1080 | 1117 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1081 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">writeCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span><span class="o">+</span><span class="n">data_len</span><span class="p">)</span> | |
1118 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">writeCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span><span class="o">+</span><span class="n">data_len</span><span class="p">)</span> | |
1082 | 1119 | <span class="k">else</span><span class="p">:</span> |
1083 | 1120 | <span class="n">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span><span class="p">)</span> |
1084 | 1121 | |
1085 | 1122 | <span class="k">def</span> <span class="nf">writeCB</span><span class="p">(</span><span class="n">write_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1086 | 1123 | <span class="c1"># To avoid crazy memory usage when saving large files, we do not save every write_message in messages_history.</span> |
1087 | 1124 | <span class="k">if</span> <span class="n">write_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1088 | <span class="n">sendWrite</span><span class="p">(</span><span class="n">write_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'offset'</span><span class="p">])</span> | |
1125 | <span class="n">sendWrite</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'offset'</span><span class="p">])</span> | |
1089 | 1126 | <span class="k">else</span><span class="p">:</span> |
1090 | 1127 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">write_message</span><span class="p">)</span> |
1091 | <span class="n">closeFid</span><span class="p">(</span><span class="n">write_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
1128 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> | |
1092 | 1129 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to store </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Write failed'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1093 | 1130 | |
1094 | 1131 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">error</span> <span class="o">=</span> <span class="bp">None</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
1161 | 1198 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">open_message</span><span class="p">)</span> |
1162 | 1199 | <span class="k">if</span> <span class="n">open_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1163 | 1200 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">open_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">open_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> |
1164 | <span class="k">elif</span> <span class="n">open_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mh">0x0103</span><span class="p">:</span> <span class="c1"># STATUS_PENDING</span> | |
1165 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">open_message</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">open_message</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="n">expiry_time</span><span class="p">,</span> | |
1166 | <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> | |
1167 | <span class="n">tid</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">])</span> | |
1168 | 1201 | <span class="k">else</span><span class="p">:</span> |
1169 | 1202 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to delete </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1170 | 1203 | |
1174 | 1207 | <span class="n">info_type</span> <span class="o">=</span> <span class="n">SMB2_INFO_FILE</span><span class="p">,</span> |
1175 | 1208 | <span class="n">file_info_class</span> <span class="o">=</span> <span class="mh">0x0d</span><span class="p">,</span> <span class="c1"># SMB2_FILE_DISPOSITION_INFO</span> |
1176 | 1209 | <span class="n">data</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\x01</span><span class="s1">'</span><span class="p">))</span> |
1177 | <span class="sd">'''</span> | |
1178 | <span class="sd"> Resources:</span> | |
1179 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc246560.aspx</span> | |
1180 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc232098.aspx</span> | |
1181 | <span class="sd"> '''</span> | |
1182 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
1183 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> | |
1184 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">deleteCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1210 | <span class="c1"># [MS-SMB2]: 2.2.39, [MS-FSCC]: 2.4.11</span> | |
1211 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
1212 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> | |
1213 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">deleteCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1185 | 1214 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1186 | 1215 | |
1187 | 1216 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">delete_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1188 | 1217 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">delete_message</span><span class="p">)</span> |
1189 | 1218 | <span class="k">if</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1190 | <span class="n">closeFid</span><span class="p">(</span><span class="n">delete_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1191 | <span class="k">else</span><span class="p">:</span> | |
1192 | <span class="n">closeFid</span><span class="p">(</span><span class="n">delete_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1219 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1220 | <span class="k">else</span><span class="p">:</span> | |
1221 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1193 | 1222 | |
1194 | 1223 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">status</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
1195 | 1224 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
1259 | 1288 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">open_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1260 | 1289 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">open_message</span><span class="p">)</span> |
1261 | 1290 | <span class="k">if</span> <span class="n">open_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1262 | <span class="n">sendReset</span><span class="p">(</span><span class="n">open_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">open_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1291 | <span class="n">sendReset</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">open_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1263 | 1292 | <span class="k">else</span><span class="p">:</span> |
1264 | 1293 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to reset attributes of </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1265 | 1294 | |
1269 | 1298 | <span class="n">info_type</span> <span class="o">=</span> <span class="n">SMB2_INFO_FILE</span><span class="p">,</span> |
1270 | 1299 | <span class="n">file_info_class</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span> <span class="c1"># FileBasicInformation</span> |
1271 | 1300 | <span class="n">data</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="s1">'qqqqii'</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="mh">0x80</span><span class="p">,</span><span class="mi">0</span><span class="p">)))</span> <span class="c1"># FILE_ATTRIBUTE_NORMAL</span> |
1272 | <span class="sd">'''</span> | |
1273 | <span class="sd"> Resources:</span> | |
1274 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc246560.aspx</span> | |
1275 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc232064.aspx</span> | |
1276 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc232094.aspx</span> | |
1277 | <span class="sd"> https://msdn.microsoft.com/en-us/library/cc232110.aspx</span> | |
1278 | <span class="sd"> '''</span> | |
1279 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
1280 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> | |
1281 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">resetCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1301 | <span class="c1"># [MS-SMB2]: 2.2.39, [MS-FSCC]: 2.4, [MS-FSCC]: 2.4.7, [MS-FSCC]: 2.6</span> | |
1302 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
1303 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> | |
1304 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">resetCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1282 | 1305 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1283 | 1306 | |
1284 | 1307 | <span class="k">def</span> <span class="nf">resetCB</span><span class="p">(</span><span class="n">reset_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1285 | 1308 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">reset_message</span><span class="p">)</span> |
1286 | 1309 | <span class="k">if</span> <span class="n">reset_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1287 | <span class="n">closeFid</span><span class="p">(</span><span class="n">reset_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1288 | <span class="k">else</span><span class="p">:</span> | |
1289 | <span class="n">closeFid</span><span class="p">(</span><span class="n">reset_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">reset_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1310 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1311 | <span class="k">else</span><span class="p">:</span> | |
1312 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">reset_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1290 | 1313 | |
1291 | 1314 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">status</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
1292 | 1315 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
1349 | 1372 | <span class="n">create_context_data</span> <span class="o">=</span> <span class="n">create_context_data</span><span class="p">))</span> |
1350 | 1373 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
1351 | 1374 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1352 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">)</span> | |
1375 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">createCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">)</span> | |
1353 | 1376 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1354 | 1377 | |
1355 | 1378 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1356 | 1379 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">create_message</span><span class="p">)</span> |
1357 | 1380 | <span class="k">if</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1358 | <span class="n">closeFid</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1381 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1359 | 1382 | <span class="k">else</span><span class="p">:</span> |
1360 | 1383 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to create directory </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Create failed'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1361 | 1384 | |
1423 | 1446 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">open_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1424 | 1447 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">open_message</span><span class="p">)</span> |
1425 | 1448 | <span class="k">if</span> <span class="n">open_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1426 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">open_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">open_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1449 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">open_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1427 | 1450 | <span class="k">else</span><span class="p">:</span> |
1428 | 1451 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to delete </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open directory'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1429 | 1452 | |
1435 | 1458 | <span class="n">data</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\x01</span><span class="s1">'</span><span class="p">))</span> |
1436 | 1459 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
1437 | 1460 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1438 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">deleteCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1461 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">deleteCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1439 | 1462 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1440 | 1463 | |
1441 | 1464 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">delete_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1442 | 1465 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">delete_message</span><span class="p">)</span> |
1443 | 1466 | <span class="k">if</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1444 | <span class="n">closeFid</span><span class="p">(</span><span class="n">delete_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1445 | <span class="k">else</span><span class="p">:</span> | |
1446 | <span class="n">closeFid</span><span class="p">(</span><span class="n">delete_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1467 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1468 | <span class="k">else</span><span class="p">:</span> | |
1469 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1447 | 1470 | |
1448 | 1471 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">status</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
1449 | 1472 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
1519 | 1542 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1520 | 1543 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">create_message</span><span class="p">)</span> |
1521 | 1544 | <span class="k">if</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1522 | <span class="n">sendRename</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1545 | <span class="n">sendRename</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1523 | 1546 | <span class="k">else</span><span class="p">:</span> |
1524 | 1547 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to rename </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file/directory'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">old_path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1525 | 1548 | |
1532 | 1555 | <span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="p">))</span> |
1533 | 1556 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
1534 | 1557 | <span class="bp">self</span><span class="o">.</span><span class="n">_sendSMBMessage</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1535 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">renameCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1558 | <span class="bp">self</span><span class="o">.</span><span class="n">pending_requests</span><span class="p">[</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">]</span> <span class="o">=</span> <span class="n">_PendingRequest</span><span class="p">(</span><span class="n">m</span><span class="o">.</span><span class="n">mid</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span> <span class="o">+</span> <span class="n">timeout</span><span class="p">,</span> <span class="n">renameCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span><span class="p">,</span> <span class="n">fid</span> <span class="o">=</span> <span class="n">fid</span><span class="p">)</span> | |
1536 | 1559 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">m</span><span class="p">)</span> |
1537 | 1560 | |
1538 | 1561 | <span class="k">def</span> <span class="nf">renameCB</span><span class="p">(</span><span class="n">rename_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1539 | 1562 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rename_message</span><span class="p">)</span> |
1540 | 1563 | <span class="k">if</span> <span class="n">rename_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1541 | <span class="n">closeFid</span><span class="p">(</span><span class="n">rename_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1542 | <span class="k">else</span><span class="p">:</span> | |
1543 | <span class="n">closeFid</span><span class="p">(</span><span class="n">rename_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">rename_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1564 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> | |
1565 | <span class="k">else</span><span class="p">:</span> | |
1566 | <span class="n">closeFid</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">status</span> <span class="o">=</span> <span class="n">rename_message</span><span class="o">.</span><span class="n">status</span><span class="p">)</span> | |
1544 | 1567 | |
1545 | 1568 | <span class="k">def</span> <span class="nf">closeFid</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">fid</span><span class="p">,</span> <span class="n">status</span> <span class="o">=</span> <span class="bp">None</span><span class="p">):</span> |
1546 | 1569 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2CloseRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">))</span> |
1607 | 1630 | <span class="k">def</span> <span class="nf">createCB</span><span class="p">(</span><span class="n">create_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1608 | 1631 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">create_message</span><span class="p">)</span> |
1609 | 1632 | <span class="k">if</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1610 | <span class="n">sendEnumSnapshots</span><span class="p">(</span><span class="n">create_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1633 | <span class="n">sendEnumSnapshots</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'tid'</span><span class="p">],</span> <span class="n">create_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">fid</span><span class="p">)</span> | |
1611 | 1634 | <span class="k">else</span><span class="p">:</span> |
1612 | 1635 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list snapshots </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to open file/directory'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">old_path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
1613 | 1636 | |
1748 | 1771 | <span class="bp">self</span><span class="o">.</span><span class="n">_handleSessionChallenge</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="n">ntlm_token</span><span class="p">)</span> |
1749 | 1772 | <span class="k">except</span> <span class="p">(</span> <span class="n">securityblob</span><span class="o">.</span><span class="n">BadSecurityBlobError</span><span class="p">,</span> <span class="n">securityblob</span><span class="o">.</span><span class="n">UnsupportedSecurityProvider</span> <span class="p">),</span> <span class="n">ex</span><span class="p">:</span> |
1750 | 1773 | <span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">ex</span><span class="p">),</span> <span class="n">message</span><span class="o">.</span><span class="n">raw_data</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span> |
1751 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000006d</span><span class="p">:</span> <span class="c1"># STATUS_LOGON_FAILURE</span> | |
1774 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000006d</span> <span class="c1"># STATUS_LOGON_FAILURE</span> | |
1775 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc0000064</span> <span class="c1"># STATUS_NO_SUCH_USER</span> | |
1776 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000006a</span><span class="p">):</span> <span class="c1"># STATUS_WRONG_PASSWORD</span> | |
1752 | 1777 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> |
1753 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Please check username and password. You may need to enable/disable NTLMv2 authentication.'</span><span class="p">)</span> | |
1778 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Please check username and password.'</span><span class="p">)</span> | |
1779 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1780 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc0000193</span> <span class="c1"># STATUS_ACCOUNT_EXPIRED</span> | |
1781 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xC0000071</span><span class="p">):</span> <span class="c1"># STATUS_PASSWORD_EXPIRED</span> | |
1782 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1783 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Account or password has expired.'</span><span class="p">)</span> | |
1784 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1785 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc0000234</span><span class="p">:</span> <span class="c1"># STATUS_ACCOUNT_LOCKED_OUT</span> | |
1786 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1787 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Account has been locked due to too many invalid logon attempts.'</span><span class="p">)</span> | |
1788 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1789 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc0000072</span><span class="p">:</span> <span class="c1"># STATUS_ACCOUNT_DISABLED</span> | |
1790 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1791 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Account has been disabled.'</span><span class="p">)</span> | |
1792 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1793 | <span class="k">elif</span> <span class="p">(</span><span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000006f</span> <span class="c1"># STATUS_INVALID_LOGON_HOURS</span> | |
1794 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000015b</span> <span class="c1"># STATUS_LOGON_TYPE_NOT_GRANTED</span> | |
1795 | <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc0000070</span><span class="p">):</span> <span class="c1"># STATUS_INVALID_WORKSTATION</span> | |
1796 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1797 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Not allowed.'</span><span class="p">)</span> | |
1798 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1799 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000018c</span><span class="p">:</span> <span class="c1"># STATUS_TRUSTED_DOMAIN_FAILURE</span> | |
1800 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1801 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Domain not trusted.'</span><span class="p">)</span> | |
1802 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> | |
1803 | <span class="k">elif</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span> <span class="o">==</span> <span class="mh">0xc000018d</span><span class="p">:</span> <span class="c1"># STATUS_TRUSTED_RELATIONSHIP_FAILURE</span> | |
1804 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">False</span> | |
1805 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Authentication (with extended security) failed. Workstation not trusted.'</span><span class="p">)</span> | |
1754 | 1806 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthFailed</span><span class="p">()</span> |
1755 | 1807 | <span class="k">else</span><span class="p">:</span> |
1756 | 1808 | <span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span><span class="s1">'Unknown status value (0x</span><span class="si">%08X</span><span class="s1">) in SMB_COM_SESSION_SETUP_ANDX (with extended security)'</span> <span class="o">%</span> <span class="n">message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">internal_value</span><span class="p">,</span> |
1817 | 1869 | <span class="n">lm_challenge_response</span><span class="p">,</span> |
1818 | 1870 | <span class="n">session_key</span><span class="p">,</span> |
1819 | 1871 | <span class="bp">self</span><span class="o">.</span><span class="n">username</span><span class="p">,</span> |
1820 | <span class="bp">self</span><span class="o">.</span><span class="n">domain</span><span class="p">)</span> | |
1872 | <span class="bp">self</span><span class="o">.</span><span class="n">domain</span><span class="p">,</span> | |
1873 | <span class="bp">self</span><span class="o">.</span><span class="n">my_name</span><span class="p">)</span> | |
1821 | 1874 | |
1822 | 1875 | <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">isEnabledFor</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">):</span> |
1823 | 1876 | <span class="bp">self</span><span class="o">.</span><span class="n">log</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">'NT challenge response is "</span><span class="si">%s</span><span class="s1">" (</span><span class="si">%d</span><span class="s1"> bytes)'</span><span class="p">,</span> <span class="n">binascii</span><span class="o">.</span><span class="n">hexlify</span><span class="p">(</span><span class="n">nt_challenge_response</span><span class="p">),</span> <span class="nb">len</span><span class="p">(</span><span class="n">nt_challenge_response</span><span class="p">))</span> |
2011 | 2064 | <span class="k">def</span> <span class="nf">readCB</span><span class="p">(</span><span class="n">read_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
2012 | 2065 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">read_message</span><span class="p">)</span> |
2013 | 2066 | <span class="k">if</span> <span class="ow">not</span> <span class="n">read_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> |
2014 | <span class="n">data_len</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data_length</span> | |
2015 | 2067 | <span class="n">data_bytes</span> <span class="o">=</span> <span class="n">read_message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">data</span> |
2016 | 2068 | |
2017 | 2069 | <span class="k">if</span> <span class="nb">ord</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">[</span><span class="mi">3</span><span class="p">])</span> <span class="o">&</span> <span class="mh">0x02</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
2018 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="n">data_len</span><span class="o">-</span><span class="mi">24</span><span class="p">])</span> | |
2019 | <span class="k">else</span><span class="p">:</span> | |
2020 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:</span><span class="n">data_len</span><span class="o">-</span><span class="mi">24</span><span class="p">])</span> | |
2070 | <span class="n">sendReadRequest</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:])</span> | |
2071 | <span class="k">else</span><span class="p">:</span> | |
2072 | <span class="n">decodeResults</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'data_bytes'</span><span class="p">]</span> <span class="o">+</span> <span class="n">data_bytes</span><span class="p">[</span><span class="mi">24</span><span class="p">:])</span> | |
2021 | 2073 | <span class="k">else</span><span class="p">:</span> |
2022 | 2074 | <span class="n">closeFid</span><span class="p">(</span><span class="n">read_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'fid'</span><span class="p">])</span> |
2023 | 2075 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list shares: Unable to retrieve shared device list'</span><span class="p">,</span> <span class="n">messages_history</span><span class="p">))</span> |
2064 | 2116 | <span class="k">if</span> <span class="n">support_dfs</span><span class="p">:</span> |
2065 | 2117 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\\</span><span class="s2">"</span> <span class="o">+</span> <span class="n">service_name</span> <span class="o">+</span> <span class="n">path</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\0</span><span class="s1">'</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> |
2066 | 2118 | <span class="k">else</span><span class="p">:</span> |
2067 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="n">pattern</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
2119 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\0</span><span class="s1">'</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
2068 | 2120 | |
2069 | 2121 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTransaction2Request</span><span class="p">(</span><span class="n">max_params_count</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span> |
2070 | 2122 | <span class="n">max_data_count</span> <span class="o">=</span> <span class="mi">16644</span><span class="p">,</span> |
2142 | 2194 | <span class="k">elif</span> <span class="n">end_of_search</span><span class="p">:</span> |
2143 | 2195 | <span class="n">callback</span><span class="p">(</span><span class="n">results</span><span class="p">)</span> |
2144 | 2196 | <span class="k">else</span><span class="p">:</span> |
2145 | <span class="n">sendFindNext</span><span class="p">(</span><span class="n">find_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">sid</span><span class="p">,</span> <span class="n">last_name_offset</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'support_dfs'</span><span class="p">,</span> <span class="bp">False</span><span class="p">))</span> | |
2197 | <span class="n">sendFindNext</span><span class="p">(</span><span class="n">find_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">sid</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">results</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'support_dfs'</span><span class="p">,</span> <span class="bp">False</span><span class="p">))</span> | |
2146 | 2198 | <span class="k">else</span><span class="p">:</span> |
2147 | 2199 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to retrieve file list'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
2148 | 2200 | |
2149 | <span class="k">def</span> <span class="nf">sendFindNext</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">sid</span><span class="p">,</span> <span class="n">resume_key</span><span class="p">,</span> <span class="n">support_dfs</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span> | |
2201 | <span class="k">def</span> <span class="nf">sendFindNext</span><span class="p">(</span><span class="n">tid</span><span class="p">,</span> <span class="n">sid</span><span class="p">,</span> <span class="n">resume_key</span><span class="p">,</span> <span class="n">resume_file</span><span class="p">,</span> <span class="n">support_dfs</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span> | |
2150 | 2202 | <span class="n">setup_bytes</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="s1">'<H'</span><span class="p">,</span> <span class="mh">0x0002</span><span class="p">)</span> <span class="c1"># TRANS2_FIND_NEXT2 sub-command. See [MS-CIFS]: 2.2.6.3.1</span> |
2151 | 2203 | <span class="n">params_bytes</span> <span class="o">=</span> \ |
2152 | 2204 | <span class="n">struct</span><span class="o">.</span><span class="n">pack</span><span class="p">(</span><span class="s1">'<HHHIH'</span><span class="p">,</span> |
2154 | 2206 | <span class="mi">100</span><span class="p">,</span> <span class="c1"># SearchCount</span> |
2155 | 2207 | <span class="mh">0x0104</span><span class="p">,</span> <span class="c1"># InfoLevel: SMB_FIND_FILE_BOTH_DIRECTORY_INFO</span> |
2156 | 2208 | <span class="n">resume_key</span><span class="p">,</span> <span class="c1"># ResumeKey</span> |
2157 | <span class="mh">0x000a</span><span class="p">)</span> <span class="c1"># Flags: SMB_FIND_RETURN_RESUME_KEYS | SMB_FIND_CLOSE_AT_EOS | SMB_FIND_RETURN_RESUME_KEYS</span> | |
2158 | <span class="k">if</span> <span class="n">support_dfs</span><span class="p">:</span> | |
2159 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\\</span><span class="s2">"</span> <span class="o">+</span> <span class="n">service_name</span> <span class="o">+</span> <span class="n">path</span> <span class="o">+</span> <span class="n">pattern</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\0</span><span class="s1">'</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
2160 | <span class="k">else</span><span class="p">:</span> | |
2161 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="n">pattern</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
2209 | <span class="mh">0x0006</span><span class="p">)</span> <span class="c1"># Flags: SMB_FIND_RETURN_RESUME_KEYS | SMB_FIND_CLOSE_AT_EOS</span> | |
2210 | <span class="n">params_bytes</span> <span class="o">+=</span> <span class="p">(</span><span class="n">resume_file</span><span class="o">+</span><span class="s1">'</span><span class="se">\0</span><span class="s1">'</span><span class="p">)</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="s1">'UTF-16LE'</span><span class="p">)</span> | |
2162 | 2211 | |
2163 | 2212 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTransaction2Request</span><span class="p">(</span><span class="n">max_params_count</span> <span class="o">=</span> <span class="mi">10</span><span class="p">,</span> |
2164 | 2213 | <span class="n">max_data_count</span> <span class="o">=</span> <span class="mi">16644</span><span class="p">,</span> |
2204 | 2253 | <span class="k">elif</span> <span class="n">end_of_search</span><span class="p">:</span> |
2205 | 2254 | <span class="n">callback</span><span class="p">(</span><span class="n">results</span><span class="p">)</span> |
2206 | 2255 | <span class="k">else</span><span class="p">:</span> |
2207 | <span class="n">sendFindNext</span><span class="p">(</span><span class="n">find_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'sid'</span><span class="p">],</span> <span class="n">last_name_offset</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'support_dfs'</span><span class="p">,</span> <span class="bp">False</span><span class="p">))</span> | |
2256 | <span class="n">sendFindNext</span><span class="p">(</span><span class="n">find_message</span><span class="o">.</span><span class="n">tid</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'sid'</span><span class="p">],</span> <span class="mi">0</span><span class="p">,</span> <span class="n">results</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">filename</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'support_dfs'</span><span class="p">,</span> <span class="bp">False</span><span class="p">))</span> | |
2208 | 2257 | <span class="k">else</span><span class="p">:</span> |
2209 | 2258 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to list </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to retrieve file list'</span> <span class="o">%</span> <span class="p">(</span> <span class="n">path</span><span class="p">,</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> |
2210 | 2259 | |
2717 | 2766 | <span class="k">def</span> <span class="nf">_echo_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">callback</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">):</span> |
2718 | 2767 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> |
2719 | 2768 | |
2769 | <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">b</span><span class="s1">''</span><span class="p">)):</span> | |
2770 | <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s1">'Echo data must be </span><span class="si">%s</span><span class="s1"> not </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="n">b</span><span class="s1">''</span><span class="p">)</span><span class="o">.</span><span class="n">__name__</span><span class="p">,</span> <span class="nb">type</span><span class="p">(</span><span class="n">data</span><span class="p">)</span><span class="o">.</span><span class="n">__name__</span><span class="p">))</span> | |
2771 | ||
2720 | 2772 | <span class="k">def</span> <span class="nf">echoCB</span><span class="p">(</span><span class="n">echo_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
2721 | 2773 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">echo_message</span><span class="p">)</span> |
2722 | 2774 | <span class="k">if</span> <span class="ow">not</span> <span class="n">echo_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> |
2736 | 2788 | <div class="viewcode-block" id="SharedDevice"><a class="viewcode-back" href="../../api/smb_SharedDevice.html#smb.base.SharedDevice">[docs]</a><span class="k">class</span> <span class="nc">SharedDevice</span><span class="p">:</span> |
2737 | 2789 | <span class="sd">"""</span> |
2738 | 2790 | <span class="sd"> Contains information about a single shared device on the remote server.</span> |
2791 | ||
2792 | <span class="sd"> The following attributes are available:</span> | |
2793 | ||
2794 | <span class="sd"> * name : An unicode string containing the name of the shared device</span> | |
2795 | <span class="sd"> * comments : An unicode string containing the user description of the shared device</span> | |
2739 | 2796 | <span class="sd"> """</span> |
2740 | 2797 | |
2741 | 2798 | <span class="c1"># The following constants are taken from [MS-SRVS]: 2.2.2.4</span> |
2791 | 2848 | <span class="sd"> If you encounter *SharedFile* instance where its short_name attribute is empty but the filename attribute contains a short name which does not correspond</span> |
2792 | 2849 | <span class="sd"> to any files/folders on your remote shared device, it could be that the original filename on the file/folder entry on the shared device contains</span> |
2793 | 2850 | <span class="sd"> one of these prohibited characters: "\/[]:+|<>=;?,* (see [MS-CIFS]: 2.2.1.1.1 for more details).</span> |
2851 | ||
2852 | <span class="sd"> The following attributes are available:</span> | |
2853 | ||
2854 | <span class="sd"> * create_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of creation of this file resource on the remote server</span> | |
2855 | <span class="sd"> * last_access_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last access of this file resource on the remote server</span> | |
2856 | <span class="sd"> * last_write_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last modification of this file resource on the remote server</span> | |
2857 | <span class="sd"> * last_attr_change_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last attribute change of this file resource on the remote server</span> | |
2858 | <span class="sd"> * file_size : File size in number of bytes</span> | |
2859 | <span class="sd"> * alloc_size : Total number of bytes allocated to store this file</span> | |
2860 | <span class="sd"> * file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3</span> | |
2861 | <span class="sd"> * short_name : Unicode string containing the short name of this file (usually in 8.3 notation)</span> | |
2862 | <span class="sd"> * filename : Unicode string containing the long filename of this file. Each OS has a limit to the length of this file name. On Windows, it is 256 characters.</span> | |
2794 | 2863 | <span class="sd"> """</span> |
2795 | 2864 | |
2796 | 2865 | <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">create_time</span><span class="p">,</span> <span class="n">last_access_time</span><span class="p">,</span> <span class="n">last_write_time</span><span class="p">,</span> <span class="n">last_attr_change_time</span><span class="p">,</span> <span class="n">file_size</span><span class="p">,</span> <span class="n">alloc_size</span><span class="p">,</span> <span class="n">file_attributes</span><span class="p">,</span> <span class="n">short_name</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> |
2842 | 2911 | <li class="right" > |
2843 | 2912 | <a href="../../py-modindex.html" title="Python Module Index" |
2844 | 2913 | >modules</a> |</li> |
2845 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
2914 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
2846 | 2915 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
2847 | 2916 | </ul> |
2848 | 2917 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>smb.security_descriptors — pysmb 1.1.22 documentation</title> | |
8 | <title>smb.security_descriptors — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
446 | 446 | <li class="right" > |
447 | 447 | <a href="../../py-modindex.html" title="Python Module Index" |
448 | 448 | >modules</a> |</li> |
449 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
449 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
450 | 450 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
451 | 451 | </ul> |
452 | 452 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>smb.smb_structs — pysmb 1.1.22 documentation</title> | |
8 | <title>smb.smb_structs — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../../index.html" /> | |
26 | 26 | <link rel="up" title="Module code" href="../index.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="../../py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | <li class="nav-item nav-item-1"><a href="../index.html" accesskey="U">Module code</a> »</li> |
40 | 40 | </ul> |
41 | 41 | </div> |
1345 | 1345 | <span class="sd"> - [MS-CIFS]: 2.2.4.39.1</span> |
1346 | 1346 | <span class="sd"> """</span> |
1347 | 1347 | |
1348 | <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">echo_data</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span> <span class="n">echo_count</span> <span class="o">=</span> <span class="mi">1</span><span class="p">):</span> | |
1348 | <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">echo_data</span> <span class="o">=</span> <span class="n">b</span><span class="s1">''</span><span class="p">,</span> <span class="n">echo_count</span> <span class="o">=</span> <span class="mi">1</span><span class="p">):</span> | |
1349 | 1349 | <span class="bp">self</span><span class="o">.</span><span class="n">echo_count</span> <span class="o">=</span> <span class="n">echo_count</span> |
1350 | 1350 | <span class="bp">self</span><span class="o">.</span><span class="n">echo_data</span> <span class="o">=</span> <span class="n">echo_data</span> |
1351 | 1351 | |
1499 | 1499 | <li class="right" > |
1500 | 1500 | <a href="../../py-modindex.html" title="Python Module Index" |
1501 | 1501 | >modules</a> |</li> |
1502 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.22 documentation</a> »</li> | |
1502 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.23 documentation</a> »</li> | |
1503 | 1503 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
1504 | 1504 | </ul> |
1505 | 1505 | </div> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>NBNSProtocol Class — pysmb 1.1.22 documentation</title> | |
8 | <title>NBNSProtocol Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="NetBIOS class" href="nmb_NetBIOS.html" /> |
27 | 27 | <link rel="prev" title="Welcome to pysmb’s documentation!" href="../index.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="../index.html" title="Welcome to pysmb’s documentation!" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
196 | 196 | <li class="right" > |
197 | 197 | <a href="../index.html" title="Welcome to pysmb’s documentation!" |
198 | 198 | >previous</a> |</li> |
199 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
199 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
200 | 200 | </ul> |
201 | 201 | </div> |
202 | 202 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>NetBIOS class — pysmb 1.1.22 documentation</title> | |
8 | <title>NetBIOS class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SMBConnection Class" href="smb_SMBConnection.html" /> |
27 | 27 | <link rel="prev" title="NBNSProtocol Class" href="nmb_NBNSProtocol.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="nmb_NBNSProtocol.html" title="NBNSProtocol Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
200 | 200 | <li class="right" > |
201 | 201 | <a href="nmb_NBNSProtocol.html" title="NBNSProtocol Class" |
202 | 202 | >previous</a> |</li> |
203 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
203 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
204 | 204 | </ul> |
205 | 205 | </div> |
206 | 206 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SMBConnection Class — pysmb 1.1.22 documentation</title> | |
8 | <title>SMBConnection Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SMbHandler Class" href="smb_SMBHandler.html" /> |
27 | 27 | <link rel="prev" title="NetBIOS class" href="nmb_NetBIOS.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="nmb_NetBIOS.html" title="NetBIOS class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
275 | 275 | <col class="field-name" /> |
276 | 276 | <col class="field-body" /> |
277 | 277 | <tbody valign="top"> |
278 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data</strong> (<em>string</em>) – Data to send to the remote server.</td> | |
278 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>data</strong> (<em>bytes</em>) – Data to send to the remote server. Must be a bytes object.</td> | |
279 | 279 | </tr> |
280 | 280 | <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">The <em>data</em> parameter</td> |
281 | 281 | </tr> |
578 | 578 | <li class="right" > |
579 | 579 | <a href="nmb_NetBIOS.html" title="NetBIOS class" |
580 | 580 | >previous</a> |</li> |
581 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
581 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
582 | 582 | </ul> |
583 | 583 | </div> |
584 | 584 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SMbHandler Class — pysmb 1.1.22 documentation</title> | |
8 | <title>SMbHandler Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SMBProtocolFactory Class" href="smb_SMBProtocolFactory.html" /> |
27 | 27 | <link rel="prev" title="SMBConnection Class" href="smb_SMBConnection.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_SMBConnection.html" title="SMBConnection Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
161 | 161 | <li class="right" > |
162 | 162 | <a href="smb_SMBConnection.html" title="SMBConnection Class" |
163 | 163 | >previous</a> |</li> |
164 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
164 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
165 | 165 | </ul> |
166 | 166 | </div> |
167 | 167 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SMBProtocolFactory Class — pysmb 1.1.22 documentation</title> | |
8 | <title>SMBProtocolFactory Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SharedDevice Class" href="smb_SharedDevice.html" /> |
27 | 27 | <link rel="prev" title="SMbHandler Class" href="smb_SMBHandler.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_SMBHandler.html" title="SMbHandler Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
307 | 307 | <col class="field-body" /> |
308 | 308 | <tbody valign="top"> |
309 | 309 | <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> |
310 | <li><strong>data</strong> (<em>string</em>) – Data to send to the remote server.</li> | |
310 | <li><strong>data</strong> (<em>bytes</em>) – Data to send to the remote server. Must be a bytes object.</li> | |
311 | 311 | <li><strong>timeout</strong> (<em>integer/float</em>) – Number of seconds that pysmb will wait before raising <em>SMBTimeout</em> via the returned <em>Deferred</em> instance’s <em>errback</em> method.</li> |
312 | 312 | </ul> |
313 | 313 | </td> |
596 | 596 | <li class="right" > |
597 | 597 | <a href="smb_SMBHandler.html" title="SMbHandler Class" |
598 | 598 | >previous</a> |</li> |
599 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
599 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
600 | 600 | </ul> |
601 | 601 | </div> |
602 | 602 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SharedDevice Class — pysmb 1.1.22 documentation</title> | |
8 | <title>SharedDevice Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SharedFile Class" href="smb_SharedFile.html" /> |
27 | 27 | <link rel="prev" title="SMBProtocolFactory Class" href="smb_SMBProtocolFactory.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_SMBProtocolFactory.html" title="SMBProtocolFactory Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
87 | 87 | <dt id="smb.base.SharedDevice"> |
88 | 88 | <em class="property">class </em><code class="descclassname">smb.base.</code><code class="descname">SharedDevice</code><span class="sig-paren">(</span><em>type</em>, <em>name</em>, <em>comments</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/base.html#SharedDevice"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.base.SharedDevice" title="Permalink to this definition">¶</a></dt> |
89 | 89 | <dd><p>Contains information about a single shared device on the remote server.</p> |
90 | <p>The following attributes are available:</p> | |
91 | <ul class="simple"> | |
92 | <li>name : An unicode string containing the name of the shared device</li> | |
93 | <li>comments : An unicode string containing the user description of the shared device</li> | |
94 | </ul> | |
90 | 95 | <dl class="attribute"> |
91 | 96 | <dt id="smb.base.SharedDevice.comments"> |
92 | 97 | <code class="descname">comments</code><em class="property"> = None</em><a class="headerlink" href="#smb.base.SharedDevice.comments" title="Permalink to this definition">¶</a></dt> |
153 | 158 | <li class="right" > |
154 | 159 | <a href="smb_SMBProtocolFactory.html" title="SMBProtocolFactory Class" |
155 | 160 | >previous</a> |</li> |
156 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
161 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
157 | 162 | </ul> |
158 | 163 | </div> |
159 | 164 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SharedFile Class — pysmb 1.1.22 documentation</title> | |
8 | <title>SharedFile Class — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="SMB Exceptions" href="smb_exceptions.html" /> |
27 | 27 | <link rel="prev" title="SharedDevice Class" href="smb_SharedDevice.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_SharedDevice.html" title="SharedDevice Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
92 | 92 | <p>If you encounter <em>SharedFile</em> instance where its short_name attribute is empty but the filename attribute contains a short name which does not correspond |
93 | 93 | to any files/folders on your remote shared device, it could be that the original filename on the file/folder entry on the shared device contains |
94 | 94 | one of these prohibited characters: “/[]:+|<>=;?,* (see [MS-CIFS]: 2.2.1.1.1 for more details).</p> |
95 | <p>The following attributes are available:</p> | |
96 | <ul class="simple"> | |
97 | <li>create_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of creation of this file resource on the remote server</li> | |
98 | <li>last_access_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last access of this file resource on the remote server</li> | |
99 | <li>last_write_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last modification of this file resource on the remote server</li> | |
100 | <li>last_attr_change_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last attribute change of this file resource on the remote server</li> | |
101 | <li>file_size : File size in number of bytes</li> | |
102 | <li>alloc_size : Total number of bytes allocated to store this file</li> | |
103 | <li>file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3</li> | |
104 | <li>short_name : Unicode string containing the short name of this file (usually in 8.3 notation)</li> | |
105 | <li>filename : Unicode string containing the long filename of this file. Each OS has a limit to the length of this file name. On Windows, it is 256 characters.</li> | |
106 | </ul> | |
95 | 107 | <dl class="attribute"> |
96 | 108 | <dt id="smb.base.SharedFile.alloc_size"> |
97 | 109 | <code class="descname">alloc_size</code><em class="property"> = None</em><a class="headerlink" href="#smb.base.SharedFile.alloc_size" title="Permalink to this definition">¶</a></dt> |
183 | 195 | <li class="right" > |
184 | 196 | <a href="smb_SharedDevice.html" title="SharedDevice Class" |
185 | 197 | >previous</a> |</li> |
186 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
198 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
187 | 199 | </ul> |
188 | 200 | </div> |
189 | 201 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>SMB Exceptions — pysmb 1.1.22 documentation</title> | |
8 | <title>SMB Exceptions — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="Security Descriptors" href="smb_security_descriptors.html" /> |
27 | 27 | <link rel="prev" title="SharedFile Class" href="smb_SharedFile.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_SharedFile.html" title="SharedFile Class" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
141 | 141 | <li class="right" > |
142 | 142 | <a href="smb_SharedFile.html" title="SharedFile Class" |
143 | 143 | >previous</a> |</li> |
144 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
144 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
145 | 145 | </ul> |
146 | 146 | </div> |
147 | 147 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Security Descriptors — pysmb 1.1.22 documentation</title> | |
8 | <title>Security Descriptors — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="../_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: '../', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="../_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="../_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="../_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="../index.html" /> | |
26 | 26 | <link rel="next" title="Extending pysmb For Other Frameworks" href="../extending.html" /> |
27 | 27 | <link rel="prev" title="SMB Exceptions" href="smb_exceptions.html" /> |
28 | 28 | </head> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="smb_exceptions.html" title="SMB Exceptions" |
44 | 44 | accesskey="P">previous</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
251 | 251 | <li class="right" > |
252 | 252 | <a href="smb_exceptions.html" title="SMB Exceptions" |
253 | 253 | >previous</a> |</li> |
254 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.22 documentation</a> »</li> | |
254 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.23 documentation</a> »</li> | |
255 | 255 | </ul> |
256 | 256 | </div> |
257 | 257 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Extending pysmb For Other Frameworks — pysmb 1.1.22 documentation</title> | |
8 | <title>Extending pysmb For Other Frameworks — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: './', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="index.html" /> | |
26 | 26 | <link rel="prev" title="Security Descriptors" href="api/smb_security_descriptors.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
38 | 38 | <li class="right" > |
39 | 39 | <a href="api/smb_security_descriptors.html" title="Security Descriptors" |
40 | 40 | accesskey="P">previous</a> |</li> |
41 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
41 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
42 | 42 | </ul> |
43 | 43 | </div> |
44 | 44 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
118 | 118 | <li class="right" > |
119 | 119 | <a href="api/smb_security_descriptors.html" title="Security Descriptors" |
120 | 120 | >previous</a> |</li> |
121 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
121 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
122 | 122 | </ul> |
123 | 123 | </div> |
124 | 124 | <div class="footer" role="contentinfo"> |
6 | 6 | <head> |
7 | 7 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
8 | 8 | |
9 | <title>Index — pysmb 1.1.22 documentation</title> | |
9 | <title>Index — pysmb 1.1.23 documentation</title> | |
10 | 10 | |
11 | 11 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> |
12 | 12 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
14 | 14 | <script type="text/javascript"> |
15 | 15 | var DOCUMENTATION_OPTIONS = { |
16 | 16 | URL_ROOT: './', |
17 | VERSION: '1.1.22', | |
17 | VERSION: '1.1.23', | |
18 | 18 | COLLAPSE_INDEX: false, |
19 | 19 | FILE_SUFFIX: '.html', |
20 | 20 | HAS_SOURCE: true |
23 | 23 | <script type="text/javascript" src="_static/jquery.js"></script> |
24 | 24 | <script type="text/javascript" src="_static/underscore.js"></script> |
25 | 25 | <script type="text/javascript" src="_static/doctools.js"></script> |
26 | <link rel="top" title="pysmb 1.1.22 documentation" href="index.html" /> | |
26 | <link rel="top" title="pysmb 1.1.23 documentation" href="index.html" /> | |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
29 | 29 | <div class="related" role="navigation" aria-label="related navigation"> |
35 | 35 | <li class="right" > |
36 | 36 | <a href="py-modindex.html" title="Python Module Index" |
37 | 37 | >modules</a> |</li> |
38 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
39 | 39 | </ul> |
40 | 40 | </div> |
41 | 41 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
686 | 686 | <li class="right" > |
687 | 687 | <a href="py-modindex.html" title="Python Module Index" |
688 | 688 | >modules</a> |</li> |
689 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
689 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
690 | 690 | </ul> |
691 | 691 | </div> |
692 | 692 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Welcome to pysmb’s documentation! — pysmb 1.1.22 documentation</title> | |
8 | <title>Welcome to pysmb’s documentation! — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: './', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="#" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="#" /> | |
26 | 26 | <link rel="next" title="NBNSProtocol Class" href="api/nmb_NBNSProtocol.html" /> |
27 | 27 | </head> |
28 | 28 | <body role="document"> |
38 | 38 | <li class="right" > |
39 | 39 | <a href="api/nmb_NBNSProtocol.html" title="NBNSProtocol Class" |
40 | 40 | accesskey="N">next</a> |</li> |
41 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.1.22 documentation</a> »</li> | |
41 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.1.23 documentation</a> »</li> | |
42 | 42 | </ul> |
43 | 43 | </div> |
44 | 44 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
217 | 217 | <li class="right" > |
218 | 218 | <a href="api/nmb_NBNSProtocol.html" title="NBNSProtocol Class" |
219 | 219 | >next</a> |</li> |
220 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.1.22 documentation</a> »</li> | |
220 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.1.23 documentation</a> »</li> | |
221 | 221 | </ul> |
222 | 222 | </div> |
223 | 223 | <div class="footer" role="contentinfo"> |
Binary diff not shown
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Python Module Index — pysmb 1.1.22 documentation</title> | |
8 | <title>Python Module Index — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: './', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
22 | 22 | <script type="text/javascript" src="_static/jquery.js"></script> |
23 | 23 | <script type="text/javascript" src="_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="_static/doctools.js"></script> |
25 | <link rel="top" title="pysmb 1.1.22 documentation" href="index.html" /> | |
25 | <link rel="top" title="pysmb 1.1.23 documentation" href="index.html" /> | |
26 | 26 | |
27 | 27 | |
28 | 28 | |
37 | 37 | <li class="right" > |
38 | 38 | <a href="#" title="Python Module Index" |
39 | 39 | >modules</a> |</li> |
40 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
40 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
41 | 41 | </ul> |
42 | 42 | </div> |
43 | 43 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
102 | 102 | <li class="right" > |
103 | 103 | <a href="#" title="Python Module Index" |
104 | 104 | >modules</a> |</li> |
105 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
105 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
106 | 106 | </ul> |
107 | 107 | </div> |
108 | 108 | <div class="footer" role="contentinfo"> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Search — pysmb 1.1.22 documentation</title> | |
8 | <title>Search — pysmb 1.1.23 documentation</title> | |
9 | 9 | |
10 | 10 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> |
11 | 11 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
13 | 13 | <script type="text/javascript"> |
14 | 14 | var DOCUMENTATION_OPTIONS = { |
15 | 15 | URL_ROOT: './', |
16 | VERSION: '1.1.22', | |
16 | VERSION: '1.1.23', | |
17 | 17 | COLLAPSE_INDEX: false, |
18 | 18 | FILE_SUFFIX: '.html', |
19 | 19 | HAS_SOURCE: true |
23 | 23 | <script type="text/javascript" src="_static/underscore.js"></script> |
24 | 24 | <script type="text/javascript" src="_static/doctools.js"></script> |
25 | 25 | <script type="text/javascript" src="_static/searchtools.js"></script> |
26 | <link rel="top" title="pysmb 1.1.22 documentation" href="index.html" /> | |
26 | <link rel="top" title="pysmb 1.1.23 documentation" href="index.html" /> | |
27 | 27 | <script type="text/javascript"> |
28 | 28 | jQuery(function() { Search.loadIndex("searchindex.js"); }); |
29 | 29 | </script> |
42 | 42 | <li class="right" > |
43 | 43 | <a href="py-modindex.html" title="Python Module Index" |
44 | 44 | >modules</a> |</li> |
45 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
93 | 93 | <li class="right" > |
94 | 94 | <a href="py-modindex.html" title="Python Module Index" |
95 | 95 | >modules</a> |</li> |
96 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.22 documentation</a> »</li> | |
96 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.23 documentation</a> »</li> | |
97 | 97 | </ul> |
98 | 98 | </div> |
99 | 99 | <div class="footer" role="contentinfo"> |
0 | Search.setIndex({envversion:46,filenames:["api/nmb_NBNSProtocol","api/nmb_NetBIOS","api/smb_SMBConnection","api/smb_SMBHandler","api/smb_SMBProtocolFactory","api/smb_SharedDevice","api/smb_SharedFile","api/smb_exceptions","api/smb_security_descriptors","extending","index"],objects:{"nmb.NetBIOS":{NetBIOS:[1,0,1,""]},"nmb.NetBIOS.NetBIOS":{"__init__":[1,1,1,""],close:[1,1,1,""],queryIPForName:[1,1,1,""],queryName:[1,1,1,""]},"nmb.NetBIOSProtocol":{NBNSProtocol:[0,0,1,""],NetBIOSTimeout:[0,0,1,""]},"nmb.NetBIOSProtocol.NBNSProtocol":{"__init__":[0,1,1,""],queryIPForName:[0,1,1,""],queryName:[0,1,1,""]},"smb.SMBConnection":{SMBConnection:[2,0,1,""]},"smb.SMBConnection.SMBConnection":{"__init__":[2,1,1,""],SIGN_NEVER:[2,2,1,""],SIGN_WHEN_REQUIRED:[2,2,1,""],SIGN_WHEN_SUPPORTED:[2,2,1,""],close:[2,1,1,""],connect:[2,1,1,""],createDirectory:[2,1,1,""],deleteDirectory:[2,1,1,""],deleteFiles:[2,1,1,""],echo:[2,1,1,""],getAttributes:[2,1,1,""],getSecurity:[2,1,1,""],isUsingSMB2:[2,2,1,""],listPath:[2,1,1,""],listShares:[2,1,1,""],listSnapshots:[2,1,1,""],rename:[2,1,1,""],resetFileAttributes:[2,1,1,""],retrieveFile:[2,1,1,""],retrieveFileFromOffset:[2,1,1,""],storeFile:[2,1,1,""],storeFileFromOffset:[2,1,1,""]},"smb.SMBProtocol":{SMBProtocolFactory:[4,0,1,""]},"smb.SMBProtocol.SMBProtocolFactory":{"__init__":[4,1,1,""],SIGN_NEVER:[4,2,1,""],SIGN_WHEN_REQUIRED:[4,2,1,""],SIGN_WHEN_SUPPORTED:[4,2,1,""],closeConnection:[4,1,1,""],createDirectory:[4,1,1,""],deleteDirectory:[4,1,1,""],deleteFiles:[4,1,1,""],echo:[4,1,1,""],getAttributes:[4,1,1,""],instance:[4,2,1,""],isReady:[4,2,1,""],isUsingSMB2:[4,2,1,""],listPath:[4,1,1,""],listShares:[4,1,1,""],listSnapshots:[4,1,1,""],onAuthFailed:[4,1,1,""],onAuthOK:[4,1,1,""],rename:[4,1,1,""],retrieveFile:[4,1,1,""],retrieveFileFromOffset:[4,1,1,""],storeFile:[4,1,1,""]},"smb.base":{NotConnectedError:[7,0,1,""],NotReadyError:[7,0,1,""],SMBTimeout:[7,0,1,""],SharedDevice:[5,0,1,""],SharedFile:[6,0,1,""]},"smb.base.SharedDevice":{comments:[5,2,1,""],isSpecial:[5,2,1,""],isTemporary:[5,2,1,""],name:[5,2,1,""],type:[5,2,1,""]},"smb.base.SharedFile":{alloc_size:[6,2,1,""],create_time:[6,2,1,""],file_attributes:[6,2,1,""],file_size:[6,2,1,""],filename:[6,2,1,""],isDirectory:[6,2,1,""],isReadOnly:[6,2,1,""],last_access_time:[6,2,1,""],last_attr_change_time:[6,2,1,""],last_write_time:[6,2,1,""],short_name:[6,2,1,""]},"smb.security_descriptors":{ACE:[8,0,1,""],ACL:[8,0,1,""],SID:[8,0,1,""],SecurityDescriptor:[8,0,1,""]},"smb.security_descriptors.ACE":{additional_data:[8,2,1,""],flags:[8,2,1,""],isInheritOnly:[8,2,1,""],mask:[8,2,1,""],sid:[8,2,1,""],type:[8,2,1,""]},"smb.security_descriptors.ACL":{aces:[8,2,1,""],revision:[8,2,1,""]},"smb.security_descriptors.SID":{identifier_authority:[8,2,1,""],revision:[8,2,1,""],subauthorities:[8,2,1,""]},"smb.security_descriptors.SecurityDescriptor":{dacl:[8,2,1,""],flags:[8,2,1,""],group:[8,2,1,""],owner:[8,2,1,""],sacl:[8,2,1,""]},"smb.smb_structs":{OperationFailure:[7,0,1,""],ProtocolError:[7,0,1,""],UnsupportedFeature:[7,0,1,""]},smb:{security_descriptors:[8,3,0,"-"]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","module","Python module"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute","3":"py:module"},terms:{"3rd":10,"60kbyte":4,"\u5783\u573e\u6587\u4ef6":3,"\u6d4b\u8bd5\u6587\u4ef6\u5939":3,"__init__":[0,1,2,4,9],"abstract":10,"boolean":[0,1,2,4],"byte":[2,4,6],"case":4,"default":[2,4],"float":[0,1,4,6],"function":[0,1,2,4,10],"import":[2,3,4,10],"int":[2,4],"long":[2,4,6],"new":[1,2,4,9],"public":4,"return":[0,1,2,3,4,5,6,10],"short":6,"true":[0,1,2,4,5,6],"try":[2,4,9],"while":7,aaa:[0,1],about:[2,4,5,6],abov:9,accept:[4,9],access:[2,4,6,8],access_mask:8,accur:4,ace_type_:8,aceflag:8,acetyp:8,acknowledg:4,acl:8,across:[2,4],actual:2,add:[0,4],addcallback:[0,4],adderrback:4,addit:8,additional_data:8,address:[0,1,3,9,10],admin:5,administr:5,after:[0,1,2,4,10],again:0,against:10,algorithm:[2,4,9,10],all:[2,4,8,10],alloc:6,alloc_s:6,allow:[0,2,4],alon:10,alphanumer:[2,4],alreadi:2,also:[2,4,5],alwai:[8,10],anderson:[0,1],ani:[1,2,4,6,10],appli:[2,4,8],applic:[0,1,4,6,10],application_data:8,appropri:[0,1],arbitari:[2,4],archiv:[2,4],arg:4,around:0,ascii:[2,4],asn:10,aspx:2,assert:2,associ:8,asynchron:[0,2,9],attempt:2,attribut:[2,4,6],attribute_data:8,atttempt:2,audit:8,auth:4,authent:[2,4,7,9,10],authenthent:4,author:8,auto:[2,4],automat:[0,1,2,4],avail:[2,4,10],avoid:4,back:[0,1,2,4],base:[2,4,5,6,7,9,10],batch:4,bbb:[0,1],been:[2,4,7,9,10],befor:[2,4],begin:[2,4],between:10,bind:[0,1],bit:[2,4,10],bitmask:8,bitwis:[2,4],blob:10,block:[0,1,2,10],both:[2,4],briefli:9,broadcast:[0,1],buffer:9,build_open:3,busi:[2,4],call:[0,1,2,4,6,9],callback:[0,4,9],can:[0,1,2,3,4,5,8,9,10],cannot:[2,3,4],captur:[2,4],care:9,cc232110:2,ccc:[0,1],chang:6,charact:[2,3,4,6],choic:[2,4],choos:[2,4],cif:[1,2,4,6,7,9,10],clear:2,click:[2,4],client:[2,4,10],client_machine_nam:[2,4],close:[1,2,3,4],closeconnect:4,code:3,com:2,come:10,comm_devic:5,command:[2,4],comment:5,commerci:10,commun:[2,4,5,10],compat:[2,4],complet:[2,4,7,10],compon:[2,3,4],comput:[2,4],concurr:[2,4],configur:[2,4],conflict:10,conn:2,connect:[2,4,7,9],connecttcp:4,consist:8,constant:[5,8,10],constructor:9,contain:[1,2,4,5,6,10],content:[],continu:[2,4],contribut:[0,1],control:[2,4,8],conveni:[2,4,6,8],copi:[2,4,10],correspond:[6,8],could:[6,10],cover:10,creat:[0,1,2,3,4,9],create_tim:6,createdirectori:[2,4],creation:[5,6],credenti:[2,4],credienti:4,current:[2,7],dacl:8,dat:3,data:[2,3,4,8,9,10],data_buf:7,datetim:[2,4],ddd:[0,1],decod:10,def:4,defer:[0,4],defin:[0,1],delet:[2,3,4],deletedirectori:[2,4],deletefil:[2,4],depend:[8,10],describ:[2,9],descript:[],descriptor:[],detail:[6,9,10],detect:[2,4],determin:[0,1,2,4,10],develop:[2,6,10],devic:[5,6],dialect:10,dictionari:8,differ:[2,4,9,10],digest:10,direct:[2,4],directli:[4,6],director:3,directori:[2,3,4,6],disabl:[2,4],disconnect:[2,4,7],discret:10,discretionari:8,disk_tre:5,dixon:10,dmitri:10,doe:[2,4,6,10],doesn:8,domain:[2,4,10],done:[0,1],dot:[0,1],download:[4,10],dtyp:8,due:9,each:[1,2,4,5,6],earliest:4,echo:[2,4],edit:[2,4],either:[2,4],element:[2,4],els:[2,4],empti:[0,1,2,3,4,6],enabl:[2,4],encapsul:8,encod:10,encount:[2,6],encrypt:10,end:[2,4],english:[2,4],enterpris:[2,4],entir:4,entri:[6,8],eof:[2,4],errback:[0,4],error:[2,4,9],establish:[2,4],etc:4,excee:4,except:[],exercis:10,exist:[2,3,4],expos:4,facilit:10,factori:4,fail:[2,4,7,9],failur:0,fallback:[2,4],fals:[0,1,2,4],familiar:10,featur:[2,4,7],feeddata:9,fh2:3,field:8,file:[2,3,4,5,6,9,10],file_attribut:[2,4,6],file_attribute_norm:2,file_fh:3,file_obj:[2,4],file_s:[4,6],filenam:[2,4,6],fileretriev:4,files:2,filter:[2,4],find:[2,4,9],first:[2,3,4],flag:[0,1,2,4,8],folder:[2,3,4,6,10],follow:[2,3,4,5,8,10],forth:5,framework:[],free:[0,1,10],freeli:[2,4],from:[0,1,2,3,4,8,9,10],functionl:4,further:2,gener:9,getattribut:[2,4],getsecur:2,gmt:[2,4],googl:10,group:8,guess:[2,4],handl:[4,9],hash:10,have:[0,2,9,10],held:2,help:2,henc:[2,4,10],hidden:[2,4],hope:[0,1],host:[2,3,4],hostnam:3,http:2,iana:[0,1],identifi:[2,4,8],identifier_author:8,idl:2,illustr:[2,3,4],immedi:[2,4],implement:[0,1,2,4,8,9,10],impos:[2,4],includ:[9,10],incom:0,incomplet:9,index:10,indic:[],individu:4,inform:[2,4,5,6],inherit:8,inherited_object_typ:8,initi:[5,9],insid:[2,4],instal:[2,4,10],instanc:[0,1,2,4,6,8],instanti:[0,1,4,6],instiant:[0,1],integ:[0,1,2,4,6,8,10],integr:[5,10],interest:[2,4],intern:[4,9,10],internet:[0,4],interprocess:5,interv:4,invok:[2,4],involv:9,ipc:5,ipv4:1,is_direct_tcp:[2,4],isdirectori:6,isinheritonli:8,isreadi:4,isreadonli:6,isspeci:5,istemporari:5,isusingsmb2:[2,4],itself:[4,8,10],jason:[0,1],just:[0,4],keep:2,keepal:2,know:[0,1,4],known:[2,4],kwarg:4,last:6,last_access_tim:6,last_attr_change_tim:6,last_write_tim:6,latest:10,learn:[2,4],least:2,leav:[0,1,2,4],length:[6,8],lgpl:10,librari:[2,10],like:[2,3,4],limit:[2,4,6],linux:10,list:[0,1,2,4,8,10],listen:[0,1],listen_port:[0,1],listenudp:0,listpath:[2,4,6],listshar:[2,4],listsnapshot:[2,4],local:[2,4],local_fil:3,log:8,look:10,loop:9,loseconnect:4,machin:[0,1,2,3,4,10],made:[2,4,10],mai:[2,4],main:10,mask:8,match:[0,1,2,4],max_length:[2,4],maximum:[2,4],md4:10,mean:[4,8],meant:2,mechan:[2,4],messag:[2,4,7,10],method:[0,1,2,3,4,6,9],microsoft:[2,10],might:[2,4],miketeo:10,mit:10,mode:[0,1],modif:6,modifi:10,modul:[2,4,8,10],more:[2,4,6,9,10],most:[2,4,9,10],msdn:2,multipl:[2,4],must:[0,2,4],my_nam:[2,4],mypassword:3,myuserid:3,name:[0,1,2,3,4,5,6,10],namedtemporaryfil:[2,4],nbn:[1,10],need:[2,3,4,6,9,10],neg:[2,4],net:10,netbio:[],netbiosprotocol:[0,10],netbiossess:10,netbiostimeout:0,network:[0,1,2,4,10],never:[2,4],new_path:[2,4],newer:[2,4],next:2,nmb:[0,1,10],non:[2,4],none:[0,1,2,4,5,6,7,8],notat:[0,1,6],notconnectederror:[4,7],note:[],notreadyerror:[4,7],now:9,ntlm:[4,9,10],ntlmssp:10,ntlmv1:[2,4,10],ntlmv2:[2,4,10],number:[0,1,2,4,6,8],obj:[2,4],object:[2,3,4,8],object_typ:8,occur:[2,4,7],offset:[2,4],often:9,old:[2,4],old_path:[2,4],onauthfail:[4,9],onauthok:[4,9],onc:[4,9],onli:[2,3,4,6,8,10],onnmbsessionfail:9,open:[2,3,4,10],opensourc:10,oper:[1,2,4,7,9,10],operationfailur:[2,4,7],opportun:4,organ:10,origin:[2,4,6],other:[],otherwis:[2,4],out:[2,4],over:[2,4,10],overrid:[4,9],overwritten:[2,4],own:[4,9,10],owner:8,packag:[],packet:[0,1,4,9],page:[9,10],paramet:[0,1,2,3,4,9,10],parent:3,pars:10,part:9,parti:10,pass:[2,3,4],password:[2,4],path:[2,3,4],path_file_pattern:[2,4],pathnam:[2,4],pattern:[2,4],perform:[0,1,2,4,9],period:4,persist:5,place:10,pleas:10,point:3,port:[0,1,2,4],posit:[2,4],possibl:10,post:[4,9],precis:4,present:[7,8],princip:8,print:[4,10],print_queu:5,proce:4,proceed:[2,4],process:[3,9],prohibit:6,project:[0,4,10],promis:10,properti:[2,4,6,8],protocol:[2,4,7,10],protocolerror:7,provid:[0,1,2,3,4,9,10],pure:10,purpos:10,pyasn1:10,pyde:10,pymsb:4,pysmb:[],python:[2,3,4,10],queri:[0,1,2,4,10],queryipfornam:[0,1],querynam:[0,1],queue:4,rais:[0,2,3,4,7],reactor:[0,4],read:[2,3,4,6,9,10],readi:[4,7],receiv:[0,1,2,4],refer:[2,4,5,10],referenc:10,regardless:[2,4],regular:[2,4],reject:[2,4],rel:[2,4],relat:10,releas:[1,2],remot:[1,2,4,5,6,9],remote_nam:[2,4,9],remov:0,renam:[2,4],repli:[0,1,2,4],report:9,repres:8,request:[2,4],requir:[2,4,7],reserv:5,reset:2,resetfileattribut:2,resourc:[1,2,4,6],respond:2,respons:7,restrict:8,result:[0,2,4],retri:4,retriev:[2,3,4],retrievefil:[2,4],retrievefilefactori:4,retrievefilefromoffset:[2,4],reus:4,revis:8,rfc1001:[2,3,4],right:[2,4],routin:10,rozmanov:10,sacl:8,safe:[2,4],samba:10,sambda:[2,4],same:[2,4],search:[2,4,10],sec:4,second:[0,1,4,6],section:10,secur:[],security_descriptor:[2,8],securityblob:10,securitydescriptor:[2,8],see:[2,4,6,8],seek:[2,4],select:[0,1,2,4],self:[4,9],send:[0,1,2,4],separ:10,sequenc:8,sequenti:2,seri:4,server:[2,4,5,6,9,10],server_ip:[2,4],server_nam:[2,4],servic:[1,2,4,9,10],service_nam:[2,4],session:[9,10],set:[2,4],setup:[0,1,4,9],sha256:10,sha:10,shadow:[2,4],share:[2,3,4,5,6,10],shareddevic:[],sharedfil:[],sharedfold:3,short_nam:6,should:[0,1,2,4,6,8],sid:8,side:10,sign:[2,4],sign_nev:[2,4],sign_opt:[2,4],sign_when_requir:[2,4],sign_when_support:[2,4],simpl:[2,4],simpli:3,sinc:6,singl:[2,4,5,8],site:10,size:[4,6],smb1:[2,4,10],smb2_constant:10,smb2_struct:10,smb:[],smb_constant:[2,4,10],smb_ext_file_attr:6,smb_file_attribute_xxx:[2,4],smb_messag:7,smb_struct:[2,4,7,10],smbprotocol:[4,6,10],smbtest:[2,4],smbtimeout:[4,7],snapshot:[2,4],snippet:3,sock_famili:2,socket:[1,2,9],softwar:10,some:[2,4,10],sort:2,sourc:[0,1,2,4,5,6,7,8,10],sp3:10,space:[2,4],special:5,specif:10,specifi:[0,1,2,4,8],standard:[0,1,10],start:[0,2,4],step:9,stoplisten:0,store:[2,4,6],storefil:[2,4],storefilefromoffset:2,string:[0,1,2,3,4,5,6],structur:8,style:10,sub:[2,4],subauthor:8,subclass:[4,9],subsequ:3,success:[2,9],successfulli:[2,4],suitabl:[2,10],support_smb2:[2,4],synchron:[9,10],system:[2,4,8],take:[9,10],target:[0,1],tcp:[2,4,9],technic:[2,9],tempfil:[2,4],temporari:5,term:10,termin:[2,4],test:10,than:[2,4],thei:10,therefor:2,thi:[0,1,2,4,5,6,8,9,10],thoma:10,those:4,thousand:4,through:4,time:[2,4,5,6,10],timeout:[0,1,2,4,7],todd:10,togeth:10,too:2,total:6,touch:[0,1,4],transfer:[4,10],translat:10,transmit:4,transport:[0,4,10],truncat:2,truste:8,tupl:[2,4],twist:[0,4,10],txt:[2,3,4],type:[5,8],type_:8,u32:10,udp:[0,1],ultim:[2,4],under:10,underli:[1,2,4,7,10],unicod:[2,3,4,5,6],unless:[0,1],unlock:2,unsign:10,unsupportedfeatur:7,until:[1,2,4],upload:[2,3,4],upload_fil:3,url:[3,10],urlerror:3,urllib2:[3,10],use_ntlm_v2:[2,4,9],user:[2,4,5,8],userid:[2,4],usernam:[2,4],usual:[2,4,6,9,10],utc:[2,4],utf:3,util:[2,4],valid:3,valu:[2,4,6,8],variabl:8,variou:10,veri:2,version:10,via:[0,4,6,10],vista:[2,4,10],wait:[0,1,4,7],want:[4,10],web:10,well:10,what:[0,1,2,4,9],when:[0,1,2,4,7,9,10],where:[2,4,6,10],whether:[2,4],which:[0,1,2,4,6,8,9,10],whiteman:10,who:[2,4,10],whose:10,wider:[2,4],wildcard:[2,4],window:[2,3,4,6,8,10],wish:[1,2],within:[2,4,10],without:[0,10],workgroup:[2,4],wrap:0,write:[2,4,9],write_result:4,written:[2,4],wrong:9,yet:7,you:[0,1,2,3,4,6,9,10],your:[0,1,2,4,6,9,10],yourself:10,zero:[0,1,2,4],zone:[2,4]},titles:["NBNSProtocol Class","NetBIOS class","SMBConnection Class","SMbHandler Class","SMBProtocolFactory Class","SharedDevice Class","SharedFile Class","SMB Exceptions","Security Descriptors","Extending pysmb For Other Frameworks","Welcome to pysmb’s documentation!"],titleterms:{"class":[0,1,2,3,4,5,6],caveat:[2,4],content:10,credit:10,descript:10,descriptor:8,document:10,exampl:[2,3,4],except:7,extend:9,framework:9,indic:10,licens:10,nbnsprotocol:0,netbio:1,note:3,other:9,packag:10,pysmb:[9,10],secur:8,shareddevic:5,sharedfil:6,smb2:[2,4],smb:7,smbconnect:2,smbhandler:3,smbprotocolfactori:4,support:[2,4],tabl:10,welcom:10}})⏎ | |
0 | Search.setIndex({envversion:46,filenames:["api/nmb_NBNSProtocol","api/nmb_NetBIOS","api/smb_SMBConnection","api/smb_SMBHandler","api/smb_SMBProtocolFactory","api/smb_SharedDevice","api/smb_SharedFile","api/smb_exceptions","api/smb_security_descriptors","extending","index"],objects:{"nmb.NetBIOS":{NetBIOS:[1,0,1,""]},"nmb.NetBIOS.NetBIOS":{"__init__":[1,1,1,""],close:[1,1,1,""],queryIPForName:[1,1,1,""],queryName:[1,1,1,""]},"nmb.NetBIOSProtocol":{NBNSProtocol:[0,0,1,""],NetBIOSTimeout:[0,0,1,""]},"nmb.NetBIOSProtocol.NBNSProtocol":{"__init__":[0,1,1,""],queryIPForName:[0,1,1,""],queryName:[0,1,1,""]},"smb.SMBConnection":{SMBConnection:[2,0,1,""]},"smb.SMBConnection.SMBConnection":{"__init__":[2,1,1,""],SIGN_NEVER:[2,2,1,""],SIGN_WHEN_REQUIRED:[2,2,1,""],SIGN_WHEN_SUPPORTED:[2,2,1,""],close:[2,1,1,""],connect:[2,1,1,""],createDirectory:[2,1,1,""],deleteDirectory:[2,1,1,""],deleteFiles:[2,1,1,""],echo:[2,1,1,""],getAttributes:[2,1,1,""],getSecurity:[2,1,1,""],isUsingSMB2:[2,2,1,""],listPath:[2,1,1,""],listShares:[2,1,1,""],listSnapshots:[2,1,1,""],rename:[2,1,1,""],resetFileAttributes:[2,1,1,""],retrieveFile:[2,1,1,""],retrieveFileFromOffset:[2,1,1,""],storeFile:[2,1,1,""],storeFileFromOffset:[2,1,1,""]},"smb.SMBProtocol":{SMBProtocolFactory:[4,0,1,""]},"smb.SMBProtocol.SMBProtocolFactory":{"__init__":[4,1,1,""],SIGN_NEVER:[4,2,1,""],SIGN_WHEN_REQUIRED:[4,2,1,""],SIGN_WHEN_SUPPORTED:[4,2,1,""],closeConnection:[4,1,1,""],createDirectory:[4,1,1,""],deleteDirectory:[4,1,1,""],deleteFiles:[4,1,1,""],echo:[4,1,1,""],getAttributes:[4,1,1,""],instance:[4,2,1,""],isReady:[4,2,1,""],isUsingSMB2:[4,2,1,""],listPath:[4,1,1,""],listShares:[4,1,1,""],listSnapshots:[4,1,1,""],onAuthFailed:[4,1,1,""],onAuthOK:[4,1,1,""],rename:[4,1,1,""],retrieveFile:[4,1,1,""],retrieveFileFromOffset:[4,1,1,""],storeFile:[4,1,1,""]},"smb.base":{NotConnectedError:[7,0,1,""],NotReadyError:[7,0,1,""],SMBTimeout:[7,0,1,""],SharedDevice:[5,0,1,""],SharedFile:[6,0,1,""]},"smb.base.SharedDevice":{comments:[5,2,1,""],isSpecial:[5,2,1,""],isTemporary:[5,2,1,""],name:[5,2,1,""],type:[5,2,1,""]},"smb.base.SharedFile":{alloc_size:[6,2,1,""],create_time:[6,2,1,""],file_attributes:[6,2,1,""],file_size:[6,2,1,""],filename:[6,2,1,""],isDirectory:[6,2,1,""],isReadOnly:[6,2,1,""],last_access_time:[6,2,1,""],last_attr_change_time:[6,2,1,""],last_write_time:[6,2,1,""],short_name:[6,2,1,""]},"smb.security_descriptors":{ACE:[8,0,1,""],ACL:[8,0,1,""],SID:[8,0,1,""],SecurityDescriptor:[8,0,1,""]},"smb.security_descriptors.ACE":{additional_data:[8,2,1,""],flags:[8,2,1,""],isInheritOnly:[8,2,1,""],mask:[8,2,1,""],sid:[8,2,1,""],type:[8,2,1,""]},"smb.security_descriptors.ACL":{aces:[8,2,1,""],revision:[8,2,1,""]},"smb.security_descriptors.SID":{identifier_authority:[8,2,1,""],revision:[8,2,1,""],subauthorities:[8,2,1,""]},"smb.security_descriptors.SecurityDescriptor":{dacl:[8,2,1,""],flags:[8,2,1,""],group:[8,2,1,""],owner:[8,2,1,""],sacl:[8,2,1,""]},"smb.smb_structs":{OperationFailure:[7,0,1,""],ProtocolError:[7,0,1,""],UnsupportedFeature:[7,0,1,""]},smb:{security_descriptors:[8,3,0,"-"]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"],"3":["py","module","Python module"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute","3":"py:module"},terms:{"3rd":10,"60kbyte":4,"\u5783\u573e\u6587\u4ef6":3,"\u6d4b\u8bd5\u6587\u4ef6\u5939":3,"__init__":[0,1,2,4,9],"abstract":10,"boolean":[0,1,2,4],"byte":[2,4,6],"case":4,"default":[2,4],"float":[0,1,4,6],"function":[0,1,2,4,10],"import":[2,3,4,10],"int":[2,4],"long":[2,4,6],"new":[1,2,4,9],"public":4,"return":[0,1,2,3,4,5,6,10],"short":6,"true":[0,1,2,4,5,6],"try":[2,4,9],"while":7,aaa:[0,1],about:[2,4,5,6],abov:9,accept:[4,9],access:[2,4,6,8],access_mask:8,accur:4,ace_type_:8,aceflag:8,acetyp:8,acknowledg:4,acl:8,across:[2,4],actual:2,add:[0,4],addcallback:[0,4],adderrback:4,addit:8,additional_data:8,address:[0,1,3,9,10],admin:5,administr:5,after:[0,1,2,4,10],again:0,against:10,algorithm:[2,4,9,10],all:[2,4,8,10],alloc:6,alloc_s:6,allow:[0,2,4],alon:10,alphanumer:[2,4],alreadi:2,also:[2,4,5],alwai:[8,10],anderson:[0,1],ani:[1,2,4,6,10],appli:[2,4,8],applic:[0,1,4,6,10],application_data:8,appropri:[0,1],arbitari:[2,4],archiv:[2,4],arg:4,around:0,ascii:[2,4],asn:10,aspx:2,assert:2,associ:8,asynchron:[0,2,9],attempt:2,attribut:[2,4,5,6],attribute_data:8,atttempt:2,audit:8,auth:4,authent:[2,4,7,9,10],authenthent:4,author:8,auto:[2,4],automat:[0,1,2,4],avail:[2,4,5,6,10],avoid:4,back:[0,1,2,4],base:[2,4,5,6,7,9,10],batch:4,bbb:[0,1],been:[2,4,7,9,10],befor:[2,4],begin:[2,4],between:10,bind:[0,1],bit:[2,4,10],bitmask:8,bitwis:[2,4],blob:10,block:[0,1,2,10],both:[2,4],briefli:9,broadcast:[0,1],buffer:9,build_open:3,busi:[2,4],call:[0,1,2,4,6,9],callback:[0,4,9],can:[0,1,2,3,4,5,8,9,10],cannot:[2,3,4],captur:[2,4],care:9,cc232110:2,ccc:[0,1],chang:6,charact:[2,3,4,6],choic:[2,4],choos:[2,4],cif:[1,2,4,6,7,9,10],clear:2,click:[2,4],client:[2,4,10],client_machine_nam:[2,4],close:[1,2,3,4],closeconnect:4,code:3,com:2,come:10,comm_devic:5,command:[2,4],comment:5,commerci:10,commun:[2,4,5,10],compat:[2,4],complet:[2,4,7,10],compon:[2,3,4],comput:[2,4],concurr:[2,4],configur:[2,4],conflict:10,conn:2,connect:[2,4,7,9],connecttcp:4,consist:8,constant:[5,8,10],constructor:9,contain:[1,2,4,5,6,10],content:[],continu:[2,4],contribut:[0,1],control:[2,4,8],conveni:[2,4,6,8],copi:[2,4,10],correspond:[6,8],could:[6,10],cover:10,creat:[0,1,2,3,4,9],create_tim:6,createdirectori:[2,4],creation:[5,6],credenti:[2,4],credienti:4,current:[2,7],dacl:8,dat:3,data:[2,3,4,8,9,10],data_buf:7,datetim:[2,4],ddd:[0,1],decod:10,def:4,defer:[0,4],defin:[0,1],delet:[2,3,4],deletedirectori:[2,4],deletefil:[2,4],depend:[8,10],describ:[2,9],descript:[],descriptor:[],detail:[6,9,10],detect:[2,4],determin:[0,1,2,4,10],develop:[2,6,10],devic:[5,6],dialect:10,dictionari:8,differ:[2,4,9,10],digest:10,direct:[2,4],directli:[4,6],director:3,directori:[2,3,4,6],disabl:[2,4],disconnect:[2,4,7],discret:10,discretionari:8,disk_tre:5,dixon:10,dmitri:10,doe:[2,4,6,10],doesn:8,domain:[2,4,10],done:[0,1],dot:[0,1],download:[4,10],dtyp:8,due:9,each:[1,2,4,5,6],earliest:4,echo:[2,4],edit:[2,4],either:[2,4],element:[2,4],els:[2,4],empti:[0,1,2,3,4,6],enabl:[2,4],encapsul:8,encod:10,encount:[2,6],encrypt:10,end:[2,4],english:[2,4],enterpris:[2,4],entir:4,entri:[6,8],eof:[2,4],errback:[0,4],error:[2,4,9],establish:[2,4],etc:4,excee:4,except:[],exercis:10,exist:[2,3,4],expos:4,facilit:10,factori:4,fail:[2,4,7,9],failur:0,fallback:[2,4],fals:[0,1,2,4],familiar:10,featur:[2,4,7],feeddata:9,fh2:3,field:8,file:[2,3,4,5,6,9,10],file_attribut:[2,4,6],file_attribute_norm:2,file_fh:3,file_obj:[2,4],file_s:[4,6],filenam:[2,4,6],fileretriev:4,files:2,filter:[2,4],find:[2,4,9],first:[2,3,4],flag:[0,1,2,4,8],folder:[2,3,4,6,10],follow:[2,3,4,5,6,8,10],forth:5,framework:[],free:[0,1,10],freeli:[2,4],from:[0,1,2,3,4,8,9,10],functionl:4,further:2,gener:9,getattribut:[2,4],getsecur:2,gmt:[2,4],googl:10,group:8,guess:[2,4],handl:[4,9],hash:10,have:[0,2,9,10],held:2,help:2,henc:[2,4,10],hidden:[2,4],hope:[0,1],host:[2,3,4],hostnam:3,http:2,iana:[0,1],identifi:[2,4,8],identifier_author:8,idl:2,illustr:[2,3,4],immedi:[2,4],implement:[0,1,2,4,8,9,10],impos:[2,4],includ:[9,10],incom:0,incomplet:9,index:10,indic:[],individu:4,inform:[2,4,5,6],inherit:8,inherited_object_typ:8,initi:[5,9],insid:[2,4],instal:[2,4,10],instanc:[0,1,2,4,6,8],instanti:[0,1,4,6],instiant:[0,1],integ:[0,1,2,4,6,8,10],integr:[5,10],interest:[2,4],intern:[4,9,10],internet:[0,4],interprocess:5,interv:4,invok:[2,4],involv:9,ipc:5,ipv4:1,is_direct_tcp:[2,4],isdirectori:6,isinheritonli:8,isreadi:4,isreadonli:6,isspeci:5,istemporari:5,isusingsmb2:[2,4],itself:[4,8,10],jason:[0,1],just:[0,4],keep:2,keepal:2,know:[0,1,4],known:[2,4],kwarg:4,last:6,last_access_tim:6,last_attr_change_tim:6,last_write_tim:6,latest:10,learn:[2,4],least:2,leav:[0,1,2,4],length:[6,8],lgpl:10,librari:[2,10],like:[2,3,4],limit:[2,4,6],linux:10,list:[0,1,2,4,8,10],listen:[0,1],listen_port:[0,1],listenudp:0,listpath:[2,4,6],listshar:[2,4],listsnapshot:[2,4],local:[2,4],local_fil:3,log:8,look:10,loop:9,loseconnect:4,machin:[0,1,2,3,4,10],made:[2,4,10],mai:[2,4],main:10,mask:8,match:[0,1,2,4],max_length:[2,4],maximum:[2,4],md4:10,mean:[4,8],meant:2,mechan:[2,4],messag:[2,4,7,10],method:[0,1,2,3,4,6,9],microsoft:[2,10],might:[2,4],miketeo:10,mit:10,mode:[0,1],modif:6,modifi:10,modul:[2,4,8,10],more:[2,4,6,9,10],most:[2,4,9,10],msdn:2,multipl:[2,4],must:[0,2,4],my_nam:[2,4],mypassword:3,myuserid:3,name:[0,1,2,3,4,5,6,10],namedtemporaryfil:[2,4],nbn:[1,10],need:[2,3,4,6,9,10],neg:[2,4],net:10,netbio:[],netbiosprotocol:[0,10],netbiossess:10,netbiostimeout:0,network:[0,1,2,4,10],never:[2,4],new_path:[2,4],newer:[2,4],next:2,nmb:[0,1,10],non:[2,4],none:[0,1,2,4,5,6,7,8],notat:[0,1,6],notconnectederror:[4,7],note:[],notreadyerror:[4,7],now:9,ntlm:[4,9,10],ntlmssp:10,ntlmv1:[2,4,10],ntlmv2:[2,4,10],number:[0,1,2,4,6,8],obj:[2,4],object:[2,3,4,8],object_typ:8,occur:[2,4,7],offset:[2,4],often:9,old:[2,4],old_path:[2,4],onauthfail:[4,9],onauthok:[4,9],onc:[4,9],onli:[2,3,4,6,8,10],onnmbsessionfail:9,open:[2,3,4,10],opensourc:10,oper:[1,2,4,7,9,10],operationfailur:[2,4,7],opportun:4,organ:10,origin:[2,4,6],other:[],otherwis:[2,4],out:[2,4],over:[2,4,10],overrid:[4,9],overwritten:[2,4],own:[4,9,10],owner:8,packag:[],packet:[0,1,4,9],page:[9,10],paramet:[0,1,2,3,4,9,10],parent:3,pars:10,part:9,parti:10,pass:[2,3,4],password:[2,4],path:[2,3,4],path_file_pattern:[2,4],pathnam:[2,4],pattern:[2,4],perform:[0,1,2,4,9],period:4,persist:5,place:10,pleas:10,point:3,port:[0,1,2,4],posit:[2,4],possibl:10,post:[4,9],precis:4,present:[7,8],princip:8,print:[4,10],print_queu:5,proce:4,proceed:[2,4],process:[3,9],prohibit:6,project:[0,4,10],promis:10,properti:[2,4,6,8],protocol:[2,4,7,10],protocolerror:7,provid:[0,1,2,3,4,9,10],pure:10,purpos:10,pyasn1:10,pyde:10,pymsb:4,pysmb:[],python:[2,3,4,10],queri:[0,1,2,4,10],queryipfornam:[0,1],querynam:[0,1],queue:4,rais:[0,2,3,4,7],reactor:[0,4],read:[2,3,4,6,9,10],readi:[4,7],receiv:[0,1,2,4],refer:[2,4,5,10],referenc:10,regardless:[2,4],regular:[2,4],reject:[2,4],rel:[2,4],relat:10,releas:[1,2],remot:[1,2,4,5,6,9],remote_nam:[2,4,9],remov:0,renam:[2,4],repli:[0,1,2,4],report:9,repres:8,request:[2,4],requir:[2,4,7],reserv:5,reset:2,resetfileattribut:2,resourc:[1,2,4,6],respond:2,respons:7,restrict:8,result:[0,2,4],retri:4,retriev:[2,3,4],retrievefil:[2,4],retrievefilefactori:4,retrievefilefromoffset:[2,4],reus:4,revis:8,rfc1001:[2,3,4],right:[2,4],routin:10,rozmanov:10,sacl:8,safe:[2,4],samba:10,sambda:[2,4],same:[2,4],search:[2,4,10],sec:4,second:[0,1,4,6],section:10,secur:[],security_descriptor:[2,8],securityblob:10,securitydescriptor:[2,8],see:[2,4,6,8],seek:[2,4],select:[0,1,2,4],self:[4,9],send:[0,1,2,4],separ:10,sequenc:8,sequenti:2,seri:4,server:[2,4,5,6,9,10],server_ip:[2,4],server_nam:[2,4],servic:[1,2,4,9,10],service_nam:[2,4],session:[9,10],set:[2,4],setup:[0,1,4,9],sha256:10,sha:10,shadow:[2,4],share:[2,3,4,5,6,10],shareddevic:[],sharedfil:[],sharedfold:3,short_nam:6,should:[0,1,2,4,6,8],sid:8,side:10,sign:[2,4],sign_nev:[2,4],sign_opt:[2,4],sign_when_requir:[2,4],sign_when_support:[2,4],simpl:[2,4],simpli:3,sinc:6,singl:[2,4,5,8],site:10,size:[4,6],smb1:[2,4,10],smb2_constant:10,smb2_struct:10,smb:[],smb_constant:[2,4,10],smb_ext_file_attr:6,smb_file_attribute_xxx:[2,4],smb_messag:7,smb_struct:[2,4,7,10],smbprotocol:[4,6,10],smbtest:[2,4],smbtimeout:[4,7],snapshot:[2,4],snippet:3,sock_famili:2,socket:[1,2,9],softwar:10,some:[2,4,10],sort:2,sourc:[0,1,2,4,5,6,7,8,10],sp3:10,space:[2,4],special:5,specif:10,specifi:[0,1,2,4,8],standard:[0,1,10],start:[0,2,4],step:9,stoplisten:0,store:[2,4,6],storefil:[2,4],storefilefromoffset:2,string:[0,1,2,3,4,5,6],structur:8,style:10,sub:[2,4],subauthor:8,subclass:[4,9],subsequ:3,success:[2,9],successfulli:[2,4],suitabl:[2,10],support_smb2:[2,4],synchron:[9,10],system:[2,4,8],take:[9,10],target:[0,1],tcp:[2,4,9],technic:[2,9],tempfil:[2,4],temporari:5,term:10,termin:[2,4],test:10,than:[2,4],thei:10,therefor:2,thi:[0,1,2,4,5,6,8,9,10],thoma:10,those:4,thousand:4,through:4,time:[2,4,5,6,10],timeout:[0,1,2,4,7],todd:10,togeth:10,too:2,total:6,touch:[0,1,4],transfer:[4,10],translat:10,transmit:4,transport:[0,4,10],truncat:2,truste:8,tupl:[2,4],twist:[0,4,10],txt:[2,3,4],type:[5,8],type_:8,u32:10,udp:[0,1],ultim:[2,4],under:10,underli:[1,2,4,7,10],unicod:[2,3,4,5,6],unless:[0,1],unlock:2,unsign:10,unsupportedfeatur:7,until:[1,2,4],upload:[2,3,4],upload_fil:3,url:[3,10],urlerror:3,urllib2:[3,10],use_ntlm_v2:[2,4,9],user:[2,4,5,8],userid:[2,4],usernam:[2,4],usual:[2,4,6,9,10],utc:[2,4],utf:3,util:[2,4],valid:3,valu:[2,4,6,8],variabl:8,variou:10,veri:2,version:10,via:[0,4,6,10],vista:[2,4,10],wait:[0,1,4,7],want:[4,10],web:10,well:10,what:[0,1,2,4,9],when:[0,1,2,4,7,9,10],where:[2,4,6,10],whether:[2,4],which:[0,1,2,4,6,8,9,10],whiteman:10,who:[2,4,10],whose:10,wider:[2,4],wildcard:[2,4],window:[2,3,4,6,8,10],wish:[1,2],within:[2,4,10],without:[0,10],workgroup:[2,4],wrap:0,write:[2,4,9],write_result:4,written:[2,4],wrong:9,yet:7,you:[0,1,2,3,4,6,9,10],your:[0,1,2,4,6,9,10],yourself:10,zero:[0,1,2,4],zone:[2,4]},titles:["NBNSProtocol Class","NetBIOS class","SMBConnection Class","SMbHandler Class","SMBProtocolFactory Class","SharedDevice Class","SharedFile Class","SMB Exceptions","Security Descriptors","Extending pysmb For Other Frameworks","Welcome to pysmb’s documentation!"],titleterms:{"class":[0,1,2,3,4,5,6],caveat:[2,4],content:10,credit:10,descript:10,descriptor:8,document:10,exampl:[2,3,4],except:7,extend:9,framework:9,indic:10,licens:10,nbnsprotocol:0,netbio:1,note:3,other:9,packag:10,pysmb:[9,10],secur:8,shareddevic:5,sharedfil:6,smb2:[2,4],smb:7,smbconnect:2,smbhandler:3,smbprotocolfactori:4,support:[2,4],tabl:10,welcom:10}})⏎ |
2722 | 2722 | class SharedDevice: |
2723 | 2723 | """ |
2724 | 2724 | Contains information about a single shared device on the remote server. |
2725 | ||
2726 | The following attributes are available: | |
2727 | ||
2728 | * name : An unicode string containing the name of the shared device | |
2729 | * comments : An unicode string containing the user description of the shared device | |
2725 | 2730 | """ |
2726 | 2731 | |
2727 | 2732 | # The following constants are taken from [MS-SRVS]: 2.2.2.4 |
2777 | 2782 | If you encounter *SharedFile* instance where its short_name attribute is empty but the filename attribute contains a short name which does not correspond |
2778 | 2783 | to any files/folders on your remote shared device, it could be that the original filename on the file/folder entry on the shared device contains |
2779 | 2784 | one of these prohibited characters: "\/[]:+|<>=;?,* (see [MS-CIFS]: 2.2.1.1.1 for more details). |
2785 | ||
2786 | The following attributes are available: | |
2787 | ||
2788 | * create_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of creation of this file resource on the remote server | |
2789 | * last_access_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last access of this file resource on the remote server | |
2790 | * last_write_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last modification of this file resource on the remote server | |
2791 | * last_attr_change_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last attribute change of this file resource on the remote server | |
2792 | * file_size : File size in number of bytes | |
2793 | * alloc_size : Total number of bytes allocated to store this file | |
2794 | * file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3 | |
2795 | * short_name : Unicode string containing the short name of this file (usually in 8.3 notation) | |
2796 | * filename : Unicode string containing the long filename of this file. Each OS has a limit to the length of this file name. On Windows, it is 256 characters. | |
2780 | 2797 | """ |
2781 | 2798 | |
2782 | 2799 | def __init__(self, create_time, last_access_time, last_write_time, last_attr_change_time, file_size, alloc_size, file_attributes, short_name, filename): |
2718 | 2718 | class SharedDevice: |
2719 | 2719 | """ |
2720 | 2720 | Contains information about a single shared device on the remote server. |
2721 | ||
2722 | The following attributes are available: | |
2723 | ||
2724 | * name : An unicode string containing the name of the shared device | |
2725 | * comments : An unicode string containing the user description of the shared device | |
2721 | 2726 | """ |
2722 | 2727 | |
2723 | 2728 | # The following constants are taken from [MS-SRVS]: 2.2.2.4 |
2773 | 2778 | If you encounter *SharedFile* instance where its short_name attribute is empty but the filename attribute contains a short name which does not correspond |
2774 | 2779 | to any files/folders on your remote shared device, it could be that the original filename on the file/folder entry on the shared device contains |
2775 | 2780 | one of these prohibited characters: "\/[]:+|<>=;?,* (see [MS-CIFS]: 2.2.1.1.1 for more details). |
2781 | ||
2782 | The following attributes are available: | |
2783 | ||
2784 | * create_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of creation of this file resource on the remote server | |
2785 | * last_access_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last access of this file resource on the remote server | |
2786 | * last_write_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last modification of this file resource on the remote server | |
2787 | * last_attr_change_time : Float value in number of seconds since 1970-01-01 00:00:00 to the time of last attribute change of this file resource on the remote server | |
2788 | * file_size : File size in number of bytes | |
2789 | * alloc_size : Total number of bytes allocated to store this file | |
2790 | * file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3 | |
2791 | * short_name : Unicode string containing the short name of this file (usually in 8.3 notation) | |
2792 | * filename : Unicode string containing the long filename of this file. Each OS has a limit to the length of this file name. On Windows, it is 256 characters. | |
2776 | 2793 | """ |
2777 | 2794 | |
2778 | 2795 | def __init__(self, create_time, last_access_time, last_write_time, last_attr_change_time, file_size, alloc_size, file_attributes, short_name, filename): |