mirror of
https://github.com/9001/copyparty.git
synced 2026-04-12 15:22:32 -06:00
smb: add ipv6 support; closes #1417
This commit is contained in:
parent
0b16e875da
commit
a5d859d2b1
|
|
@ -1520,6 +1520,7 @@ def add_smb(ap):
|
||||||
ap2.add_argument("--smb-nwa-1", action="store_true", help="truncate directory listings to 64kB (~400 files); avoids impacket-0.11 bug, fixes impacket-0.12 performance")
|
ap2.add_argument("--smb-nwa-1", action="store_true", help="truncate directory listings to 64kB (~400 files); avoids impacket-0.11 bug, fixes impacket-0.12 performance")
|
||||||
ap2.add_argument("--smb-nwa-2", action="store_true", help="disable impacket workaround for filecopy globs")
|
ap2.add_argument("--smb-nwa-2", action="store_true", help="disable impacket workaround for filecopy globs")
|
||||||
ap2.add_argument("--smba", action="store_true", help="small performance boost: disable per-account permissions, enables account coalescing instead (if one user has write/delete-access, then everyone does)")
|
ap2.add_argument("--smba", action="store_true", help="small performance boost: disable per-account permissions, enables account coalescing instead (if one user has write/delete-access, then everyone does)")
|
||||||
|
ap2.add_argument("--smb6", action="store_true", help="enable IPv6")
|
||||||
ap2.add_argument("--smbv", action="store_true", help="verbose")
|
ap2.add_argument("--smbv", action="store_true", help="verbose")
|
||||||
ap2.add_argument("--smbvv", action="store_true", help="verboser")
|
ap2.add_argument("--smbvv", action="store_true", help="verboser")
|
||||||
ap2.add_argument("--smbvvv", action="store_true", help="verbosest")
|
ap2.add_argument("--smbvvv", action="store_true", help="verbosest")
|
||||||
|
|
|
||||||
|
|
@ -89,13 +89,15 @@ class SMB(object):
|
||||||
smbserver.isInFileJail = self._is_in_file_jail
|
smbserver.isInFileJail = self._is_in_file_jail
|
||||||
self._disarm()
|
self._disarm()
|
||||||
|
|
||||||
ip = next((x for x in self.args.smb_i if ":" not in x), None)
|
zs = " " if self.args.smb6 else ":"
|
||||||
|
ip = next((x for x in self.args.smb_i if zs not in x), None)
|
||||||
if not ip:
|
if not ip:
|
||||||
self.log("smb", "IPv6 not supported for SMB; listening on 0.0.0.0", 3)
|
self.log("smb", "IPv6 not enabled with --smb6; listening on 0.0.0.0", 3)
|
||||||
ip = "0.0.0.0"
|
ip = "0.0.0.0"
|
||||||
|
|
||||||
port = int(self.args.smb_port)
|
port = int(self.args.smb_port)
|
||||||
srv = smbserver.SimpleSMBServer(listenAddress=ip, listenPort=port)
|
kw = {"ipv6": True} if ":" in ip else {}
|
||||||
|
srv = smbserver.SimpleSMBServer(listenAddress=ip, listenPort=port, **kw)
|
||||||
try:
|
try:
|
||||||
if self.accs:
|
if self.accs:
|
||||||
srv.setAuthCallback(self._auth_cb)
|
srv.setAuthCallback(self._auth_cb)
|
||||||
|
|
@ -121,6 +123,7 @@ class SMB(object):
|
||||||
|
|
||||||
self.srv = srv
|
self.srv = srv
|
||||||
self.stop = srv.stop
|
self.stop = srv.stop
|
||||||
|
ip = "[%s]" % (ip,) if kw else ip
|
||||||
self.log("smb", "listening @ {}:{}".format(ip, port))
|
self.log("smb", "listening @ {}:{}".format(ip, port))
|
||||||
|
|
||||||
def nlog(self, msg: str, c: Union[int, str] = 0) -> None:
|
def nlog(self, msg: str, c: Union[int, str] = 0) -> None:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue