Update docs for 1.2.0
Michael Teo
4 years ago
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: 24e4dd110b51998b070280bf87a2d415 | |
2 | config: 1131ec27c87c7e08801eecc086058da1 | |
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.25 documentation</title> | |
8 | <title>Overview: module code — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
37 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
87 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
88 | 88 | </ul> |
89 | 89 | </div> |
90 | 90 | <div class="footer" role="contentinfo"> |
91 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
91 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
92 | 92 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
93 | 93 | </div> |
94 | 94 | </body> |
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.25 documentation</title> | |
8 | <title>nmb.NetBIOS — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
226 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
230 | 230 | <div class="footer" role="contentinfo"> |
231 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
231 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
232 | 232 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
233 | 233 | </div> |
234 | 234 | </body> |
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.25 documentation</title> | |
8 | <title>nmb.NetBIOSProtocol — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
218 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
222 | 222 | <div class="footer" role="contentinfo"> |
223 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
223 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
224 | 224 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
225 | 225 | </div> |
226 | 226 | </body> |
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.25 documentation</title> | |
8 | <title>smb.SMBConnection — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
86 | 86 | <span class="sd"> Create a new SMBConnection instance.</span> |
87 | 87 | |
88 | 88 | <span class="sd"> *username* and *password* are the user credentials required to authenticate the underlying SMB connection with the remote server.</span> |
89 | <span class="sd"> *password* can be a string or a callable returning a string.</span> | |
89 | 90 | <span class="sd"> File operations can only be proceeded after the connection has been authenticated successfully.</span> |
90 | 91 | |
91 | 92 | <span class="sd"> Note that you need to call *connect* method to actually establish the SMB connection to the remote server and perform authentication.</span> |
137 | 138 | <span class="n">total_sent</span> <span class="o">=</span> <span class="n">total_sent</span> <span class="o">+</span> <span class="n">sent</span> |
138 | 139 | |
139 | 140 | <span class="c1">#</span> |
141 | <span class="c1"># Support for "with" context</span> | |
142 | <span class="c1">#</span> | |
143 | <span class="k">def</span> <span class="nf">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | |
144 | <span class="k">return</span> <span class="bp">self</span> | |
145 | ||
146 | <span class="k">def</span> <span class="nf">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span> | |
147 | <span class="bp">self</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> | |
148 | ||
149 | <span class="c1">#</span> | |
140 | 150 | <span class="c1"># Misc Properties</span> |
141 | 151 | <span class="c1">#</span> |
142 | 152 | |
229 | 239 | <span class="sd"> Note that the default search parameter will query for all read-only (SMB_FILE_ATTRIBUTE_READONLY), hidden (SMB_FILE_ATTRIBUTE_HIDDEN),</span> |
230 | 240 | <span class="sd"> system (SMB_FILE_ATTRIBUTE_SYSTEM), archive (SMB_FILE_ATTRIBUTE_ARCHIVE), normal (SMB_FILE_ATTRIBUTE_INCL_NORMAL) files</span> |
231 | 241 | <span class="sd"> and directories (SMB_FILE_ATTRIBUTE_DIRECTORY).</span> |
232 | <span class="sd"> If you do need to include "normal" files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant.</span> | |
242 | <span class="sd"> If you do not need to include "normal" files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant.</span> | |
233 | 243 | <span class="sd"> SMB_FILE_ATTRIBUTE_NORMAL should be used by itself and not be used with other bit constants.</span> |
234 | 244 | |
235 | 245 | <span class="sd"> :param string/unicode service_name: the name of the shared folder for the *path*</span> |
454 | 464 | |
455 | 465 | <span class="k">return</span> <span class="n">results</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span></div> |
456 | 466 | |
457 | <div class="viewcode-block" id="SMBConnection.deleteFiles"><a class="viewcode-back" href="../../api/smb_SMBConnection.html#smb.SMBConnection.SMBConnection.deleteFiles">[docs]</a> <span class="k">def</span> <span class="nf">deleteFiles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">):</span> | |
467 | <div class="viewcode-block" id="SMBConnection.deleteFiles"><a class="viewcode-back" href="../../api/smb_SMBConnection.html#smb.SMBConnection.SMBConnection.deleteFiles">[docs]</a> <span class="k">def</span> <span class="nf">deleteFiles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span> <span class="o">=</span> <span class="bp">False</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">):</span> | |
458 | 468 | <span class="sd">"""</span> |
459 | 469 | <span class="sd"> Delete one or more regular files. It supports the use of wildcards in file names, allowing for deletion of multiple files in a single request.</span> |
470 | ||
471 | <span class="sd"> If delete_matching_folders is True, immediate sub-folders that match the path_file_pattern will be deleted recursively.</span> | |
460 | 472 | |
461 | 473 | <span class="sd"> :param string/unicode service_name: Contains the name of the shared folder.</span> |
462 | 474 | <span class="sd"> :param string/unicode path_file_pattern: The pathname of the file(s) to be deleted, relative to the service_name.</span> |
476 | 488 | |
477 | 489 | <span class="bp">self</span><span class="o">.</span><span class="n">is_busy</span> <span class="o">=</span> <span class="bp">True</span> |
478 | 490 | <span class="k">try</span><span class="p">:</span> |
479 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">cb</span><span class="p">,</span> <span class="n">eb</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span><span class="p">)</span> | |
491 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span><span class="p">,</span> <span class="n">cb</span><span class="p">,</span> <span class="n">eb</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span><span class="p">)</span> | |
480 | 492 | <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_busy</span><span class="p">:</span> |
481 | 493 | <span class="bp">self</span><span class="o">.</span><span class="n">_pollForNetBIOSPacket</span><span class="p">(</span><span class="n">timeout</span><span class="p">)</span> |
482 | 494 | <span class="k">finally</span><span class="p">:</span> |
700 | 712 | <li class="right" > |
701 | 713 | <a href="../../py-modindex.html" title="Python Module Index" |
702 | 714 | >modules</a> |</li> |
703 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.25 documentation</a> »</li> | |
715 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 documentation</a> »</li> | |
704 | 716 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
705 | 717 | </ul> |
706 | 718 | </div> |
707 | 719 | <div class="footer" role="contentinfo"> |
708 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
720 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
709 | 721 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
710 | 722 | </div> |
711 | 723 | </body> |
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.25 documentation</title> | |
8 | <title>smb.SMBProtocol — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
253 | 253 | <span class="sd"> Note that the default search parameter will query for all read-only (SMB_FILE_ATTRIBUTE_READONLY), hidden (SMB_FILE_ATTRIBUTE_HIDDEN),</span> |
254 | 254 | <span class="sd"> system (SMB_FILE_ATTRIBUTE_SYSTEM), archive (SMB_FILE_ATTRIBUTE_ARCHIVE), normal (SMB_FILE_ATTRIBUTE_INCL_NORMAL) files</span> |
255 | 255 | <span class="sd"> and directories (SMB_FILE_ATTRIBUTE_DIRECTORY).</span> |
256 | <span class="sd"> If you do need to include "normal" files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant.</span> | |
256 | <span class="sd"> If you do not need to include "normal" files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant.</span> | |
257 | 257 | <span class="sd"> SMB_FILE_ATTRIBUTE_NORMAL should be used by itself and not be used with other bit constants.</span> |
258 | 258 | |
259 | 259 | <span class="sd"> :param string/unicode service_name: the name of the shared folder for the *path*</span> |
488 | 488 | <li class="right" > |
489 | 489 | <a href="../../py-modindex.html" title="Python Module Index" |
490 | 490 | >modules</a> |</li> |
491 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.25 documentation</a> »</li> | |
491 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 documentation</a> »</li> | |
492 | 492 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
493 | 493 | </ul> |
494 | 494 | </div> |
495 | 495 | <div class="footer" role="contentinfo"> |
496 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
496 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
497 | 497 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
498 | 498 | </div> |
499 | 499 | </body> |
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.25 documentation</title> | |
8 | <title>smb.base — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
125 | 125 | <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">username</span><span class="p">,</span> <span class="n">password</span><span class="p">,</span> <span class="n">my_name</span><span class="p">,</span> <span class="n">remote_name</span><span class="p">,</span> <span class="n">domain</span> <span class="o">=</span> <span class="s1">''</span><span class="p">,</span> <span class="n">use_ntlm_v2</span> <span class="o">=</span> <span class="bp">True</span><span class="p">,</span> <span class="n">sign_options</span> <span class="o">=</span> <span class="n">SIGN_WHEN_REQUIRED</span><span class="p">,</span> <span class="n">is_direct_tcp</span> <span class="o">=</span> <span class="bp">False</span><span class="p">):</span> |
126 | 126 | <span class="n">NMBSession</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">my_name</span><span class="p">,</span> <span class="n">remote_name</span><span class="p">,</span> <span class="n">is_direct_tcp</span> <span class="o">=</span> <span class="n">is_direct_tcp</span><span class="p">)</span> |
127 | 127 | <span class="bp">self</span><span class="o">.</span><span class="n">username</span> <span class="o">=</span> <span class="n">_convert_to_unicode</span><span class="p">(</span><span class="n">username</span><span class="p">)</span> |
128 | <span class="bp">self</span><span class="o">.</span><span class="n">password</span> <span class="o">=</span> <span class="n">_convert_to_unicode</span><span class="p">(</span><span class="n">password</span><span class="p">)</span> | |
128 | <span class="bp">self</span><span class="o">.</span><span class="n">_password</span> <span class="o">=</span> <span class="n">password</span> | |
129 | 129 | <span class="bp">self</span><span class="o">.</span><span class="n">domain</span> <span class="o">=</span> <span class="n">_convert_to_unicode</span><span class="p">(</span><span class="n">domain</span><span class="p">)</span> |
130 | 130 | <span class="bp">self</span><span class="o">.</span><span class="n">sign_options</span> <span class="o">=</span> <span class="n">sign_options</span> |
131 | 131 | <span class="bp">self</span><span class="o">.</span><span class="n">is_direct_tcp</span> <span class="o">=</span> <span class="n">is_direct_tcp</span> |
171 | 171 | <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">use_ntlm_v2</span> <span class="ow">and</span> <span class="s1">'v2'</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">'v1'</span><span class="p">,</span> |
172 | 172 | <span class="p">(</span><span class="n">SUPPORT_EXTENDED_SECURITY</span> <span class="ow">and</span> <span class="s1">'with'</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">'without'</span><span class="p">)</span> |
173 | 173 | |
174 | <span class="nd">@property</span> | |
175 | <span class="k">def</span> <span class="nf">password</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> | |
176 | <span class="n">password</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_password</span><span class="p">()</span> <span class="k">if</span> <span class="nb">callable</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_password</span><span class="p">)</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_password</span> | |
177 | <span class="k">return</span> <span class="n">_convert_to_unicode</span><span class="p">(</span><span class="n">password</span><span class="p">)</span> | |
174 | 178 | |
175 | 179 | <span class="c1">#</span> |
176 | 180 | <span class="c1"># NMBSession Methods</span> |
325 | 329 | <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="n">securityblob</span><span class="o">.</span><span class="n">RESULT_ACCEPT_COMPLETED</span><span class="p">:</span> |
326 | 330 | <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span> <span class="o">=</span> <span class="bp">True</span> |
327 | 331 | <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) successful!'</span><span class="p">)</span> |
332 | ||
333 | <span class="c1"># [MS-SMB2]: 3.2.5.3.1</span> | |
334 | <span class="c1"># If the security subsystem indicates that the session was established by an anonymous user,</span> | |
335 | <span class="c1"># Session.SigningRequired MUST be set to FALSE.</span> | |
336 | <span class="c1"># If the SMB2_SESSION_FLAG_IS_GUEST bit is set in the SessionFlags field of the</span> | |
337 | <span class="c1"># SMB2 SESSION_SETUP Response and if Session.SigningRequired is TRUE, this indicates a SESSION_SETUP</span> | |
338 | <span class="c1"># failure and the connection MUST be terminated. If the SMB2_SESSION_FLAG_IS_GUEST bit is set in the SessionFlags</span> | |
339 | <span class="c1"># field of the SMB2 SESSION_SETUP Response and if RequireMessageSigning is FALSE, Session.SigningRequired</span> | |
340 | <span class="c1"># MUST be set to FALSE.</span> | |
341 | <span class="k">if</span> <span class="n">message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">isGuestSession</span> <span class="ow">or</span> <span class="n">message</span><span class="o">.</span><span class="n">payload</span><span class="o">.</span><span class="n">isAnonymousSession</span><span class="p">:</span> | |
342 | <span class="bp">self</span><span class="o">.</span><span class="n">is_signing_active</span> <span class="o">=</span> <span class="bp">False</span> | |
343 | <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">'Signing disabled because session is guest/anonymous'</span><span class="p">)</span> | |
344 | ||
328 | 345 | <span class="bp">self</span><span class="o">.</span><span class="n">onAuthOK</span><span class="p">()</span> |
329 | 346 | <span class="k">else</span><span class="p">:</span> |
330 | 347 | <span class="k">raise</span> <span class="n">ProtocolError</span><span class="p">(</span><span class="s1">'SMB2_COM_SESSION_SETUP status is 0 but security blob negResult value is </span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="n">result</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> |
686 | 703 | <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> |
687 | 704 | <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> |
688 | 705 | <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> |
706 | <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">0xC0000034</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_OBJECT_NAME_INVALID</span> | |
707 | <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">: Path not found'</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> | |
689 | 708 | <span class="k">else</span><span class="p">:</span> |
690 | 709 | <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> |
691 | 710 | |
692 | 711 | <span class="k">def</span> <span class="nf">sendQuery</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_buf</span><span class="p">):</span> |
693 | 712 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2QueryDirectoryRequest</span><span class="p">(</span><span class="n">fid</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> |
694 | <span class="n">info_class</span> <span class="o">=</span> <span class="mh">0x03</span><span class="p">,</span> <span class="c1"># FileBothDirectoryInformation</span> | |
713 | <span class="n">info_class</span> <span class="o">=</span> <span class="mh">0x25</span><span class="p">,</span> <span class="c1"># FileIdBothDirectoryInformation</span> | |
695 | 714 | <span class="n">flags</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> |
696 | 715 | <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> |
697 | 716 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> |
704 | 723 | <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> |
705 | 724 | <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> |
706 | 725 | <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> |
726 | <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">0xC000000F</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_NO_SUCH_FILE</span> | |
727 | <span class="c1"># If there are no matching files, we just treat as success instead of failing</span> | |
728 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> | |
707 | 729 | <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> |
708 | 730 | <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 | 731 | <span class="k">else</span><span class="p">:</span> |
710 | 732 | <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> |
711 | 733 | |
712 | 734 | <span class="k">def</span> <span class="nf">decodeQueryStruct</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">):</span> |
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> | |
714 | <span class="n">info_format</span> <span class="o">=</span> <span class="s1">'<IIQQQQQQIIIBB24s'</span> | |
735 | <span class="c1"># FileIdBothDirectoryInformation structure. See [MS-SMB]: 2.2.8.1.3 and [MS-FSCC]: 2.4.17</span> | |
736 | <span class="n">info_format</span> <span class="o">=</span> <span class="s1">'<IIQQQQQQIIIBB24sHQ'</span> | |
715 | 737 | <span class="n">info_size</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">calcsize</span><span class="p">(</span><span class="n">info_format</span><span class="p">)</span> |
716 | 738 | |
717 | 739 | <span class="n">data_length</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">data_bytes</span><span class="p">)</span> |
723 | 745 | <span class="n">next_offset</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> \ |
724 | 746 | <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> \ |
725 | 747 | <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">filename_length</span><span class="p">,</span> <span class="n">ea_size</span><span class="p">,</span> \ |
726 | <span class="n">short_name_length</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">short_name</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">info_format</span><span class="p">,</span> <span class="n">data_bytes</span><span class="p">[</span><span class="n">offset</span><span class="p">:</span><span class="n">offset</span><span class="o">+</span><span class="n">info_size</span><span class="p">])</span> | |
748 | <span class="n">short_name_length</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">short_name</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">file_id</span> <span class="o">=</span> <span class="n">struct</span><span class="o">.</span><span class="n">unpack</span><span class="p">(</span><span class="n">info_format</span><span class="p">,</span> <span class="n">data_bytes</span><span class="p">[</span><span class="n">offset</span><span class="p">:</span><span class="n">offset</span><span class="o">+</span><span class="n">info_size</span><span class="p">])</span> | |
727 | 749 | |
728 | 750 | <span class="n">offset2</span> <span class="o">=</span> <span class="n">offset</span> <span class="o">+</span> <span class="n">info_size</span> |
729 | 751 | <span class="k">if</span> <span class="n">offset2</span> <span class="o">+</span> <span class="n">filename_length</span> <span class="o">></span> <span class="n">data_length</span><span class="p">:</span> |
740 | 762 | <span class="k">if</span> <span class="n">accept_result</span><span class="p">:</span> |
741 | 763 | <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> |
742 | 764 | <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> |
743 | <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> | |
765 | <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> <span class="n">file_id</span><span class="p">))</span> | |
744 | 766 | |
745 | 767 | <span class="k">if</span> <span class="n">next_offset</span><span class="p">:</span> |
746 | 768 | <span class="n">offset</span> <span class="o">+=</span> <span class="n">next_offset</span> |
759 | 781 | <span class="k">if</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'results'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> |
760 | 782 | <span class="n">callback</span><span class="p">(</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'results'</span><span class="p">])</span> |
761 | 783 | <span class="k">elif</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'error'</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span> |
762 | <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">: Query failed with errorcode 0x</span><span class="si">%08x</span><span class="s1">'</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">kwargs</span><span class="p">[</span><span class="s1">'error'</span><span class="p">]</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
784 | <span class="k">if</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'error'</span><span class="p">]</span> <span class="o">==</span> <span class="mh">0xC000000F</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_NO_SUCH_FILE</span> | |
785 | <span class="c1"># Remote server returns STATUS_NO_SUCH_FILE error so we assume that the search returns no matching files</span> | |
786 | <span class="n">callback</span><span class="p">([</span> <span class="p">])</span> | |
787 | <span class="k">else</span><span class="p">:</span> | |
788 | <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">: Query failed with errorcode 0x</span><span class="si">%08x</span><span class="s1">'</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">kwargs</span><span class="p">[</span><span class="s1">'error'</span><span class="p">]</span> <span class="p">),</span> <span class="n">messages_history</span><span class="p">))</span> | |
763 | 789 | |
764 | 790 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> |
765 | 791 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1165 | 1191 | <span class="n">sendCreate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> |
1166 | 1192 | |
1167 | 1193 | |
1168 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</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> | |
1194 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</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> | |
1169 | 1195 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> |
1170 | 1196 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> |
1171 | 1197 | |
1172 | 1198 | <span class="n">expiry_time</span> <span class="o">=</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> |
1199 | <span class="n">pattern</span> <span class="o">=</span> <span class="s1">'*'</span> | |
1173 | 1200 | <span class="n">path</span> <span class="o">=</span> <span class="n">path_file_pattern</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="se">\\</span><span class="s1">'</span><span class="p">)</span> |
1174 | 1201 | <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">):</span> |
1175 | 1202 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> |
1176 | 1203 | <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">):</span> |
1177 | 1204 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> |
1205 | <span class="k">else</span><span class="p">:</span> | |
1206 | <span class="n">path_components</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
1207 | <span class="k">if</span> <span class="n">path_components</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">find</span><span class="p">(</span><span class="s1">'*'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span> <span class="ow">or</span> <span class="n">path_components</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">find</span><span class="p">(</span><span class="s1">'?'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> | |
1208 | <span class="n">path</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path_components</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> | |
1209 | <span class="n">pattern</span> <span class="o">=</span> <span class="n">path_components</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> | |
1210 | <span class="n">messages_history</span><span class="p">,</span> <span class="n">files_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span> <span class="p">[</span> <span class="p">]</span> | |
1211 | ||
1212 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> | |
1213 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
1214 | <span class="n">p</span><span class="p">,</span> <span class="n">filename</span> <span class="o">=</span> <span class="n">files_queue</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> | |
1215 | <span class="k">if</span> <span class="n">filename</span><span class="p">:</span> | |
1216 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB2__del</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">],</span> <span class="n">p</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span> <span class="o">+</span> <span class="n">filename</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">timeout</span><span class="p">)</span> | |
1217 | <span class="k">else</span><span class="p">:</span> | |
1218 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteDirectory_SMB2</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">p</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">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">)</span> | |
1219 | <span class="k">else</span><span class="p">:</span> | |
1220 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> | |
1221 | ||
1222 | <span class="k">def</span> <span class="nf">listCB</span><span class="p">(</span><span class="n">files_list</span><span class="p">):</span> | |
1223 | <span class="n">files_queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">files_list</span><span class="p">)</span> | |
1224 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
1225 | ||
1226 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
1227 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
1228 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
1229 | <span class="k">if</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> | |
1230 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
1231 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB2__list</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> | |
1232 | <span class="k">else</span><span class="p">:</span> | |
1233 | <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 connect to shared device'</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> | |
1234 | ||
1235 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2TreeConnectRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">)))</span> | |
1236 | <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> | |
1237 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
1238 | <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> | |
1239 | <span class="k">else</span><span class="p">:</span> | |
1240 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB2__list</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> | |
1241 | ||
1242 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB2__list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</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> | |
1243 | <span class="n">folder_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
1244 | <span class="n">files_list</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
1245 | <span class="n">current_path</span> <span class="o">=</span> <span class="p">[</span> <span class="n">path</span> <span class="p">]</span> | |
1246 | <span class="n">search</span> <span class="o">=</span> <span class="n">SMB_FILE_ATTRIBUTE_READONLY</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_HIDDEN</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_SYSTEM</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_DIRECTORY</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_ARCHIVE</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_INCL_NORMAL</span> | |
1247 | ||
1248 | <span class="k">def</span> <span class="nf">listCB</span><span class="p">(</span><span class="n">results</span><span class="p">):</span> | |
1249 | <span class="n">files</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
1250 | <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">filename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span> <span class="s1">'.'</span><span class="p">,</span> <span class="s1">'..'</span> <span class="p">],</span> <span class="n">results</span><span class="p">):</span> | |
1251 | <span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">isDirectory</span><span class="p">:</span> | |
1252 | <span class="k">if</span> <span class="n">delete_matching_folders</span><span class="p">:</span> | |
1253 | <span class="n">folder_queue</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="o">+</span><span class="n">f</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span> | |
1254 | <span class="k">else</span><span class="p">:</span> | |
1255 | <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">f</span><span class="o">.</span><span class="n">filename</span> <span class="p">))</span> | |
1256 | <span class="k">if</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">!=</span><span class="n">path</span> <span class="ow">and</span> <span class="n">delete_matching_folders</span><span class="p">:</span> | |
1257 | <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="bp">None</span> <span class="p">))</span> | |
1258 | ||
1259 | <span class="k">if</span> <span class="n">files</span><span class="p">:</span> | |
1260 | <span class="n">files_list</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="o">=</span> <span class="n">files</span> | |
1261 | ||
1262 | <span class="k">if</span> <span class="n">folder_queue</span><span class="p">:</span> | |
1263 | <span class="n">p</span> <span class="o">=</span> <span class="n">folder_queue</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> | |
1264 | <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span> | |
1265 | <span class="bp">self</span><span class="o">.</span><span class="n">_listPath_SMB2</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">search</span> <span class="o">=</span> <span class="n">search</span><span class="p">,</span> <span class="n">pattern</span> <span class="o">=</span> <span class="s1">'*'</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">)</span> | |
1266 | <span class="k">else</span><span class="p">:</span> | |
1267 | <span class="n">callback</span><span class="p">(</span><span class="n">files_list</span><span class="p">)</span> | |
1268 | ||
1269 | <span class="bp">self</span><span class="o">.</span><span class="n">_listPath_SMB2</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">search</span> <span class="o">=</span> <span class="n">search</span><span class="p">,</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span><span class="p">)</span> | |
1270 | ||
1271 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB2__del</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">tid</span><span class="p">,</span> <span class="n">path</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> | |
1178 | 1272 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> |
1179 | 1273 | |
1180 | 1274 | <span class="k">def</span> <span class="nf">sendCreate</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> |
1205 | 1299 | <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> |
1206 | 1300 | <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> |
1207 | 1301 | <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> |
1302 | <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">0xc0000034</span><span class="p">:</span> <span class="c1"># STATUS_OBJECT_NAME_NOT_FOUND</span> | |
1303 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
1208 | 1304 | <span class="k">else</span><span class="p">:</span> |
1209 | 1305 | <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> |
1210 | 1306 | |
1236 | 1332 | |
1237 | 1333 | <span class="k">def</span> <span class="nf">closeCB</span><span class="p">(</span><span class="n">close_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
1238 | 1334 | <span class="k">if</span> <span class="n">kwargs</span><span class="p">[</span><span class="s1">'status'</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
1239 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> | |
1335 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
1240 | 1336 | <span class="k">else</span><span class="p">:</span> |
1241 | 1337 | <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">: Delete 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> |
1242 | 1338 | |
1243 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
1244 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
1245 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
1246 | <span class="k">if</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> | |
1247 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
1248 | <span class="n">sendCreate</span><span class="p">(</span><span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span><span class="p">)</span> | |
1249 | <span class="k">else</span><span class="p">:</span> | |
1250 | <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 connect to shared device'</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> | |
1251 | ||
1252 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMB2Message</span><span class="p">(</span><span class="n">SMB2TreeConnectRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">)))</span> | |
1253 | <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> | |
1254 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
1255 | <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> | |
1256 | <span class="k">else</span><span class="p">:</span> | |
1257 | <span class="n">sendCreate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> | |
1339 | <span class="n">sendCreate</span><span class="p">(</span><span class="n">tid</span><span class="p">)</span> | |
1258 | 1340 | |
1259 | 1341 | <span class="k">def</span> <span class="nf">_resetFileAttributes_SMB2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</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> |
1260 | 1342 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> |
2210 | 2292 | <span class="k">else</span><span class="p">:</span> |
2211 | 2293 | <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> |
2212 | 2294 | <span class="k">else</span><span class="p">:</span> |
2213 | <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> | |
2295 | <span class="k">if</span> <span class="n">find_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">0xC000000F</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_NO_SUCH_FILE</span> | |
2296 | <span class="c1"># Remote server returns STATUS_NO_SUCH_FILE error so we assume that the search returns no matching files</span> | |
2297 | <span class="n">callback</span><span class="p">([</span> <span class="p">])</span> | |
2298 | <span class="k">else</span><span class="p">:</span> | |
2299 | <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> | |
2214 | 2300 | |
2215 | 2301 | <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> |
2216 | 2302 | <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> |
2539 | 2625 | <span class="k">else</span><span class="p">:</span> |
2540 | 2626 | <span class="n">sendOpen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> |
2541 | 2627 | |
2542 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</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> | |
2628 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</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> | |
2543 | 2629 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> |
2544 | 2630 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> |
2545 | 2631 | |
2632 | <span class="n">expiry_time</span> <span class="o">=</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> | |
2633 | <span class="n">pattern</span> <span class="o">=</span> <span class="s1">'*'</span> | |
2546 | 2634 | <span class="n">path</span> <span class="o">=</span> <span class="n">path_file_pattern</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="se">\\</span><span class="s1">'</span><span class="p">)</span> |
2635 | <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">):</span> | |
2636 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> | |
2637 | <span class="k">if</span> <span class="n">path</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">):</span> | |
2638 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> | |
2639 | <span class="k">else</span><span class="p">:</span> | |
2640 | <span class="n">path_components</span> <span class="o">=</span> <span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
2641 | <span class="k">if</span> <span class="n">path_components</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">find</span><span class="p">(</span><span class="s1">'*'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span> <span class="ow">or</span> <span class="n">path_components</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">find</span><span class="p">(</span><span class="s1">'?'</span><span class="p">)</span> <span class="o">></span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span> | |
2642 | <span class="n">path</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path_components</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> | |
2643 | <span class="n">pattern</span> <span class="o">=</span> <span class="n">path_components</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> | |
2644 | <span class="n">messages_history</span><span class="p">,</span> <span class="n">files_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">],</span> <span class="p">[</span> <span class="p">]</span> | |
2645 | ||
2646 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> | |
2647 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
2648 | <span class="n">p</span><span class="p">,</span> <span class="n">filename</span> <span class="o">=</span> <span class="n">files_queue</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> | |
2649 | <span class="k">if</span> <span class="n">filename</span><span class="p">:</span> | |
2650 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB1__del</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">],</span> <span class="n">p</span> <span class="o">+</span> <span class="s1">'</span><span class="se">\\</span><span class="s1">'</span> <span class="o">+</span> <span class="n">filename</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">timeout</span><span class="p">)</span> | |
2651 | <span class="k">else</span><span class="p">:</span> | |
2652 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteDirectory_SMB1</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">p</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">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">)</span> | |
2653 | <span class="k">else</span><span class="p">:</span> | |
2654 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> | |
2655 | ||
2656 | <span class="k">def</span> <span class="nf">listCB</span><span class="p">(</span><span class="n">files_list</span><span class="p">):</span> | |
2657 | <span class="n">files_queue</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">files_list</span><span class="p">)</span> | |
2658 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
2659 | ||
2660 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
2661 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
2662 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
2663 | <span class="k">if</span> <span class="ow">not</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2664 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
2665 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB1__list</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> | |
2666 | <span class="k">else</span><span class="p">:</span> | |
2667 | <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 connect to shared device'</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> | |
2668 | ||
2669 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTreeConnectAndxRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">SERVICE_ANY</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> | |
2670 | <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> | |
2671 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
2672 | <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> | |
2673 | <span class="k">else</span><span class="p">:</span> | |
2674 | <span class="bp">self</span><span class="o">.</span><span class="n">_deleteFiles_SMB1__list</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">timeout</span><span class="p">)</span> | |
2675 | ||
2676 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB1__list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">delete_matching_folders</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> | |
2677 | <span class="n">folder_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2678 | <span class="n">files_list</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2679 | <span class="n">current_path</span> <span class="o">=</span> <span class="p">[</span> <span class="n">path</span> <span class="p">]</span> | |
2680 | <span class="n">search</span> <span class="o">=</span> <span class="n">SMB_FILE_ATTRIBUTE_READONLY</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_HIDDEN</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_SYSTEM</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_DIRECTORY</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_ARCHIVE</span> <span class="o">|</span> <span class="n">SMB_FILE_ATTRIBUTE_INCL_NORMAL</span> | |
2681 | ||
2682 | <span class="k">def</span> <span class="nf">listCB</span><span class="p">(</span><span class="n">results</span><span class="p">):</span> | |
2683 | <span class="n">files</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2684 | <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">filename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span> <span class="s1">'.'</span><span class="p">,</span> <span class="s1">'..'</span> <span class="p">],</span> <span class="n">results</span><span class="p">):</span> | |
2685 | <span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">isDirectory</span><span class="p">:</span> | |
2686 | <span class="k">if</span> <span class="n">delete_matching_folders</span><span class="p">:</span> | |
2687 | <span class="n">folder_queue</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">+</span><span class="s1">'</span><span class="se">\\</span><span class="s1">'</span><span class="o">+</span><span class="n">f</span><span class="o">.</span><span class="n">filename</span><span class="p">)</span> | |
2688 | <span class="k">else</span><span class="p">:</span> | |
2689 | <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">f</span><span class="o">.</span><span class="n">filename</span> <span class="p">))</span> | |
2690 | <span class="k">if</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">!=</span><span class="n">path</span> <span class="ow">and</span> <span class="n">delete_matching_folders</span><span class="p">:</span> | |
2691 | <span class="n">files</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="bp">None</span> <span class="p">))</span> | |
2692 | ||
2693 | <span class="k">if</span> <span class="n">files</span><span class="p">:</span> | |
2694 | <span class="n">files_list</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="o">=</span> <span class="n">files</span> | |
2695 | ||
2696 | <span class="k">if</span> <span class="n">folder_queue</span><span class="p">:</span> | |
2697 | <span class="n">p</span> <span class="o">=</span> <span class="n">folder_queue</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> | |
2698 | <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">p</span> | |
2699 | <span class="bp">self</span><span class="o">.</span><span class="n">_listPath_SMB1</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">current_path</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">search</span> <span class="o">=</span> <span class="n">search</span><span class="p">,</span> <span class="n">pattern</span> <span class="o">=</span> <span class="s1">'*'</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="mi">30</span><span class="p">)</span> | |
2700 | <span class="k">else</span><span class="p">:</span> | |
2701 | <span class="n">callback</span><span class="p">(</span><span class="n">files_list</span><span class="p">)</span> | |
2702 | ||
2703 | <span class="bp">self</span><span class="o">.</span><span class="n">_listPath_SMB1</span><span class="p">(</span><span class="n">service_name</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">listCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">search</span> <span class="o">=</span> <span class="n">search</span><span class="p">,</span> <span class="n">pattern</span> <span class="o">=</span> <span class="n">pattern</span><span class="p">,</span> <span class="n">timeout</span> <span class="o">=</span> <span class="n">timeout</span><span class="p">)</span> | |
2704 | ||
2705 | ||
2706 | <span class="k">def</span> <span class="nf">_deleteFiles_SMB1__del</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">tid</span><span class="p">,</span> <span class="n">path</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> | |
2547 | 2707 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> |
2548 | 2708 | |
2549 | 2709 | <span class="k">def</span> <span class="nf">sendDelete</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> |
2557 | 2717 | <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> |
2558 | 2718 | <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> |
2559 | 2719 | <span class="k">if</span> <span class="ow">not</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> |
2720 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
2721 | <span class="k">elif</span> <span class="n">delete_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">0xC000000F</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_NO_SUCH_FILE</span> | |
2722 | <span class="c1"># If there are no matching files, we just treat as success instead of failing</span> | |
2560 | 2723 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> |
2561 | <span class="k">else</span><span class="p">:</span> | |
2562 | <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">: Delete 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> | |
2724 | <span class="k">elif</span> <span class="n">delete_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">0xC00000BA</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_FILE_IS_A_DIRECTORY</span> | |
2725 | <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">: Cannot delete a folder. You may try appending "/*" to your path parameter, or specify delete_matching_folders in your function call.'</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> | |
2726 | <span class="k">elif</span> <span class="n">delete_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">0xC0000034</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_OBJECT_NAME_INVALID</span> | |
2727 | <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">: Path not found'</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> | |
2728 | <span class="k">else</span><span class="p">:</span> | |
2729 | <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">: Delete 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> | |
2730 | ||
2731 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">tid</span><span class="p">)</span> | |
2732 | ||
2733 | <span class="k">def</span> <span class="nf">_resetFileAttributes_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</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> | |
2734 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'resetFileAttributes is not yet implemented for SMB1'</span><span class="p">)</span> | |
2735 | ||
2736 | <span class="k">def</span> <span class="nf">_createDirectory_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</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> | |
2737 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> | |
2738 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> | |
2739 | ||
2740 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</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="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
2741 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2742 | ||
2743 | <span class="k">def</span> <span class="nf">sendCreate</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> | |
2744 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComCreateDirectoryRequest</span><span class="p">(</span><span class="n">path</span><span class="p">))</span> | |
2745 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
2746 | <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> | |
2747 | <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> | |
2748 | <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> | |
2749 | ||
2750 | <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> | |
2751 | <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> | |
2752 | <span class="k">if</span> <span class="ow">not</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2753 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
2754 | <span class="k">else</span><span class="p">:</span> | |
2755 | <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> | |
2756 | ||
2757 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
2758 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
2759 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
2760 | <span class="k">if</span> <span class="ow">not</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2761 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
2762 | <span class="n">sendCreate</span><span class="p">(</span><span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span><span class="p">)</span> | |
2763 | <span class="k">else</span><span class="p">:</span> | |
2764 | <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">: Unable to connect to shared device'</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> | |
2765 | ||
2766 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTreeConnectAndxRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">SERVICE_ANY</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> | |
2767 | <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> | |
2768 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
2769 | <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> | |
2770 | <span class="k">else</span><span class="p">:</span> | |
2771 | <span class="n">sendCreate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> | |
2772 | ||
2773 | <span class="k">def</span> <span class="nf">_deleteDirectory_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</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> | |
2774 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> | |
2775 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> | |
2776 | ||
2777 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</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="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
2778 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2779 | ||
2780 | <span class="k">def</span> <span class="nf">sendDelete</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> | |
2781 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComDeleteDirectoryRequest</span><span class="p">(</span><span class="n">path</span><span class="p">))</span> | |
2782 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
2783 | <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> | |
2784 | <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> | |
2785 | <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> | |
2786 | ||
2787 | <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> | |
2788 | <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> | |
2789 | <span class="k">if</span> <span class="ow">not</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2790 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
2791 | <span class="k">else</span><span class="p">:</span> | |
2792 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to delete directory </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Delete 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> | |
2563 | 2793 | |
2564 | 2794 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> |
2565 | 2795 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> |
2568 | 2798 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> |
2569 | 2799 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span><span class="p">)</span> |
2570 | 2800 | <span class="k">else</span><span class="p">:</span> |
2571 | <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 connect to shared device'</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> | |
2572 | ||
2573 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTreeConnectAndxRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">SERVICE_ANY</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> | |
2574 | <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> | |
2575 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
2576 | <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> | |
2577 | <span class="k">else</span><span class="p">:</span> | |
2578 | <span class="n">sendDelete</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> | |
2579 | ||
2580 | <span class="k">def</span> <span class="nf">_resetFileAttributes_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path_file_pattern</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> | |
2581 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'resetFileAttributes is not yet implemented for SMB1'</span><span class="p">)</span> | |
2582 | ||
2583 | <span class="k">def</span> <span class="nf">_createDirectory_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</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> | |
2584 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> | |
2585 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> | |
2586 | ||
2587 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</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="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
2588 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2589 | ||
2590 | <span class="k">def</span> <span class="nf">sendCreate</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> | |
2591 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComCreateDirectoryRequest</span><span class="p">(</span><span class="n">path</span><span class="p">))</span> | |
2592 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
2593 | <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> | |
2594 | <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> | |
2595 | <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> | |
2596 | ||
2597 | <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> | |
2598 | <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> | |
2599 | <span class="k">if</span> <span class="ow">not</span> <span class="n">create_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2600 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
2601 | <span class="k">else</span><span class="p">:</span> | |
2602 | <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> | |
2603 | ||
2604 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
2605 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
2606 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
2607 | <span class="k">if</span> <span class="ow">not</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2608 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
2609 | <span class="n">sendCreate</span><span class="p">(</span><span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span><span class="p">)</span> | |
2610 | <span class="k">else</span><span class="p">:</span> | |
2611 | <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">: Unable to connect to shared device'</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> | |
2612 | ||
2613 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTreeConnectAndxRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">SERVICE_ANY</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> | |
2614 | <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> | |
2615 | <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">connectCB</span><span class="p">,</span> <span class="n">errback</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">service_name</span><span class="p">)</span> | |
2616 | <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> | |
2617 | <span class="k">else</span><span class="p">:</span> | |
2618 | <span class="n">sendCreate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">])</span> | |
2619 | ||
2620 | <span class="k">def</span> <span class="nf">_deleteDirectory_SMB1</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service_name</span><span class="p">,</span> <span class="n">path</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> | |
2621 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">has_authenticated</span><span class="p">:</span> | |
2622 | <span class="k">raise</span> <span class="n">NotReadyError</span><span class="p">(</span><span class="s1">'SMB connection not authenticated'</span><span class="p">)</span> | |
2623 | ||
2624 | <span class="n">path</span> <span class="o">=</span> <span class="n">path</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="se">\\</span><span class="s1">'</span><span class="p">)</span> | |
2625 | <span class="n">messages_history</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> | |
2626 | ||
2627 | <span class="k">def</span> <span class="nf">sendDelete</span><span class="p">(</span><span class="n">tid</span><span class="p">):</span> | |
2628 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComDeleteDirectoryRequest</span><span class="p">(</span><span class="n">path</span><span class="p">))</span> | |
2629 | <span class="n">m</span><span class="o">.</span><span class="n">tid</span> <span class="o">=</span> <span class="n">tid</span> | |
2630 | <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> | |
2631 | <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> | |
2632 | <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> | |
2633 | ||
2634 | <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> | |
2635 | <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> | |
2636 | <span class="k">if</span> <span class="ow">not</span> <span class="n">delete_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2637 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> | |
2638 | <span class="k">else</span><span class="p">:</span> | |
2639 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to delete directory </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Delete 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> | |
2640 | ||
2641 | <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">service_name</span><span class="p">):</span> | |
2642 | <span class="k">def</span> <span class="nf">connectCB</span><span class="p">(</span><span class="n">connect_message</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> | |
2643 | <span class="n">messages_history</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">connect_message</span><span class="p">)</span> | |
2644 | <span class="k">if</span> <span class="ow">not</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">status</span><span class="o">.</span><span class="n">hasError</span><span class="p">:</span> | |
2645 | <span class="bp">self</span><span class="o">.</span><span class="n">connected_trees</span><span class="p">[</span><span class="n">service_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span> | |
2646 | <span class="n">sendDelete</span><span class="p">(</span><span class="n">connect_message</span><span class="o">.</span><span class="n">tid</span><span class="p">)</span> | |
2647 | <span class="k">else</span><span class="p">:</span> | |
2648 | <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 connect to shared device'</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> | |
2801 | <span class="n">errback</span><span class="p">(</span><span class="n">OperationFailure</span><span class="p">(</span><span class="s1">'Failed to delete directory </span><span class="si">%s</span><span class="s1"> on </span><span class="si">%s</span><span class="s1">: Unable to connect to shared device'</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> | |
2649 | 2802 | |
2650 | 2803 | <span class="n">m</span> <span class="o">=</span> <span class="n">SMBMessage</span><span class="p">(</span><span class="n">ComTreeConnectAndxRequest</span><span class="p">(</span><span class="s1">r'</span><span class="se">\\</span><span class="si">%s</span><span class="s1">\</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">service_name</span> <span class="p">),</span> <span class="n">SERVICE_ANY</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> |
2651 | 2804 | <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> |
2874 | 3027 | <span class="sd"> * file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3. You can perform bit-wise tests to determine the status of the file using the ATTR_xxx constants in smb_constants.py.</span> |
2875 | 3028 | <span class="sd"> * short_name : Unicode string containing the short name of this file (usually in 8.3 notation)</span> |
2876 | 3029 | <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> |
3030 | <span class="sd"> * file_id : Long value representing the file reference number for the file. If the remote system does not support this field, this field will be None or 0. See [MS-FSCC]: 2.4.17</span> | |
2877 | 3031 | <span class="sd"> """</span> |
2878 | 3032 | |
2879 | <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> | |
3033 | <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> <span class="n">file_id</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span> | |
2880 | 3034 | <span class="bp">self</span><span class="o">.</span><span class="n">create_time</span> <span class="o">=</span> <span class="n">create_time</span> <span class="c1">#: 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> |
2881 | 3035 | <span class="bp">self</span><span class="o">.</span><span class="n">last_access_time</span> <span class="o">=</span> <span class="n">last_access_time</span> <span class="c1">#: 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> |
2882 | 3036 | <span class="bp">self</span><span class="o">.</span><span class="n">last_write_time</span> <span class="o">=</span> <span class="n">last_write_time</span> <span class="c1">#: 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> |
2886 | 3040 | <span class="bp">self</span><span class="o">.</span><span class="n">file_attributes</span> <span class="o">=</span> <span class="n">file_attributes</span> <span class="c1">#: A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3. You can perform bit-wise tests to determine the status of the file using the ATTR_xxx constants in smb_constants.py.</span> |
2887 | 3041 | <span class="bp">self</span><span class="o">.</span><span class="n">short_name</span> <span class="o">=</span> <span class="n">short_name</span> <span class="c1">#: Unicode string containing the short name of this file (usually in 8.3 notation)</span> |
2888 | 3042 | <span class="bp">self</span><span class="o">.</span><span class="n">filename</span> <span class="o">=</span> <span class="n">filename</span> <span class="c1">#: 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> |
3043 | <span class="bp">self</span><span class="o">.</span><span class="n">file_id</span> <span class="o">=</span> <span class="n">file_id</span> <span class="c1">#: Long value representing the file reference number for the file. If the remote system does not support this field, this field will be None or 0. See [MS-FSCC]: 2.4.17</span> | |
2889 | 3044 | |
2890 | 3045 | <span class="nd">@property</span> |
2891 | 3046 | <span class="k">def</span> <span class="nf">isDirectory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> |
2935 | 3090 | <li class="right" > |
2936 | 3091 | <a href="../../py-modindex.html" title="Python Module Index" |
2937 | 3092 | >modules</a> |</li> |
2938 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.1.25 documentation</a> »</li> | |
3093 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 documentation</a> »</li> | |
2939 | 3094 | <li class="nav-item nav-item-1"><a href="../index.html" >Module code</a> »</li> |
2940 | 3095 | </ul> |
2941 | 3096 | </div> |
2942 | 3097 | <div class="footer" role="contentinfo"> |
2943 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
3098 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
2944 | 3099 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
2945 | 3100 | </div> |
2946 | 3101 | </body> |
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.25 documentation</title> | |
8 | <title>smb.security_descriptors — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
449 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
453 | 453 | <div class="footer" role="contentinfo"> |
454 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
454 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
455 | 455 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
456 | 456 | </div> |
457 | 457 | </body> |
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.25 documentation</title> | |
8 | <title>smb.smb_structs — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
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.25 documentation</a> »</li> | |
1502 | <li class="nav-item nav-item-0"><a href="../../index.html">pysmb 1.2.0 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> |
1506 | 1506 | <div class="footer" role="contentinfo"> |
1507 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
1507 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
1508 | 1508 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
1509 | 1509 | </div> |
1510 | 1510 | </body> |
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.25 documentation</title> | |
8 | <title>NBNSProtocol Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
199 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
200 | 200 | </ul> |
201 | 201 | </div> |
202 | 202 | <div class="footer" role="contentinfo"> |
203 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
203 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
204 | 204 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
205 | 205 | </div> |
206 | 206 | </body> |
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.25 documentation</title> | |
8 | <title>NetBIOS class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
203 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
204 | 204 | </ul> |
205 | 205 | </div> |
206 | 206 | <div class="footer" role="contentinfo"> |
207 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
207 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
208 | 208 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
209 | 209 | </div> |
210 | 210 | </body> |
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.25 documentation</title> | |
8 | <title>SMBConnection Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
146 | 146 | <code class="descname">__init__</code><span class="sig-paren">(</span><em>username</em>, <em>password</em>, <em>my_name</em>, <em>remote_name</em>, <em>domain=''</em>, <em>use_ntlm_v2=True</em>, <em>sign_options=2</em>, <em>is_direct_tcp=False</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/SMBConnection.html#SMBConnection.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.SMBConnection.SMBConnection.__init__" title="Permalink to this definition">¶</a></dt> |
147 | 147 | <dd><p>Create a new SMBConnection instance.</p> |
148 | 148 | <p><em>username</em> and <em>password</em> are the user credentials required to authenticate the underlying SMB connection with the remote server. |
149 | <em>password</em> can be a string or a callable returning a string. | |
149 | 150 | File operations can only be proceeded after the connection has been authenticated successfully.</p> |
150 | 151 | <p>Note that you need to call <em>connect</em> method to actually establish the SMB connection to the remote server and perform authentication.</p> |
151 | 152 | <p>The default TCP port for most SMB/CIFS servers using NetBIOS over TCP/IP is 139. |
246 | 247 | |
247 | 248 | <dl class="method"> |
248 | 249 | <dt id="smb.SMBConnection.SMBConnection.deleteFiles"> |
249 | <code class="descname">deleteFiles</code><span class="sig-paren">(</span><em>service_name</em>, <em>path_file_pattern</em>, <em>timeout=30</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/SMBConnection.html#SMBConnection.deleteFiles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.SMBConnection.SMBConnection.deleteFiles" title="Permalink to this definition">¶</a></dt> | |
250 | <code class="descname">deleteFiles</code><span class="sig-paren">(</span><em>service_name</em>, <em>path_file_pattern</em>, <em>delete_matching_folders=False</em>, <em>timeout=30</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/SMBConnection.html#SMBConnection.deleteFiles"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.SMBConnection.SMBConnection.deleteFiles" title="Permalink to this definition">¶</a></dt> | |
250 | 251 | <dd><p>Delete one or more regular files. It supports the use of wildcards in file names, allowing for deletion of multiple files in a single request.</p> |
252 | <p>If delete_matching_folders is True, immediate sub-folders that match the path_file_pattern will be deleted recursively.</p> | |
251 | 253 | <table class="docutils field-list" frame="void" rules="none"> |
252 | 254 | <col class="field-name" /> |
253 | 255 | <col class="field-body" /> |
334 | 336 | <p>Note that the default search parameter will query for all read-only (SMB_FILE_ATTRIBUTE_READONLY), hidden (SMB_FILE_ATTRIBUTE_HIDDEN), |
335 | 337 | system (SMB_FILE_ATTRIBUTE_SYSTEM), archive (SMB_FILE_ATTRIBUTE_ARCHIVE), normal (SMB_FILE_ATTRIBUTE_INCL_NORMAL) files |
336 | 338 | and directories (SMB_FILE_ATTRIBUTE_DIRECTORY). |
337 | If you do need to include “normal” files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant. | |
339 | If you do not need to include “normal” files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant. | |
338 | 340 | SMB_FILE_ATTRIBUTE_NORMAL should be used by itself and not be used with other bit constants.</p> |
339 | 341 | <table class="docutils field-list" frame="void" rules="none"> |
340 | 342 | <col class="field-name" /> |
584 | 586 | <li class="right" > |
585 | 587 | <a href="nmb_NetBIOS.html" title="NetBIOS class" |
586 | 588 | >previous</a> |</li> |
587 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.25 documentation</a> »</li> | |
589 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
588 | 590 | </ul> |
589 | 591 | </div> |
590 | 592 | <div class="footer" role="contentinfo"> |
591 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
593 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
592 | 594 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
593 | 595 | </div> |
594 | 596 | </body> |
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.25 documentation</title> | |
8 | <title>SMbHandler Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
164 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
165 | 165 | </ul> |
166 | 166 | </div> |
167 | 167 | <div class="footer" role="contentinfo"> |
168 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
168 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
169 | 169 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
170 | 170 | </div> |
171 | 171 | </body> |
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.25 documentation</title> | |
8 | <title>SMBProtocolFactory Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
349 | 349 | <p>Note that the default search parameter will query for all read-only (SMB_FILE_ATTRIBUTE_READONLY), hidden (SMB_FILE_ATTRIBUTE_HIDDEN), |
350 | 350 | system (SMB_FILE_ATTRIBUTE_SYSTEM), archive (SMB_FILE_ATTRIBUTE_ARCHIVE), normal (SMB_FILE_ATTRIBUTE_INCL_NORMAL) files |
351 | 351 | and directories (SMB_FILE_ATTRIBUTE_DIRECTORY). |
352 | If you do need to include “normal” files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant. | |
352 | If you do not need to include “normal” files in the result, define your own search parameter without the SMB_FILE_ATTRIBUTE_INCL_NORMAL constant. | |
353 | 353 | SMB_FILE_ATTRIBUTE_NORMAL should be used by itself and not be used with other bit constants.</p> |
354 | 354 | <table class="docutils field-list" frame="void" rules="none"> |
355 | 355 | <col class="field-name" /> |
602 | 602 | <li class="right" > |
603 | 603 | <a href="smb_SMBHandler.html" title="SMbHandler Class" |
604 | 604 | >previous</a> |</li> |
605 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.25 documentation</a> »</li> | |
605 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
606 | 606 | </ul> |
607 | 607 | </div> |
608 | 608 | <div class="footer" role="contentinfo"> |
609 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
609 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
610 | 610 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
611 | 611 | </div> |
612 | 612 | </body> |
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.25 documentation</title> | |
8 | <title>SharedDevice Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
158 | 158 | <li class="right" > |
159 | 159 | <a href="smb_SMBProtocolFactory.html" title="SMBProtocolFactory Class" |
160 | 160 | >previous</a> |</li> |
161 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.25 documentation</a> »</li> | |
161 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
162 | 162 | </ul> |
163 | 163 | </div> |
164 | 164 | <div class="footer" role="contentinfo"> |
165 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
165 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
166 | 166 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
167 | 167 | </div> |
168 | 168 | </body> |
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.25 documentation</title> | |
8 | <title>SharedFile Class — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
46 | 46 | </ul> |
47 | 47 | </div> |
48 | 48 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
85 | 85 | <h1>SharedFile Class<a class="headerlink" href="#sharedfile-class" title="Permalink to this headline">¶</a></h1> |
86 | 86 | <dl class="class"> |
87 | 87 | <dt id="smb.base.SharedFile"> |
88 | <em class="property">class </em><code class="descclassname">smb.base.</code><code class="descname">SharedFile</code><span class="sig-paren">(</span><em>create_time</em>, <em>last_access_time</em>, <em>last_write_time</em>, <em>last_attr_change_time</em>, <em>file_size</em>, <em>alloc_size</em>, <em>file_attributes</em>, <em>short_name</em>, <em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/base.html#SharedFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.base.SharedFile" title="Permalink to this definition">¶</a></dt> | |
88 | <em class="property">class </em><code class="descclassname">smb.base.</code><code class="descname">SharedFile</code><span class="sig-paren">(</span><em>create_time</em>, <em>last_access_time</em>, <em>last_write_time</em>, <em>last_attr_change_time</em>, <em>file_size</em>, <em>alloc_size</em>, <em>file_attributes</em>, <em>short_name</em>, <em>filename</em>, <em>file_id=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/smb/base.html#SharedFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#smb.base.SharedFile" title="Permalink to this definition">¶</a></dt> | |
89 | 89 | <dd><p>Contain information about a file/folder entry that is shared on the shared device.</p> |
90 | 90 | <p>As an application developer, you should not need to instantiate a <em>SharedFile</em> instance directly in your application. |
91 | 91 | These <em>SharedFile</em> instances are usually returned via a call to <em>listPath</em> method in <a class="reference internal" href="smb_SMBProtocolFactory.html"><em>smb.SMBProtocol.SMBProtocolFactory</em></a>.</p> |
103 | 103 | <li>file_attributes : A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3. You can perform bit-wise tests to determine the status of the file using the ATTR_xxx constants in smb_constants.py.</li> |
104 | 104 | <li>short_name : Unicode string containing the short name of this file (usually in 8.3 notation)</li> |
105 | 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 | <li>file_id : Long value representing the file reference number for the file. If the remote system does not support this field, this field will be None or 0. See [MS-FSCC]: 2.4.17</li> | |
106 | 107 | </ul> |
107 | 108 | <dl class="attribute"> |
108 | 109 | <dt id="smb.base.SharedFile.alloc_size"> |
120 | 121 | <dt id="smb.base.SharedFile.file_attributes"> |
121 | 122 | <code class="descname">file_attributes</code><em class="property"> = None</em><a class="headerlink" href="#smb.base.SharedFile.file_attributes" title="Permalink to this definition">¶</a></dt> |
122 | 123 | <dd><p>A SMB_EXT_FILE_ATTR integer value. See [MS-CIFS]: 2.2.1.2.3. You can perform bit-wise tests to determine the status of the file using the ATTR_xxx constants in smb_constants.py.</p> |
124 | </dd></dl> | |
125 | ||
126 | <dl class="attribute"> | |
127 | <dt id="smb.base.SharedFile.file_id"> | |
128 | <code class="descname">file_id</code><em class="property"> = None</em><a class="headerlink" href="#smb.base.SharedFile.file_id" title="Permalink to this definition">¶</a></dt> | |
129 | <dd><p>Long value representing the file reference number for the file. If the remote system does not support this field, this field will be None or 0. See [MS-FSCC]: 2.4.17</p> | |
123 | 130 | </dd></dl> |
124 | 131 | |
125 | 132 | <dl class="attribute"> |
203 | 210 | <li class="right" > |
204 | 211 | <a href="smb_SharedDevice.html" title="SharedDevice Class" |
205 | 212 | >previous</a> |</li> |
206 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.1.25 documentation</a> »</li> | |
213 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
207 | 214 | </ul> |
208 | 215 | </div> |
209 | 216 | <div class="footer" role="contentinfo"> |
210 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
217 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
211 | 218 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
212 | 219 | </div> |
213 | 220 | </body> |
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.25 documentation</title> | |
8 | <title>SMB Exceptions — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
144 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
145 | 145 | </ul> |
146 | 146 | </div> |
147 | 147 | <div class="footer" role="contentinfo"> |
148 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
148 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
149 | 149 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
150 | 150 | </div> |
151 | 151 | </body> |
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.25 documentation</title> | |
8 | <title>Security Descriptors — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="../index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
254 | <li class="nav-item nav-item-0"><a href="../index.html">pysmb 1.2.0 documentation</a> »</li> | |
255 | 255 | </ul> |
256 | 256 | </div> |
257 | 257 | <div class="footer" role="contentinfo"> |
258 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
258 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
259 | 259 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
260 | 260 | </div> |
261 | 261 | </body> |
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.25 documentation</title> | |
8 | <title>Extending pysmb For Other Frameworks — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
41 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
121 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
122 | 122 | </ul> |
123 | 123 | </div> |
124 | 124 | <div class="footer" role="contentinfo"> |
125 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
125 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
126 | 126 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
127 | 127 | </div> |
128 | 128 | </body> |
6 | 6 | <head> |
7 | 7 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
8 | 8 | |
9 | <title>Index — pysmb 1.1.25 documentation</title> | |
9 | <title>Index — pysmb 1.2.0 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.25', | |
17 | VERSION: '1.2.0', | |
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.25 documentation" href="index.html" /> | |
26 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
38 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
39 | 39 | </ul> |
40 | 40 | </div> |
41 | 41 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
240 | 240 | </dt> |
241 | 241 | |
242 | 242 | |
243 | <dt><a href="api/smb_SharedFile.html#smb.base.SharedFile.file_id">file_id (smb.base.SharedFile attribute)</a> | |
244 | </dt> | |
245 | ||
246 | ||
243 | 247 | <dt><a href="api/smb_SharedFile.html#smb.base.SharedFile.file_size">file_size (smb.base.SharedFile attribute)</a> |
244 | 248 | </dt> |
245 | 249 | |
690 | 694 | <li class="right" > |
691 | 695 | <a href="py-modindex.html" title="Python Module Index" |
692 | 696 | >modules</a> |</li> |
693 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.1.25 documentation</a> »</li> | |
697 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
694 | 698 | </ul> |
695 | 699 | </div> |
696 | 700 | <div class="footer" role="contentinfo"> |
697 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
701 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
698 | 702 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
699 | 703 | </div> |
700 | 704 | </body> |
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.25 documentation</title> | |
8 | <title>Welcome to pysmb’s documentation! — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="#" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
41 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.2.0 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.25 documentation</a> »</li> | |
220 | <li class="nav-item nav-item-0"><a href="#">pysmb 1.2.0 documentation</a> »</li> | |
221 | 221 | </ul> |
222 | 222 | </div> |
223 | 223 | <div class="footer" role="contentinfo"> |
224 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
224 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
225 | 225 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
226 | 226 | </div> |
227 | 227 | </body> |
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.25 documentation</title> | |
8 | <title>Python Module Index — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="index.html" /> | |
25 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
40 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
105 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
106 | 106 | </ul> |
107 | 107 | </div> |
108 | 108 | <div class="footer" role="contentinfo"> |
109 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
109 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
110 | 110 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
111 | 111 | </div> |
112 | 112 | </body> |
5 | 5 | <head> |
6 | 6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
7 | 7 | |
8 | <title>Search — pysmb 1.1.25 documentation</title> | |
8 | <title>Search — pysmb 1.2.0 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.25', | |
16 | VERSION: '1.2.0', | |
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.25 documentation" href="index.html" /> | |
26 | <link rel="top" title="pysmb 1.2.0 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.25 documentation</a> »</li> | |
45 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 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.25 documentation</a> »</li> | |
96 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
97 | 97 | </ul> |
98 | 98 | </div> |
99 | 99 | <div class="footer" role="contentinfo"> |
100 | © Copyright 2001-2018, Michael Teo http://miketeo.net/. | |
100 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
101 | 101 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. |
102 | 102 | </div> |
103 | 103 | </body> |
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,""],isNormal:[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,6],arg:4,around:0,ascii:[2,4],asn:10,aspx:2,assert:2,associ:8,asynchron:[0,2,9],attempt:2,attr_xxx:6,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,6,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,6,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],compress:[2,4,6],comput:[2,4],concurr:[2,4],configur:[2,4],conflict:10,conn:2,connect:[2,4,7,9],connecttcp:4,consist:8,constant:[2,4,5,6,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,2,4,6],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,6,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:[2,4,6,10],end:[2,4],english:[2,4],enterpris:[2,4],entir:4,entri:[2,4,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,6],hope:[0,1],host:[2,3,4],hostnam:3,http:2,iana:[0,1],identifi:[2,4,8],identifier_author:8,idl:2,ignor:[2,4,6],illustr:[2,3,4],immedi:[2,4],implement:[0,1,2,4,8,9,10],impos:[2,4],includ:[2,4,9,10],incom:0,incomplet:9,index:[2,4,6,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,isnorm:6,isreadi:4,isreadonli:6,isspeci:5,istemporari:5,isusingsmb2:[2,4],itself:[2,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,6],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],normal:[2,4,6],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:[2,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,6,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,simplic:[2,4],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,6,10],smb_ext_file_attr:6,smb_file_attribute_arch:[2,4],smb_file_attribute_directori:[2,4],smb_file_attribute_hidden:[2,4],smb_file_attribute_incl_norm:[2,4],smb_file_attribute_norm:[2,4],smb_file_attribute_readonli:[2,4],smb_file_attribute_system:[2,4],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],spars:[2,4,6],special:5,specif:10,specifi:[0,1,2,4,8],standard:[0,1,10],start:[0,2,4],statu:6,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,6,8],take:[9,10],target:[0,1],tcp:[2,4,9],technic:[2,9],tempfil:[2,4],temporari:[2,4,5,6],term:10,termin:[2,4],test:[6,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],wise:6,wish:[1,2],within:[2,4,10],without:[0,2,4,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_id:[6,2,1,""],file_size:[6,2,1,""],filename:[6,2,1,""],isDirectory:[6,2,1,""],isNormal:[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,6],arg:4,around:0,ascii:[2,4],asn:10,aspx:2,assert:2,associ:8,asynchron:[0,2,9],attempt:2,attr_xxx:6,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,6,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],callabl:2,callback:[0,4,9],can:[0,1,2,3,4,5,6,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],compress:[2,4,6],comput:[2,4],concurr:[2,4],configur:[2,4],conflict:10,conn:2,connect:[2,4,7,9],connecttcp:4,consist:8,constant:[2,4,5,6,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,2,4,6],delet:[2,3,4],delete_matching_fold:2,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,6,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:[2,4,6,10],end:[2,4],english:[2,4],enterpris:[2,4],entir:4,entri:[2,4,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:[6,8],file:[2,3,4,5,6,9,10],file_attribut:[2,4,6],file_attribute_norm:2,file_fh:3,file_id:6,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],fscc:6,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,6],hope:[0,1],host:[2,3,4],hostnam:3,http:2,iana:[0,1],identifi:[2,4,8],identifier_author:8,idl:2,ignor:[2,4,6],illustr:[2,3,4],immedi:[2,4],implement:[0,1,2,4,8,9,10],impos:[2,4],includ:[2,4,9,10],incom:0,incomplet:9,index:[2,4,6,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,isnorm:6,isreadi:4,isreadonli:6,isspeci:5,istemporari:5,isusingsmb2:[2,4],itself:[2,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,6],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],normal:[2,4,6],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:[2,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,6,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],recurs:2,refer:[2,4,5,6,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:[6,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,simplic:[2,4],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,6,10],smb_ext_file_attr:6,smb_file_attribute_arch:[2,4],smb_file_attribute_directori:[2,4],smb_file_attribute_hidden:[2,4],smb_file_attribute_incl_norm:[2,4],smb_file_attribute_norm:[2,4],smb_file_attribute_readonli:[2,4],smb_file_attribute_system:[2,4],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],spars:[2,4,6],special:5,specif:10,specifi:[0,1,2,4,8],standard:[0,1,10],start:[0,2,4],statu:6,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,6,8],take:[9,10],target:[0,1],tcp:[2,4,9],technic:[2,9],tempfil:[2,4],temporari:[2,4,5,6],term:10,termin:[2,4],test:[6,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],wise:6,wish:[1,2],within:[2,4,10],without:[0,2,4,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}})⏎ |