A PySocks alapértéke nem irányítja át az ftplibet
Kövesse azokat a socketeket, amelyeket az ftplib valóban létrehoz, ahelyett hogy feltételezné, hogy a set_default_proxy megváltoztatja a Python natív socket-megvalósítását.
socks.set_default_proxy() alapértékeket tárol a jövőbeli PySocks socksocket objektumokhoz. Nem cseréli le a Python natív socket osztályát. Ezért nem irányítja át az ftplibet csupán azért, mert a hívás FTP-kapcsolat előtt történik.
A konstruktorokat kövesse, ne a proxy URL-jét tartó változót. Az ftplib egy vezérlőkapcsolatot és további átviteli kapcsolatokat hoz létre. Passzív FTP esetén a sikeres bejelentkezés csak azt bizonyítja, hogy a vezérlőkapcsolat működött; a listázáshoz vagy fájlátvitelhez használt adat-socketnek is szüksége van a szánt útvonalra.
Egy olyan recept, amely lecseréli a socket.socket-t vagy becsomagol egy modult, a PySocks alapértékeinek beállításán túl más műveletet végez. Hathat más, ugyanazt a modult használó könyvtárakra. Az eredeti utólagos ideiglenes visszaállítása nem különíti el az egyidejű kapcsolatokat a módosítástól.
Egy egyedi ftplib-alklasz lefedheti a kapcsolati útvonalakat, de a másolt belső részek magukkal hordozzák annak a Python-kiadásnak a feltételezéseit, amelyből származnak, beleértve az időtúllépés-őrszemeket és a protokollkezelést. A szabványos könyvtár frissítései nem frissítik a másolatot.
Válasszon karbantartott klienst vagy támogatott integrációt a szükséges proxyhoz és FTP-módhoz. Egy PycURL-es passzív FTP-letöltési példa külön kliensútvonalat mutat. Az alkalmazás saját testreszabásához állapítsa meg, melyik konstruktor nyitja az egyes vezérlő- és adat-socketeket, és őrizze meg a felülírt felsőbb szintű viselkedést. A helyes proxyérték csak akkor hasznos, ha ezek a konstruktorok valóban felhasználják.