Struct xpcom::interfaces::nsIServerSocket [] [src]

#[repr(C)]
pub struct nsIServerSocket { /* fields omitted */ }

interface nsIServerSocket : nsISupports

/**
 * nsIServerSocket
 *
 * An interface to a server socket that can accept incoming connections.
 */

Methods

impl nsIServerSocket
[src]

[src]

Cast this nsIServerSocket to one of its base interfaces.

impl nsIServerSocket
[src]

LoopbackOnly: i64 = 1
/**
     * @name Server Socket Flags
     * These flags define various socket options.
     * @{
     */

KeepWhenOffline: i64 = 2

[src]

/** @} */
/**
     * init
     *
     * This method initializes a server socket.
     *
     * @param aPort
     *        The port of the server socket.  Pass -1 to indicate no preference,
     *        and a port will be selected automatically.
     * @param aLoopbackOnly
     *        If true, the server socket will only respond to connections on the
     *        local loopback interface.  Otherwise, it will accept connections
     *        from any interface.  To specify a particular network interface,
     *        use initWithAddress.
     * @param aBackLog
     *        The maximum length the queue of pending connections may grow to.
     *        This parameter may be silently limited by the operating system.
     *        Pass -1 to use the default value.
     */

void init (in long aPort, in boolean aLoopbackOnly, in long aBackLog);

[src]

/**
     * initSpecialConnection
     *
     * This method initializes a server socket and offers the ability to have
     * that socket not get terminated if Gecko is set offline.
     *
     * @param aPort
     *        The port of the server socket.  Pass -1 to indicate no preference,
     *        and a port will be selected automatically.
     * @param aFlags
     *        Flags for the socket.
     * @param aBackLog
     *        The maximum length the queue of pending connections may grow to.
     *        This parameter may be silently limited by the operating system.
     *        Pass -1 to use the default value.
     */

void initSpecialConnection (in long aPort, in nsServerSocketFlag aFlags, in long aBackLog);

[src]

/**
     * initWithFilename
     *
     * This method initializes a Unix domain or "local" server socket. Such
     * a socket has a name in the filesystem, like an ordinary file. To
     * connect, a client supplies the socket's filename, and the usual
     * permission checks on socket apply.
     *
     * This makes Unix domain sockets useful for communication between the
     * programs being run by a specific user on a single machine: the
     * operating system takes care of authentication, and the user's home
     * directory or profile directory provide natural per-user rendezvous
     * points.
     *
     * Since Unix domain sockets are always local to the machine, they are
     * not affected by the nsIIOService's 'offline' flag.
     *
     * The system-level socket API may impose restrictions on the length of
     * the filename that are stricter than those of the underlying
     * filesystem. If the file name is too long, this returns
     * NS_ERROR_FILE_NAME_TOO_LONG.
     *
     * All components of the path prefix of |aPath| must name directories;
     * otherwise, this returns NS_ERROR_FILE_NOT_DIRECTORY.
     *
     * This call requires execute permission on all directories containing
     * the one in which the socket is to be created, and write and execute
     * permission on the directory itself. Otherwise, this returns
     * NS_ERROR_CONNECTION_REFUSED.
     *
     * This call creates the socket's directory entry. There must not be
     * any existing entry with the given name. If there is, this returns
     * NS_ERROR_SOCKET_ADDRESS_IN_USE.
     *
     * On systems that don't support Unix domain sockets at all, this
     * returns NS_ERROR_SOCKET_ADDRESS_NOT_SUPPORTED.
     *
     * @param aPath nsIFile
     *        The file name at which the socket should be created.
     *
     * @param aPermissions unsigned long
     *        Unix-style permission bits to be applied to the new socket.
     *
     * Note about permissions: Linux's unix(7) man page claims that some
     * BSD-derived systems ignore permissions on UNIX-domain sockets;
     * NetBSD's bind(2) man page agrees, but says it does check now (dated
     * 2005). POSIX has required 'connect' to fail if write permission on
     * the socket itself is not granted since 2003 (Issue 6). NetBSD says
     * that the permissions on the containing directory (execute) have
     * always applied, so creating sockets in appropriately protected
     * directories should be secure on both old and new systems.
     */

void initWithFilename (in nsIFile aPath, in unsigned long aPermissions, in long aBacklog);

[src]

/**
     * close
     *
     * This method closes a server socket.  This does not affect already
     * connected client sockets (i.e., the nsISocketTransport instances
     * created from this server socket).  This will cause the onStopListening
     * event to asynchronously fire with a status of NS_BINDING_ABORTED.
     */

void close ();

[src]

/**
     * asyncListen
     *
     * This method puts the server socket in the listening state.  It will
     * asynchronously listen for and accept client connections.  The listener
     * will be notified once for each client connection that is accepted.  The
     * listener's onSocketAccepted method will be called on the same thread
     * that called asyncListen (the calling thread must have a nsIEventTarget).
     *
     * The listener will be passed a reference to an already connected socket
     * transport (nsISocketTransport).  See below for more details.
     *
     * @param aListener
     *        The listener to be notified when client connections are accepted.
     */

void asyncListen (in nsIServerSocketListener aListener);

[src]

/**
     * Returns the port of this server socket.
     */

readonly attribute long port;

Methods from Deref<Target = nsISupports>

[src]

Cast this nsISupports to one of its base interfaces.

[src]

void QueryInterface (in nsIIDRef uuid, [iid_is (uuid), retval] out nsQIResult result);

[src]

[noscript,notxpcom] nsrefcnt AddRef ();

[src]

[noscript,notxpcom] nsrefcnt Release ();

Trait Implementations

impl XpCom for nsIServerSocket
[src]

IID: nsIID = nsID(2057058763, 41279, 20207, [155, 223, 167, 67, 1, 98, 135, 66])

[src]

Perform a QueryInterface call on this object, attempting to dynamically cast it to the requested interface type. Returns Some(RefPtr) if the cast succeeded, and None otherwise. Read more

impl RefCounted for nsIServerSocket
[src]

[src]

Increment the reference count.

[src]

Decrement the reference count, potentially freeing backing memory.

impl Deref for nsIServerSocket
[src]

The resulting type after dereferencing.

[src]

Dereferences the value.