(self, shares=[], ssp=None, verb=True, readonly=True, *args, **kwargs)
| 221 | socketcls = SMBStreamSocket |
| 222 | |
| 223 | def __init__(self, shares=[], ssp=None, verb=True, readonly=True, *args, **kwargs): |
| 224 | self.verb = verb |
| 225 | if "sock" not in kwargs: |
| 226 | raise ValueError( |
| 227 | "SMB_Server cannot be started directly ! Use SMB_Server.spawn" |
| 228 | ) |
| 229 | # Various SMB server arguments |
| 230 | self.ANONYMOUS_LOGIN = kwargs.pop("ANONYMOUS_LOGIN", False) |
| 231 | self.GUEST_LOGIN = kwargs.pop("GUEST_LOGIN", None) |
| 232 | self.EXTENDED_SECURITY = kwargs.pop("EXTENDED_SECURITY", True) |
| 233 | self.USE_SMB1 = kwargs.pop("USE_SMB1", False) |
| 234 | self.REQUIRE_SIGNATURE = kwargs.pop("REQUIRE_SIGNATURE", None) |
| 235 | self.REQUIRE_ENCRYPTION = kwargs.pop("REQUIRE_ENCRYPTION", False) |
| 236 | self.MAX_DIALECT = kwargs.pop("MAX_DIALECT", 0x0311) |
| 237 | self.TREE_SHARE_FLAGS = kwargs.pop( |
| 238 | "TREE_SHARE_FLAGS", "FORCE_LEVELII_OPLOCK+RESTRICT_EXCLUSIVE_OPENS" |
| 239 | ) |
| 240 | self.TREE_CAPABILITIES = kwargs.pop("TREE_CAPABILITIES", 0) |
| 241 | self.TREE_MAXIMAL_ACCESS = kwargs.pop( |
| 242 | "TREE_MAXIMAL_ACCESS", |
| 243 | "+".join( |
| 244 | [ |
| 245 | "FILE_READ_DATA", |
| 246 | "FILE_WRITE_DATA", |
| 247 | "FILE_APPEND_DATA", |
| 248 | "FILE_READ_EA", |
| 249 | "FILE_WRITE_EA", |
| 250 | "FILE_EXECUTE", |
| 251 | "FILE_DELETE_CHILD", |
| 252 | "FILE_READ_ATTRIBUTES", |
| 253 | "FILE_WRITE_ATTRIBUTES", |
| 254 | "DELETE", |
| 255 | "READ_CONTROL", |
| 256 | "WRITE_DAC", |
| 257 | "WRITE_OWNER", |
| 258 | "SYNCHRONIZE", |
| 259 | ] |
| 260 | ), |
| 261 | ) |
| 262 | self.FILE_MAXIMAL_ACCESS = kwargs.pop( |
| 263 | # Read-only |
| 264 | "FILE_MAXIMAL_ACCESS", |
| 265 | "+".join( |
| 266 | [ |
| 267 | "FILE_READ_DATA", |
| 268 | "FILE_READ_EA", |
| 269 | "FILE_EXECUTE", |
| 270 | "FILE_READ_ATTRIBUTES", |
| 271 | "READ_CONTROL", |
| 272 | "SYNCHRONIZE", |
| 273 | ] |
| 274 | ), |
| 275 | ) |
| 276 | self.LOCAL_IPS = kwargs.pop( |
| 277 | "LOCAL_IPS", [get_if_addr(kwargs.get("iface", conf.iface) or conf.iface)] |
| 278 | ) |
| 279 | self.DOMAIN_REFERRALS = kwargs.pop("DOMAIN_REFERRALS", []) |
| 280 | if self.USE_SMB1: |
nothing calls this directly
no test coverage detected