Add new docs on upgrading from previous pysmb releases
Michael Teo
4 years ago
Binary diff not shown
Binary diff not shown
Binary diff not shown
725 | 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 | 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 | 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> | |
728 | <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> | |
729 | 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> |
730 | 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> |
731 | 731 | <span class="k">else</span><span class="p">:</span> |
1196 | 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> |
1197 | 1197 | |
1198 | 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> | |
1199 | <span class="n">pattern</span> <span class="o">=</span> <span class="bp">None</span> | |
1200 | 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> |
1201 | 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> |
1202 | 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> |
1209 | 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 | 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 | 1211 | |
1212 | <span class="k">if</span> <span class="n">pattern</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> | |
1213 | <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> | |
1214 | <span class="k">if</span> <span class="nb">len</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> | |
1215 | <span class="n">files_queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</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> <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="p">))</span> | |
1216 | <span class="k">else</span><span class="p">:</span> | |
1217 | <span class="n">files_queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="s1">''</span><span class="p">,</span> <span class="n">path</span> <span class="p">))</span> | |
1218 | ||
1212 | 1219 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> |
1213 | 1220 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> |
1214 | 1221 | <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 | 1222 | <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> | |
1223 | <span class="k">if</span> <span class="n">p</span><span class="p">:</span> | |
1224 | <span class="n">filename</span> <span class="o">=</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> | |
1225 | <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">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> | |
1226 | <span class="k">else</span><span class="p">:</span> | |
1227 | <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="p">)</span> | |
1219 | 1228 | <span class="k">else</span><span class="p">:</span> |
1220 | 1229 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> |
1221 | 1230 | |
1228 | 1237 | <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 | 1238 | <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 | 1239 | <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> | |
1240 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
1241 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
1242 | <span class="k">else</span><span class="p">:</span> | |
1243 | <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 | 1244 | <span class="k">else</span><span class="p">:</span> |
1233 | 1245 | <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 | 1246 | |
1237 | 1249 | <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 | 1250 | <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 | 1251 | <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> | |
1252 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
1253 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
1254 | <span class="k">else</span><span class="p">:</span> | |
1255 | <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 | 1256 | |
1242 | 1257 | <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 | 1258 | <span class="n">folder_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> |
1299 | 1314 | <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> |
1300 | 1315 | <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> |
1301 | 1316 | <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> | |
1317 | <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="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_OBJECT_NAME_NOT_FOUND</span> | |
1303 | 1318 | <span class="n">callback</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> |
1319 | <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">0xC00000BA</span><span class="n">L</span><span class="p">:</span> <span class="c1"># [MS-ERREF]: STATUS_FILE_IS_A_DIRECTORY</span> | |
1320 | <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. Please use deleteDirectory() method or append "/*" to your path if you wish to delete all files in the folder.'</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> | |
1304 | 1321 | <span class="k">else</span><span class="p">:</span> |
1305 | 1322 | <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> |
1306 | 1323 | |
2630 | 2647 | <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> |
2631 | 2648 | |
2632 | 2649 | <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> | |
2650 | <span class="n">pattern</span> <span class="o">=</span> <span class="bp">None</span> | |
2634 | 2651 | <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 | 2652 | <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 | 2653 | <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> |
2643 | 2660 | <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 | 2661 | <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 | 2662 | |
2663 | <span class="k">if</span> <span class="n">pattern</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span> | |
2664 | <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> | |
2665 | <span class="k">if</span> <span class="nb">len</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> | |
2666 | <span class="n">files_queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</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> <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="p">))</span> | |
2667 | <span class="k">else</span><span class="p">:</span> | |
2668 | <span class="n">files_queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span> <span class="s1">''</span><span class="p">,</span> <span class="n">path</span> <span class="p">))</span> | |
2669 | ||
2646 | 2670 | <span class="k">def</span> <span class="nf">deleteCB</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> |
2647 | 2671 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> |
2648 | 2672 | <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 | 2673 | <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> | |
2674 | <span class="k">if</span> <span class="n">p</span><span class="p">:</span> | |
2675 | <span class="n">filename</span> <span class="o">=</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> | |
2676 | <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">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 | 2677 | <span class="k">else</span><span class="p">:</span> |
2652 | 2678 | <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 | 2679 | <span class="k">else</span><span class="p">:</span> |
2662 | 2688 | <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 | 2689 | <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 | 2690 | <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> | |
2691 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
2692 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
2693 | <span class="k">else</span><span class="p">:</span> | |
2694 | <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 | 2695 | <span class="k">else</span><span class="p">:</span> |
2667 | 2696 | <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 | 2697 | |
2671 | 2700 | <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 | 2701 | <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 | 2702 | <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> | |
2703 | <span class="k">if</span> <span class="n">files_queue</span><span class="p">:</span> | |
2704 | <span class="n">deleteCB</span><span class="p">(</span><span class="bp">None</span><span class="p">)</span> | |
2705 | <span class="k">else</span><span class="p">:</span> | |
2706 | <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 | 2707 | |
2676 | 2708 | <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 | 2709 | <span class="n">folder_queue</span> <span class="o">=</span> <span class="p">[</span> <span class="p">]</span> |
2722 | 2754 | <span class="c1"># If there are no matching files, we just treat as success instead of failing</span> |
2723 | 2755 | <span class="n">callback</span><span class="p">(</span><span class="n">path_file_pattern</span><span class="p">)</span> |
2724 | 2756 | <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> | |
2757 | <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. Please use deleteDirectory() method or append "/*" to your path if you wish to delete all files in the folder.'</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 | 2758 | <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 | 2759 | <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 | 2760 | <span class="k">else</span><span class="p">:</span> |
7 | 7 | |
8 | 8 | pysmb is a pure Python implementation of the client-side SMB/CIFS protocol (SMB1 and SMB2) which is the underlying protocol |
9 | 9 | that facilitates file sharing and printing between Windows machines, as well as with Linux machines via the Samba server application. |
10 | pysmb is developed in Python 2.4.6, Python 2.7.1 and Python 3.2.3 and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x. | |
10 | pysmb is developed in Python 2.7.x and Python 3.5.x and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x. | |
11 | 11 | |
12 | The latest version of pysmb is always available at the pysmb project page at `miketeo.net <http://miketeo.net/wp/index.php/projects/pysmb>`_. | |
12 | The latest version of pysmb is always available at the pysmb project page at `miketeo.net <http://miketeo.net/projects/pysmb>`_. | |
13 | 13 | |
14 | 14 | License |
15 | 15 | ------- |
89 | 89 | As a software developer who is looking to modify pysmb so that you can integrate it to other network frameworks: |
90 | 90 | * Read :doc:`extending` |
91 | 91 | |
92 | If you are upgrading from older pysmb versions: | |
93 | * Read :doc:`upgrading` | |
92 | 94 | |
93 | 95 | |
94 | 96 | Indices and tables |
100 | 102 | |
101 | 103 | api/* |
102 | 104 | extending |
105 | upgrading | |
103 | 106 | |
104 | 107 | * :ref:`genindex` |
105 | 108 | * :ref:`search` |
0 | Upgrading from older pysmb versions | |
1 | ==================================== | |
2 | ||
3 | This page documents the improvements and changes to the API that could be incompatible with previous releases. | |
4 | ||
5 | pysmb 1.2.0 | |
6 | ----------- | |
7 | - Add new `delete_matching_folders` parameter to `deleteFiles()` method in SMBProtocolFactory and SMBConnection | |
8 | class to support deletion of sub-folders. If you are passing timeout parameter to the `deleteFiles()` method | |
9 | in your application, please switch to using named parameter for timeout. | |
10 | ||
11 | pysmb 1.1.28 | |
12 | ------------ | |
13 | - SharedFile instances returned from the `listPath()` method now has a new property | |
14 | `file_id` attribute which represents the file reference number given by the remote SMB server. | |
15 | ||
16 | pysmb 1.1.26 | |
17 | ------------ | |
18 | - SMBConnection class can now be used as a context manager | |
19 | ||
20 | pysmb 1.1.25 | |
21 | ------------ | |
22 | - SharedFile class has a new property `isNormal` which will be True if the file is a | |
23 | 'normal' file. pysmb defines a 'normal' file as a file entry that is not | |
24 | read-only, not hidden, not system, not archive and not a directory; | |
25 | it ignores other attributes like compression, indexed, sparse, temporary and encryption. | |
26 | - `listPath()` method in SMBProtocolFactory and SMBConnection class will now include | |
27 | 'normal' files by default if you do not specify the `search` parameter. | |
28 | ||
29 | pysmb 1.1.20 | |
30 | ------------ | |
31 | - A new method `getSecurity()` was added to SMBConnection and SMBProtocolFactory class. | |
32 | ||
33 | pysmb 1.1.15 | |
34 | ------------ | |
35 | - Add new `truncate` parameter to `storeFileFromOffset()` in SMBProtocolFactory and SMBConnection | |
36 | class to support truncation of the file before writing. If you are passing timeout parameter | |
37 | to the `storeFileFromOffset()` method in your application, please switch to using named parameter for timeout. | |
38 | ||
39 | pysmb 1.1.11 | |
40 | ------------ | |
41 | - A new method `storeFileFromOffset()` was added to SMBConnection and SMBProtocolFactory class. | |
42 | ||
43 | pysmb 1.1.10 | |
44 | ------------ | |
45 | - A new method `getAttributes()` was added to SMBConnection and SMBProtocolFactory class | |
46 | - SharedFile class has a new property `isReadOnly` to indicate the file is read-only on the remote filesystem. | |
47 | ||
48 | pysmb 1.1.2 | |
49 | ----------- | |
50 | - `queryIPForName()` method in nmb.NetBIOS and nmb.NBNSProtocol class will now return only the server machine name and ignore workgroup names. | |
51 | ||
52 | pysmb 1.0.3 | |
53 | ----------- | |
54 | - Two new methods were added to NBNSProtocol class: `queryIPForName()` and `NetBIOS.queryIPForName()` | |
55 | to support querying for a machine's NetBIOS name at the given IP address. | |
56 | - A new method `retrieveFileFromOffset()` was added to SMBProtocolFactory and SMBConnection | |
57 | to support finer control of file retrieval operation. | |
58 | ||
59 | pysmb 1.0.0 | |
60 | ----------- | |
61 | pysmb was completely rewritten in version 1.0.0. | |
62 | If you are upgrading from pysmb 0.x, you most likely have to rewrite your application for the new 1.x API. |
90 | 90 | <h1>Welcome to pysmb’s documentation!<a class="headerlink" href="#welcome-to-pysmb-s-documentation" title="Permalink to this headline">¶</a></h1> |
91 | 91 | <p>pysmb is a pure Python implementation of the client-side SMB/CIFS protocol (SMB1 and SMB2) which is the underlying protocol |
92 | 92 | that facilitates file sharing and printing between Windows machines, as well as with Linux machines via the Samba server application. |
93 | pysmb is developed in Python 2.4.6, Python 2.7.1 and Python 3.2.3 and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x.</p> | |
94 | <p>The latest version of pysmb is always available at the pysmb project page at <a class="reference external" href="http://miketeo.net/wp/index.php/projects/pysmb">miketeo.net</a>.</p> | |
93 | pysmb is developed in Python 2.7.x and Python 3.5.x and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x.</p> | |
94 | <p>The latest version of pysmb is always available at the pysmb project page at <a class="reference external" href="http://miketeo.net/projects/pysmb">miketeo.net</a>.</p> | |
95 | 95 | <div class="section" id="license"> |
96 | 96 | <h2>License<a class="headerlink" href="#license" title="Permalink to this headline">¶</a></h2> |
97 | 97 | <p>pysmb itself is licensed under an opensource license. |
175 | 175 | <li>Read <a class="reference internal" href="extending.html"><em>Extending pysmb For Other Frameworks</em></a></li> |
176 | 176 | </ul> |
177 | 177 | </dd> |
178 | <dt>If you are upgrading from older pysmb versions:</dt> | |
179 | <dd><ul class="first last simple"> | |
180 | <li>Read <a class="reference internal" href="upgrading.html"><em>Upgrading from older pysmb versions</em></a></li> | |
181 | </ul> | |
182 | </dd> | |
178 | 183 | </dl> |
179 | 184 | </div> |
180 | 185 | <div class="section" id="indices-and-tables"> |
191 | 196 | <li class="toctree-l1"><a class="reference internal" href="api/smb_exceptions.html">SMB Exceptions</a></li> |
192 | 197 | <li class="toctree-l1"><a class="reference internal" href="api/smb_security_descriptors.html">Security Descriptors</a></li> |
193 | 198 | <li class="toctree-l1"><a class="reference internal" href="extending.html">Extending pysmb For Other Frameworks</a></li> |
199 | <li class="toctree-l1"><a class="reference internal" href="upgrading.html">Upgrading from older pysmb versions</a></li> | |
194 | 200 | </ul> |
195 | 201 | </div> |
196 | 202 | <ul class="simple"> |
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}})⏎ | |
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","upgrading"],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,11],"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,11],"public":4,"return":[0,1,2,3,4,5,6,10,11],"short":6,"switch":11,"true":[0,1,2,4,5,6,11],"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,accord:[],accur:4,ace_type_:8,aceflag:8,acetyp:8,acknowledg:4,acl:8,across:[2,4],actual:2,add:[0,4,11],addcallback:[0,4],adderrback:4,addit:8,additional_data:8,address:[0,1,3,9,10,11],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],api:11,appli:[2,4,8],applic:[0,1,4,6,10,11],application_data:8,appropri:[0,1],arbitari:[2,4],archiv:[2,4,6,11],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,11],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,11],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,11],cannot:[2,3,4],captur:[2,4],care:9,cc232110:2,ccc:[0,1],chang:[6,11],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,11],compon:[2,3,4],compress:[2,4,6,11],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:[],context:11,continu:[2,4],contribut:[0,1],control:[2,4,8,11],conveni:[2,4,6,8],copi:[2,4,10],correspond:[6,8],could:[6,10,11],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,11],definit:[],delet:[2,3,4,11],delete_matching_fold:[2,11],deletedirectori:[2,4],deletefil:[2,4,11],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,11],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,11],end:[2,4],english:[2,4],enterpris:[2,4],entir:4,entri:[2,4,6,8,11],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,11],file_attribut:[2,4,6],file_attribute_norm:2,file_fh:3,file_id:[6,11],file_obj:[2,4],file_s:[4,6],filenam:[2,4,6],fileretriev:4,files:2,filesystem:11,filter:[2,4],find:[2,4,9],finer:11,first:[2,3,4],flag:[0,1,2,4,8],folder:[2,3,4,6,10,11],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],fscc:6,functionl:4,further:2,gener:9,getattribut:[2,4,11],getsecur:[2,11],given:11,gmt:[2,4],googl:10,group:8,guess:[2,4],handl:[4,9],hash:10,have:[0,2,9,10,11],held:2,help:2,henc:[2,4,10],hidden:[2,4,6,11],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,11],illustr:[2,3,4],immedi:[2,4],implement:[0,1,2,4,8,9,10],impos:[2,4],improv:11,includ:[2,4,9,10,11],incom:0,incompat:11,incomplet:9,index:[2,4,6,10,11],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,11],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,11],isreadi:4,isreadonli:[6,11],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,11],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,11],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,11],made:[2,4,10],mai:[2,4],main:10,manag:11,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,11],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,11],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,11],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,11],non:[2,4],none:[0,1,2,4,5,6,7,8],normal:[2,4,6,11],notat:[0,1,6],notconnectederror:[4,7],note:[],notreadyerror:[4,7],now:[9,11],ntlm:[4,9,10],ntlmssp:10,ntlmv1:[2,4,10],ntlmv2:[2,4,10],number:[0,1,2,4,6,8,11],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],older:[],onauthfail:[4,9],onauthok:[4,9],onc:[4,9],onli:[2,3,4,6,8,10,11],onnmbsessionfail:9,open:[2,3,4,10],opensourc:10,oper:[1,2,4,7,9,10,11],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,11],paramet:[0,1,2,3,4,9,10,11],parent:3,pars:10,part:9,parti:10,pass:[2,3,4,11],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,11],point:3,port:[0,1,2,4],posit:[2,4],possibl:10,post:[4,9],pre:[],precis:4,present:[7,8],previou:11,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,11],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,11],queryipfornam:[0,1,11],querynam:[0,1],queue:4,rais:[0,2,3,4,7],reactor:[0,4],read:[2,3,4,6,9,10,11],readi:[4,7],receiv:[0,1,2,4],recurs:2,refer:[2,4,5,6,10,11],referenc:10,regardless:[2,4],regular:[2,4],reject:[2,4],rel:[2,4],relat:10,releas:[1,2,11],remot:[1,2,4,5,6,9,11],remote_nam:[2,4,9],remov:0,renam:[2,4],repli:[0,1,2,4],report:9,repres:[6,8,11],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,11],retrievefil:[2,4],retrievefilefactori:4,retrievefilefromoffset:[2,4,11],reus:4,revis:8,rewrit:11,rewritten:11,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,11],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,11],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,11],special:5,specif:10,specifi:[0,1,2,4,8,11],standard:[0,1,10],start:[0,2,4],statu:6,step:9,stoplisten:0,store:[2,4,6],storefil:[2,4],storefilefromoffset:[2,11],string:[0,1,2,3,4,5,6],structur:8,style:10,sub:[2,4,11],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,11],take:[9,10],target:[0,1],tcp:[2,4,9],technic:[2,9],tempfil:[2,4],temporari:[2,4,5,6,11],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,11],thoma:10,those:4,thousand:4,through:4,time:[2,4,5,6,10],timeout:[0,1,2,4,7,11],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,11],truste:8,tupl:[2,4],twist:[0,4,10],two:11,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],upgrad:[],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:[],via:[0,4,6,10],vista:[2,4,10],wait:[0,1,4,7],want:[4,10],web:10,well:10,were:11,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,11],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,11],wrap:0,write:[2,4,9,11],write_result:4,written:[2,4],wrong:9,yet:7,you:[0,1,2,3,4,6,9,10,11],your:[0,1,2,4,6,9,10,11],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!","Upgrading from older pysmb versions"],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,from:11,indic:10,licens:10,nbnsprotocol:0,netbio:1,note:3,older:11,other:9,packag:10,pysmb:[9,10,11],secur:8,shareddevic:5,sharedfil:6,smb2:[2,4],smb:7,smbconnect:2,smbhandler:3,smbprotocolfactori:4,support:[2,4],tabl:10,upgrad:11,version:11,welcom:10}})⏎ |
0 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
1 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
2 | ||
3 | ||
4 | <html xmlns="http://www.w3.org/1999/xhtml"> | |
5 | <head> | |
6 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
7 | ||
8 | <title>Upgrading from older pysmb versions — pysmb 1.2.0 documentation</title> | |
9 | ||
10 | <link rel="stylesheet" href="_static/sphinxdoc.css" type="text/css" /> | |
11 | <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> | |
12 | ||
13 | <script type="text/javascript"> | |
14 | var DOCUMENTATION_OPTIONS = { | |
15 | URL_ROOT: './', | |
16 | VERSION: '1.2.0', | |
17 | COLLAPSE_INDEX: false, | |
18 | FILE_SUFFIX: '.html', | |
19 | HAS_SOURCE: true | |
20 | }; | |
21 | </script> | |
22 | <script type="text/javascript" src="_static/jquery.js"></script> | |
23 | <script type="text/javascript" src="_static/underscore.js"></script> | |
24 | <script type="text/javascript" src="_static/doctools.js"></script> | |
25 | <link rel="top" title="pysmb 1.2.0 documentation" href="index.html" /> | |
26 | </head> | |
27 | <body role="document"> | |
28 | <div class="related" role="navigation" aria-label="related navigation"> | |
29 | <h3>Navigation</h3> | |
30 | <ul> | |
31 | <li class="right" style="margin-right: 10px"> | |
32 | <a href="genindex.html" title="General Index" | |
33 | accesskey="I">index</a></li> | |
34 | <li class="right" > | |
35 | <a href="py-modindex.html" title="Python Module Index" | |
36 | >modules</a> |</li> | |
37 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
38 | </ul> | |
39 | </div> | |
40 | <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> | |
41 | <div class="sphinxsidebarwrapper"> | |
42 | <h3><a href="index.html">Table Of Contents</a></h3> | |
43 | <ul> | |
44 | <li><a class="reference internal" href="#">Upgrading from older pysmb versions</a><ul> | |
45 | <li><a class="reference internal" href="#pysmb-1-2-0">pysmb 1.2.0</a></li> | |
46 | <li><a class="reference internal" href="#pysmb-1-1-28">pysmb 1.1.28</a></li> | |
47 | <li><a class="reference internal" href="#pysmb-1-1-26">pysmb 1.1.26</a></li> | |
48 | <li><a class="reference internal" href="#pysmb-1-1-25">pysmb 1.1.25</a></li> | |
49 | <li><a class="reference internal" href="#pysmb-1-1-20">pysmb 1.1.20</a></li> | |
50 | <li><a class="reference internal" href="#pysmb-1-1-15">pysmb 1.1.15</a></li> | |
51 | <li><a class="reference internal" href="#pysmb-1-1-11">pysmb 1.1.11</a></li> | |
52 | <li><a class="reference internal" href="#pysmb-1-1-10">pysmb 1.1.10</a></li> | |
53 | <li><a class="reference internal" href="#pysmb-1-1-2">pysmb 1.1.2</a></li> | |
54 | <li><a class="reference internal" href="#pysmb-1-0-3">pysmb 1.0.3</a></li> | |
55 | <li><a class="reference internal" href="#pysmb-1-0-0">pysmb 1.0.0</a></li> | |
56 | </ul> | |
57 | </li> | |
58 | </ul> | |
59 | ||
60 | <div role="note" aria-label="source link"> | |
61 | <h3>This Page</h3> | |
62 | <ul class="this-page-menu"> | |
63 | <li><a href="_sources/upgrading.txt" | |
64 | rel="nofollow">Show Source</a></li> | |
65 | </ul> | |
66 | </div> | |
67 | <div id="searchbox" style="display: none" role="search"> | |
68 | <h3>Quick search</h3> | |
69 | <form class="search" action="search.html" method="get"> | |
70 | <input type="text" name="q" /> | |
71 | <input type="submit" value="Go" /> | |
72 | <input type="hidden" name="check_keywords" value="yes" /> | |
73 | <input type="hidden" name="area" value="default" /> | |
74 | </form> | |
75 | <p class="searchtip" style="font-size: 90%"> | |
76 | Enter search terms or a module, class or function name. | |
77 | </p> | |
78 | </div> | |
79 | <script type="text/javascript">$('#searchbox').show(0);</script> | |
80 | </div> | |
81 | </div> | |
82 | ||
83 | <div class="document"> | |
84 | <div class="documentwrapper"> | |
85 | <div class="bodywrapper"> | |
86 | <div class="body" role="main"> | |
87 | ||
88 | <div class="section" id="upgrading-from-older-pysmb-versions"> | |
89 | <h1>Upgrading from older pysmb versions<a class="headerlink" href="#upgrading-from-older-pysmb-versions" title="Permalink to this headline">¶</a></h1> | |
90 | <p>This page documents the improvements and changes to the API that could be incompatible with previous releases.</p> | |
91 | <div class="section" id="pysmb-1-2-0"> | |
92 | <h2>pysmb 1.2.0<a class="headerlink" href="#pysmb-1-2-0" title="Permalink to this headline">¶</a></h2> | |
93 | <ul class="simple"> | |
94 | <li>Add new <cite>delete_matching_folders</cite> parameter to <cite>deleteFiles()</cite> method in SMBProtocolFactory and SMBConnection | |
95 | class to support deletion of sub-folders. If you are passing timeout parameter to the <cite>deleteFiles()</cite> method | |
96 | in your application, please switch to using named parameter for timeout.</li> | |
97 | </ul> | |
98 | </div> | |
99 | <div class="section" id="pysmb-1-1-28"> | |
100 | <h2>pysmb 1.1.28<a class="headerlink" href="#pysmb-1-1-28" title="Permalink to this headline">¶</a></h2> | |
101 | <ul class="simple"> | |
102 | <li>SharedFile instances returned from the <cite>listPath()</cite> method now has a new property | |
103 | <cite>file_id</cite> attribute which represents the file reference number given by the remote SMB server.</li> | |
104 | </ul> | |
105 | </div> | |
106 | <div class="section" id="pysmb-1-1-26"> | |
107 | <h2>pysmb 1.1.26<a class="headerlink" href="#pysmb-1-1-26" title="Permalink to this headline">¶</a></h2> | |
108 | <ul class="simple"> | |
109 | <li>SMBConnection class can now be used as a context manager</li> | |
110 | </ul> | |
111 | </div> | |
112 | <div class="section" id="pysmb-1-1-25"> | |
113 | <h2>pysmb 1.1.25<a class="headerlink" href="#pysmb-1-1-25" title="Permalink to this headline">¶</a></h2> | |
114 | <ul class="simple"> | |
115 | <li>SharedFile class has a new property <cite>isNormal</cite> which will be True if the file is a | |
116 | ‘normal’ file. pysmb defines a ‘normal’ file as a file entry that is not | |
117 | read-only, not hidden, not system, not archive and not a directory; | |
118 | it ignores other attributes like compression, indexed, sparse, temporary and encryption.</li> | |
119 | <li><cite>listPath()</cite> method in SMBProtocolFactory and SMBConnection class will now include | |
120 | ‘normal’ files by default if you do not specify the <cite>search</cite> parameter.</li> | |
121 | </ul> | |
122 | </div> | |
123 | <div class="section" id="pysmb-1-1-20"> | |
124 | <h2>pysmb 1.1.20<a class="headerlink" href="#pysmb-1-1-20" title="Permalink to this headline">¶</a></h2> | |
125 | <ul class="simple"> | |
126 | <li>A new method <cite>getSecurity()</cite> was added to SMBConnection and SMBProtocolFactory class.</li> | |
127 | </ul> | |
128 | </div> | |
129 | <div class="section" id="pysmb-1-1-15"> | |
130 | <h2>pysmb 1.1.15<a class="headerlink" href="#pysmb-1-1-15" title="Permalink to this headline">¶</a></h2> | |
131 | <ul class="simple"> | |
132 | <li>Add new <cite>truncate</cite> parameter to <cite>storeFileFromOffset()</cite> in SMBProtocolFactory and SMBConnection | |
133 | class to support truncation of the file before writing. If you are passing timeout parameter | |
134 | to the <cite>storeFileFromOffset()</cite> method in your application, please switch to using named parameter for timeout.</li> | |
135 | </ul> | |
136 | </div> | |
137 | <div class="section" id="pysmb-1-1-11"> | |
138 | <h2>pysmb 1.1.11<a class="headerlink" href="#pysmb-1-1-11" title="Permalink to this headline">¶</a></h2> | |
139 | <ul class="simple"> | |
140 | <li>A new method <cite>storeFileFromOffset()</cite> was added to SMBConnection and SMBProtocolFactory class.</li> | |
141 | </ul> | |
142 | </div> | |
143 | <div class="section" id="pysmb-1-1-10"> | |
144 | <h2>pysmb 1.1.10<a class="headerlink" href="#pysmb-1-1-10" title="Permalink to this headline">¶</a></h2> | |
145 | <ul class="simple"> | |
146 | <li>A new method <cite>getAttributes()</cite> was added to SMBConnection and SMBProtocolFactory class</li> | |
147 | <li>SharedFile class has a new property <cite>isReadOnly</cite> to indicate the file is read-only on the remote filesystem.</li> | |
148 | </ul> | |
149 | </div> | |
150 | <div class="section" id="pysmb-1-1-2"> | |
151 | <h2>pysmb 1.1.2<a class="headerlink" href="#pysmb-1-1-2" title="Permalink to this headline">¶</a></h2> | |
152 | <ul class="simple"> | |
153 | <li><cite>queryIPForName()</cite> method in nmb.NetBIOS and nmb.NBNSProtocol class will now return only the server machine name and ignore workgroup names.</li> | |
154 | </ul> | |
155 | </div> | |
156 | <div class="section" id="pysmb-1-0-3"> | |
157 | <h2>pysmb 1.0.3<a class="headerlink" href="#pysmb-1-0-3" title="Permalink to this headline">¶</a></h2> | |
158 | <ul class="simple"> | |
159 | <li>Two new methods were added to NBNSProtocol class: <cite>queryIPForName()</cite> and <cite>NetBIOS.queryIPForName()</cite> | |
160 | to support querying for a machine’s NetBIOS name at the given IP address.</li> | |
161 | <li>A new method <cite>retrieveFileFromOffset()</cite> was added to SMBProtocolFactory and SMBConnection | |
162 | to support finer control of file retrieval operation.</li> | |
163 | </ul> | |
164 | </div> | |
165 | <div class="section" id="pysmb-1-0-0"> | |
166 | <h2>pysmb 1.0.0<a class="headerlink" href="#pysmb-1-0-0" title="Permalink to this headline">¶</a></h2> | |
167 | <p>pysmb was completely rewritten in version 1.0.0. | |
168 | If you are upgrading from pysmb 0.x, you most likely have to rewrite your application for the new 1.x API.</p> | |
169 | </div> | |
170 | </div> | |
171 | ||
172 | ||
173 | </div> | |
174 | </div> | |
175 | </div> | |
176 | <div class="clearer"></div> | |
177 | </div> | |
178 | <div class="related" role="navigation" aria-label="related navigation"> | |
179 | <h3>Navigation</h3> | |
180 | <ul> | |
181 | <li class="right" style="margin-right: 10px"> | |
182 | <a href="genindex.html" title="General Index" | |
183 | >index</a></li> | |
184 | <li class="right" > | |
185 | <a href="py-modindex.html" title="Python Module Index" | |
186 | >modules</a> |</li> | |
187 | <li class="nav-item nav-item-0"><a href="index.html">pysmb 1.2.0 documentation</a> »</li> | |
188 | </ul> | |
189 | </div> | |
190 | <div class="footer" role="contentinfo"> | |
191 | © Copyright 2001-2020, Michael Teo https://miketeo.net/. | |
192 | Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.3.6. | |
193 | </div> | |
194 | </body> | |
195 | </html>⏎ |
7 | 7 | |
8 | 8 | pysmb is a pure Python implementation of the client-side SMB/CIFS protocol (SMB1 and SMB2) which is the underlying protocol |
9 | 9 | that facilitates file sharing and printing between Windows machines, as well as with Linux machines via the Samba server application. |
10 | pysmb is developed in Python 2.4.6, Python 2.7.1 and Python 3.2.3 and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x. | |
10 | pysmb is developed in Python 2.7.x and Python 3.5.x and has been tested against shared folders on Windows XP SP3, Windows Vista, Windows 7 and Samba 3.x. | |
11 | 11 | |
12 | The latest version of pysmb is always available at the pysmb project page at `miketeo.net <http://miketeo.net/wp/index.php/projects/pysmb>`_. | |
12 | The latest version of pysmb is always available at the pysmb project page at `miketeo.net <http://miketeo.net/projects/pysmb>`_. | |
13 | 13 | |
14 | 14 | License |
15 | 15 | ------- |
89 | 89 | As a software developer who is looking to modify pysmb so that you can integrate it to other network frameworks: |
90 | 90 | * Read :doc:`extending` |
91 | 91 | |
92 | If you are upgrading from older pysmb versions: | |
93 | * Read :doc:`upgrading` | |
92 | 94 | |
93 | 95 | |
94 | 96 | Indices and tables |
100 | 102 | |
101 | 103 | api/* |
102 | 104 | extending |
105 | upgrading | |
103 | 106 | |
104 | 107 | * :ref:`genindex` |
105 | 108 | * :ref:`search` |
0 | Upgrading from older pysmb versions | |
1 | ==================================== | |
2 | ||
3 | This page documents the improvements and changes to the API that could be incompatible with previous releases. | |
4 | ||
5 | pysmb 1.2.0 | |
6 | ----------- | |
7 | - Add new `delete_matching_folders` parameter to `deleteFiles()` method in SMBProtocolFactory and SMBConnection | |
8 | class to support deletion of sub-folders. If you are passing timeout parameter to the `deleteFiles()` method | |
9 | in your application, please switch to using named parameter for timeout. | |
10 | ||
11 | pysmb 1.1.28 | |
12 | ------------ | |
13 | - SharedFile instances returned from the `listPath()` method now has a new property | |
14 | `file_id` attribute which represents the file reference number given by the remote SMB server. | |
15 | ||
16 | pysmb 1.1.26 | |
17 | ------------ | |
18 | - SMBConnection class can now be used as a context manager | |
19 | ||
20 | pysmb 1.1.25 | |
21 | ------------ | |
22 | - SharedFile class has a new property `isNormal` which will be True if the file is a | |
23 | 'normal' file. pysmb defines a 'normal' file as a file entry that is not | |
24 | read-only, not hidden, not system, not archive and not a directory; | |
25 | it ignores other attributes like compression, indexed, sparse, temporary and encryption. | |
26 | - `listPath()` method in SMBProtocolFactory and SMBConnection class will now include | |
27 | 'normal' files by default if you do not specify the `search` parameter. | |
28 | ||
29 | pysmb 1.1.20 | |
30 | ------------ | |
31 | - A new method `getSecurity()` was added to SMBConnection and SMBProtocolFactory class. | |
32 | ||
33 | pysmb 1.1.15 | |
34 | ------------ | |
35 | - Add new `truncate` parameter to `storeFileFromOffset()` in SMBProtocolFactory and SMBConnection | |
36 | class to support truncation of the file before writing. If you are passing timeout parameter | |
37 | to the `storeFileFromOffset()` method in your application, please switch to using named parameter for timeout. | |
38 | ||
39 | pysmb 1.1.11 | |
40 | ------------ | |
41 | - A new method `storeFileFromOffset()` was added to SMBConnection and SMBProtocolFactory class. | |
42 | ||
43 | pysmb 1.1.10 | |
44 | ------------ | |
45 | - A new method `getAttributes()` was added to SMBConnection and SMBProtocolFactory class | |
46 | - SharedFile class has a new property `isReadOnly` to indicate the file is read-only on the remote filesystem. | |
47 | ||
48 | pysmb 1.1.2 | |
49 | ----------- | |
50 | - `queryIPForName()` method in nmb.NetBIOS and nmb.NBNSProtocol class will now return only the server machine name and ignore workgroup names. | |
51 | ||
52 | pysmb 1.0.3 | |
53 | ----------- | |
54 | - Two new methods were added to NBNSProtocol class: `queryIPForName()` and `NetBIOS.queryIPForName()` | |
55 | to support querying for a machine's NetBIOS name at the given IP address. | |
56 | - A new method `retrieveFileFromOffset()` was added to SMBProtocolFactory and SMBConnection | |
57 | to support finer control of file retrieval operation. | |
58 | ||
59 | pysmb 1.0.0 | |
60 | ----------- | |
61 | pysmb was completely rewritten in version 1.0.0. | |
62 | If you are upgrading from pysmb 0.x, you most likely have to rewrite your application for the new 1.x API. |