Python stat.S_ISSOCK Examples
The following are 30
code examples of stat.S_ISSOCK().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
stat
, or try the search function
.
Example #1
Source File: plugin.py From phpsploit with GNU General Public License v3.0 | 6 votes |
def mode_filetype(mode): mode = stat.S_IFMT(mode) dic = { stat.S_ISFIFO: "fifo file", stat.S_ISCHR: "character device", stat.S_ISDIR: "directory", stat.S_ISBLK: "block device", stat.S_ISREG: "regular file", stat.S_ISLNK: "symbolic link", stat.S_ISSOCK: "socket", stat.S_ISDOOR: "door", } for test_func, name in dic.items(): if test_func(mode): return name return "???"
Example #2
Source File: test_testutils.py From psutil with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_unix_socketpair(self): p = psutil.Process() num_fds = p.num_fds() assert not p.connections(kind='unix') name = self.get_testfn() server, client = unix_socketpair(name) try: assert os.path.exists(name) assert stat.S_ISSOCK(os.stat(name).st_mode) self.assertEqual(p.num_fds() - num_fds, 2) self.assertEqual(len(p.connections(kind='unix')), 2) self.assertEqual(server.getsockname(), name) self.assertEqual(client.getpeername(), name) finally: client.close() server.close()
Example #3
Source File: unix_events.py From ironpython3 with Apache License 2.0 | 6 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra) self._extra['pipe'] = pipe self._loop = loop self._pipe = pipe self._fileno = pipe.fileno() mode = os.fstat(self._fileno).st_mode if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode) or stat.S_ISCHR(mode)): raise ValueError("Pipe transport is for pipes/sockets only.") _set_nonblocking(self._fileno) self._protocol = protocol self._closing = False self._loop.call_soon(self._protocol.connection_made, self) # only start reading when connection_made() has been called self._loop.call_soon(self._loop.add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(futures._set_result_unless_cancelled, waiter, None)
Example #4
Source File: kubernetes_monitor.py From scalyr-agent-2 with Apache License 2.0 | 6 votes |
def __get_socket_file(self): """Gets the Docker API socket file and validates that it is a UNIX socket """ # make sure the API socket exists and is a valid socket api_socket = self._config.get("api_socket") try: st = os.stat(api_socket) if not stat.S_ISSOCK(st.st_mode): raise Exception() except Exception: raise Exception( "The file '%s' specified by the 'api_socket' configuration option does not exist or is not a socket.\n\tPlease make sure you have mapped the docker socket from the host to this container using the -v parameter.\n\tNote: Due to problems Docker has mapping symbolic links, you should specify the final file and not a path that contains a symbolic link, e.g. map /run/docker.sock rather than /var/run/docker.sock as on many unices /var/run is a symbolic link to the /run directory." % api_socket ) return api_socket
Example #5
Source File: test_caldav.py From ccs-calendarserver with Apache License 2.0 | 6 votes |
def test_groupOwnedUNIXSocket(self): """ When a L{GroupOwnedUNIXServer} is started, it will change the group of its socket. """ alternateGroup = determineAppropriateGroupID() if alternateGroup is None: self.skipTest (( "This test requires that the user running it is a member of at" " least two unix groups." )) socketName = self.mktemp() gous = GroupOwnedUNIXServer(alternateGroup, socketName, ServerFactory(), mode=0660) gous.privilegedStartService() self.addCleanup(gous.stopService) filestat = os.stat(socketName) self.assertTrue(stat.S_ISSOCK(filestat.st_mode)) self.assertEquals(filestat.st_gid, alternateGroup) self.assertEquals(filestat.st_uid, os.getuid()) # Tests for the various makeService_ flavors:
Example #6
Source File: docker_monitor.py From scalyr-agent-2 with Apache License 2.0 | 6 votes |
def __get_socket_file(self): """Gets the Docker API socket file and validates that it is a UNIX socket """ # make sure the API socket exists and is a valid socket api_socket = self._config.get("api_socket") try: st = os.stat(api_socket) if not stat.S_ISSOCK(st.st_mode): raise Exception() except Exception: raise Exception( "The file '%s' specified by the 'api_socket' configuration option does not exist or is not a socket.\n\tPlease make sure you have mapped the docker socket from the host to this container using the -v parameter.\n\tNote: Due to problems Docker has mapping symbolic links, you should specify the final file and not a path that contains a symbolic link, e.g. map /run/docker.sock rather than /var/run/docker.sock as on many unices /var/run is a symbolic link to the /run directory." % api_socket ) return api_socket
Example #7
Source File: filegenerator.py From bash-lambda-layer with MIT License | 6 votes |
def is_special_file(path): """ This function checks to see if a special file. It checks if the file is a character special device, block special device, FIFO, or socket. """ mode = os.stat(path).st_mode # Character special device. if stat.S_ISCHR(mode): return True # Block special device if stat.S_ISBLK(mode): return True # FIFO. if stat.S_ISFIFO(mode): return True # Socket. if stat.S_ISSOCK(mode): return True return False
Example #8
Source File: test_tap.py From Safejumper-for-Desktop with GNU General Public License v2.0 | 6 votes |
def test_pathServer(self): """ The I{--path} option to L{makeService} causes it to return a service which will listen on the server address given by the I{--port} option. """ path = FilePath(self.mktemp()) path.makedirs() port = self.mktemp() options = Options() options.parseOptions(['--port', 'unix:' + port, '--path', path.path]) service = makeService(options) service.startService() self.addCleanup(service.stopService) self.assertIsInstance(service.services[0].factory.resource, File) self.assertEqual(service.services[0].factory.resource.path, path.path) self.assertTrue(os.path.exists(port)) self.assertTrue(stat.S_ISSOCK(os.stat(port).st_mode))
Example #9
Source File: test_misc.py From vnpy_crypto with MIT License | 6 votes |
def test_unix_socketpair(self): p = psutil.Process() num_fds = p.num_fds() assert not p.connections(kind='unix') with unix_socket_path() as name: server, client = unix_socketpair(name) try: assert os.path.exists(name) assert stat.S_ISSOCK(os.stat(name).st_mode) self.assertEqual(p.num_fds() - num_fds, 2) self.assertEqual(len(p.connections(kind='unix')), 2) self.assertEqual(server.getsockname(), name) self.assertEqual(client.getpeername(), name) finally: client.close() server.close()
Example #10
Source File: server.py From accelerator with Apache License 2.0 | 6 votes |
def check_socket(fn): dn = os.path.dirname(fn) try: os.mkdir(dn, 0o750) except OSError: pass try: s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: s.connect(fn) finally: s.close() except socket.error: try: assert S_ISSOCK(os.lstat(fn).st_mode), fn + " exists as non-socket" os.unlink(fn) except OSError: pass return raise Exception("Socket %s already listening" % (fn,))
Example #11
Source File: test_tap.py From learn_python3_spider with MIT License | 6 votes |
def test_pathServer(self): """ The I{--path} option to L{makeService} causes it to return a service which will listen on the server address given by the I{--port} option. """ path = FilePath(self.mktemp()) path.makedirs() port = self.mktemp() options = Options() options.parseOptions(['--port', 'unix:' + port, '--path', path.path]) service = makeService(options) service.startService() self.addCleanup(service.stopService) self.assertIsInstance(service.services[0].factory.resource, File) self.assertEqual(service.services[0].factory.resource.path, path.path) self.assertTrue(os.path.exists(port)) self.assertTrue(stat.S_ISSOCK(os.stat(port).st_mode))
Example #12
Source File: __main__.py From profiling with BSD 3-Clause "New" or "Revised" License | 6 votes |
def convert(self, value, param, ctx): src_type = False try: mode = os.stat(value).st_mode except OSError: try: src_name = Endpoint().convert(value, param, ctx) except ValueError: pass else: src_type = 'tcp' else: src_name = value if S_ISSOCK(mode): src_type = 'sock' elif S_ISREG(mode): src_type = 'dump' if not src_type: raise ValueError('Dump file or socket address required.') return (src_type, src_name)
Example #13
Source File: unix_events.py From annotated-py-projects with MIT License | 6 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra) self._extra['pipe'] = pipe self._loop = loop self._pipe = pipe self._fileno = pipe.fileno() mode = os.fstat(self._fileno).st_mode if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode) or stat.S_ISCHR(mode)): raise ValueError("Pipe transport is for pipes/sockets only.") _set_nonblocking(self._fileno) self._protocol = protocol self._closing = False self._loop.call_soon(self._protocol.connection_made, self) # only start reading when connection_made() has been called self._loop.call_soon(self._loop.add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(waiter._set_result_unless_cancelled, None)
Example #14
Source File: unix_events.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra) self._extra['pipe'] = pipe self._loop = loop self._pipe = pipe self._fileno = pipe.fileno() mode = os.fstat(self._fileno).st_mode if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode) or stat.S_ISCHR(mode)): raise ValueError("Pipe transport is for pipes/sockets only.") _set_nonblocking(self._fileno) self._protocol = protocol self._closing = False self._loop.call_soon(self._protocol.connection_made, self) # only start reading when connection_made() has been called self._loop.call_soon(self._loop.add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(futures._set_result_unless_cancelled, waiter, None)
Example #15
Source File: test_tap.py From python-for-android with Apache License 2.0 | 5 votes |
def test_personalServer(self): """ The I{--personal} option to L{makeService} causes it to return a service which will listen on the server address given by the I{--port} option. """ port = self.mktemp() options = Options() options.parseOptions(['--port', 'unix:' + port, '--personal']) service = makeService(options) service.startService() self.addCleanup(service.stopService) self.assertTrue(os.path.exists(port)) self.assertTrue(stat.S_ISSOCK(os.stat(port).st_mode))
Example #16
Source File: fd.py From owasp-pysec with Apache License 2.0 | 5 votes |
def __init__(self, fd, origin=None): super(self.__class__, self).__init__(fd) if not stat.S_ISSOCK(self.mode): raise WrongFileType(Socket, fd=self.fd) family = self.family for name, meth in inspect.getmembers(self, predicate=inspect.ismethod): ok = getattr(meth, '__sock_family__', None) if ok is not None and not ok: delattr(meth, name)
Example #17
Source File: filesystem.py From rules_pip with MIT License | 5 votes |
def is_socket(path): # type: (str) -> bool return stat.S_ISSOCK(os.lstat(path).st_mode)
Example #18
Source File: utils.py From aws-extender with MIT License | 5 votes |
def is_special_file(cls, filename): """Checks to see if a file is a special UNIX file. It checks if the file is a character special device, block special device, FIFO, or socket. :param filename: Name of the file :returns: True if the file is a special file. False, if is not. """ # If it does not exist, it must be a new file so it cannot be # a special file. if not os.path.exists(filename): return False mode = os.stat(filename).st_mode # Character special device. if stat.S_ISCHR(mode): return True # Block special device if stat.S_ISBLK(mode): return True # Named pipe / FIFO if stat.S_ISFIFO(mode): return True # Socket. if stat.S_ISSOCK(mode): return True return False
Example #19
Source File: pathlib.py From pyRevit with GNU General Public License v3.0 | 5 votes |
def is_socket(self): """ Whether this path is a socket. """ try: return S_ISSOCK(self.stat().st_mode) except OSError as e: if e.errno != ENOENT: raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False
Example #20
Source File: cli.py From gitlint with MIT License | 5 votes |
def get_stdin_data(): """ Helper function that returns data send to stdin or False if nothing is send """ # STDIN can only be 3 different types of things ("modes") # 1. An interactive terminal device (i.e. a TTY -> sys.stdin.isatty() or stat.S_ISCHR) # 2. A (named) pipe (stat.S_ISFIFO) # 3. A regular file (stat.S_ISREG) # Technically, STDIN can also be other device type like a named unix socket (stat.S_ISSOCK), but we don't # support that in gitlint (at least not today). # # Now, the behavior that we want is the following: # If someone sends something directly to gitlint via a pipe or a regular file, read it. If not, read from the # local repository. # Note that we don't care about whether STDIN is a TTY or not, we only care whether data is via a pipe or regular # file. # However, in case STDIN is not a TTY, it HAS to be one of the 2 other things (pipe or regular file), even if # no-one is actually sending anything to gitlint over them. In this case, we still want to read from the local # repository. # To support this use-case (which is common in CI runners such as Jenkins and Gitlab), we need to actually attempt # to read from STDIN in case it's a pipe or regular file. In case that fails, then we'll fall back to reading # from the local repo. mode = os.fstat(sys.stdin.fileno()).st_mode stdin_is_pipe_or_file = stat.S_ISFIFO(mode) or stat.S_ISREG(mode) if stdin_is_pipe_or_file: input_data = sys.stdin.read() # Only return the input data if there's actually something passed # i.e. don't consider empty piped data if input_data: return ustr(input_data) return False
Example #21
Source File: pathlib.py From ironpython3 with Apache License 2.0 | 5 votes |
def is_socket(self): """ Whether this path is a socket. """ try: return S_ISSOCK(self.stat().st_mode) except OSError as e: if e.errno not in (ENOENT, ENOTDIR): raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False
Example #22
Source File: metadata.py From honeything with GNU General Public License v3.0 | 5 votes |
def _recognized_file_type(self): return stat.S_ISREG(self.mode) \ or stat.S_ISDIR(self.mode) \ or stat.S_ISCHR(self.mode) \ or stat.S_ISBLK(self.mode) \ or stat.S_ISFIFO(self.mode) \ or stat.S_ISSOCK(self.mode) \ or stat.S_ISLNK(self.mode)
Example #23
Source File: utils.py From bash-lambda-layer with MIT License | 5 votes |
def is_special_file(cls, filename): """Checks to see if a file is a special UNIX file. It checks if the file is a character special device, block special device, FIFO, or socket. :param filename: Name of the file :returns: True if the file is a special file. False, if is not. """ # If it does not exist, it must be a new file so it cannot be # a special file. if not os.path.exists(filename): return False mode = os.stat(filename).st_mode # Character special device. if stat.S_ISCHR(mode): return True # Block special device if stat.S_ISBLK(mode): return True # Named pipe / FIFO if stat.S_ISFIFO(mode): return True # Socket. if stat.S_ISSOCK(mode): return True return False
Example #24
Source File: filepath.py From learn_python3_spider with MIT License | 5 votes |
def isSocket(self): """ Returns whether the underlying path is a socket. @return: C{True} if it is a socket, C{False} otherwise @rtype: L{bool} @since: 11.1 """ st = self._statinfo if not st: self.restat(False) st = self._statinfo if not st: return False return S_ISSOCK(st.st_mode)
Example #25
Source File: test_tap.py From learn_python3_spider with MIT License | 5 votes |
def test_personalServer(self): """ The I{--personal} option to L{makeService} causes it to return a service which will listen on the server address given by the I{--port} option. """ port = self.mktemp() options = Options() options.parseOptions(['--port', 'unix:' + port, '--personal']) service = makeService(options) service.startService() self.addCleanup(service.stopService) self.assertTrue(os.path.exists(port)) self.assertTrue(stat.S_ISSOCK(os.stat(port).st_mode))
Example #26
Source File: unix_events.py From Imogen with MIT License | 5 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra, loop) self._extra['pipe'] = pipe self._pipe = pipe self._fileno = pipe.fileno() self._protocol = protocol self._buffer = bytearray() self._conn_lost = 0 self._closing = False # Set when close() or write_eof() called. mode = os.fstat(self._fileno).st_mode is_char = stat.S_ISCHR(mode) is_fifo = stat.S_ISFIFO(mode) is_socket = stat.S_ISSOCK(mode) if not (is_char or is_fifo or is_socket): self._pipe = None self._fileno = None self._protocol = None raise ValueError("Pipe transport is only for " "pipes, sockets and character devices") os.set_blocking(self._fileno, False) self._loop.call_soon(self._protocol.connection_made, self) # On AIX, the reader trick (to be notified when the read end of the # socket is closed) only works for sockets. On other platforms it # works for pipes and sockets. (Exception: OS X 10.4? Issue #19294.) if is_socket or (is_fifo and not sys.platform.startswith("aix")): # only start reading when connection_made() has been called self._loop.call_soon(self._loop._add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(futures._set_result_unless_cancelled, waiter, None)
Example #27
Source File: unix_events.py From Imogen with MIT License | 5 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra) self._extra['pipe'] = pipe self._loop = loop self._pipe = pipe self._fileno = pipe.fileno() self._protocol = protocol self._closing = False mode = os.fstat(self._fileno).st_mode if not (stat.S_ISFIFO(mode) or stat.S_ISSOCK(mode) or stat.S_ISCHR(mode)): self._pipe = None self._fileno = None self._protocol = None raise ValueError("Pipe transport is for pipes/sockets only.") os.set_blocking(self._fileno, False) self._loop.call_soon(self._protocol.connection_made, self) # only start reading when connection_made() has been called self._loop.call_soon(self._loop._add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(futures._set_result_unless_cancelled, waiter, None)
Example #28
Source File: pathlib.py From Imogen with MIT License | 5 votes |
def is_socket(self): """ Whether this path is a socket. """ try: return S_ISSOCK(self.stat().st_mode) except OSError as e: if e.errno not in _IGNORED_ERROS: raise # Path doesn't exist or is a broken symlink # (see https://bitbucket.org/pitrou/pathlib/issue/12/) return False
Example #29
Source File: netutil.py From pySINDy with MIT License | 5 votes |
def bind_unix_socket(file, mode=0o600, backlog=_DEFAULT_BACKLOG): """Creates a listening unix socket. If a socket with the given name already exists, it will be deleted. If any other file with that name exists, an exception will be raised. Returns a socket object (not a list of socket objects like `bind_sockets`) """ sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) set_close_exec(sock.fileno()) try: sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) except socket.error as e: if errno_from_exception(e) != errno.ENOPROTOOPT: # Hurd doesn't support SO_REUSEADDR raise sock.setblocking(0) try: st = os.stat(file) except OSError as err: if errno_from_exception(err) != errno.ENOENT: raise else: if stat.S_ISSOCK(st.st_mode): os.remove(file) else: raise ValueError("File %s exists and is not a socket", file) sock.bind(file) os.chmod(file, mode) sock.listen(backlog) return sock
Example #30
Source File: unix_events.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def __init__(self, loop, pipe, protocol, waiter=None, extra=None): super().__init__(extra, loop) self._extra['pipe'] = pipe self._pipe = pipe self._fileno = pipe.fileno() mode = os.fstat(self._fileno).st_mode is_socket = stat.S_ISSOCK(mode) if not (is_socket or stat.S_ISFIFO(mode) or stat.S_ISCHR(mode)): raise ValueError("Pipe transport is only for " "pipes, sockets and character devices") _set_nonblocking(self._fileno) self._protocol = protocol self._buffer = [] self._conn_lost = 0 self._closing = False # Set when close() or write_eof() called. self._loop.call_soon(self._protocol.connection_made, self) # On AIX, the reader trick (to be notified when the read end of the # socket is closed) only works for sockets. On other platforms it # works for pipes and sockets. (Exception: OS X 10.4? Issue #19294.) if is_socket or not sys.platform.startswith("aix"): # only start reading when connection_made() has been called self._loop.call_soon(self._loop.add_reader, self._fileno, self._read_ready) if waiter is not None: # only wake up the waiter when connection_made() has been called self._loop.call_soon(futures._set_result_unless_cancelled, waiter, None)