Name Description Size 1032
nsINamedPipeService.idl nsINamedPipeDataObserver This is the callback interface for nsINamedPipeService. The functions are called by the internal thread in the nsINamedPipeService. 2329
nsISocketProvider.idl nsISocketProvider 4794
nsISocketProviderService.idl nsISocketProviderService Provides a mapping between a socket type and its associated socket provider instance. One could also use the service manager directly. 699
nsISOCKSSocketInfo.idl 696
nsISSLSocketControl.idl NPN (Next Protocol Negotiation) is a mechanism for negotiating the protocol to be spoken inside the SSL tunnel during the SSL handshake. The NPNList is the list of offered client side protocols. setNPNList() needs to be called before any data is read or written (including the handshake to be setup correctly. The server determines the priority when multiple matches occur, but if there is no overlap the first protocol in the list is used. 6295
nsITransportSecurityInfo.idl The following parameters are only valid after the TLS handshake has completed. Check securityState first. 2545
nsNamedPipeIOLayer.cpp Both blocking/non-blocking mode are supported in this class. The default mode is non-blocking mode, however, the client may change its mode to blocking mode during hand-shaking (e.g. nsSOCKSSocketInfo). In non-blocking mode, |Read| and |Write| should be called by clients only when |GetPollFlags| reports data availability. That is, the client calls |GetPollFlags| with |PR_POLL_READ| and/or |PR_POLL_WRITE| set, and according to the flags that set, |GetPollFlags| will check buffers status and decide corresponding actions: ------------------------------------------------------------------- | | data in buffer | empty buffer | |---------------+-------------------------+-----------------------| | PR_POLL_READ | out: PR_POLL_READ | DoRead/DoReadContinue | |---------------+-------------------------+-----------------------| | PR_POLL_WRITE | DoWrite/DoWriteContinue | out: PR_POLL_WRITE | ------------------------------------------+------------------------ |DoRead| and |DoWrite| initiate read/write operations asynchronously, and the |DoReadContinue| and |DoWriteContinue| are used to check the amount of the data are read/written to/from buffers. The output parameter and the return value of |GetPollFlags| are identical because we don't rely on the low-level select function to wait for data availability, we instead use nsNamedPipeService to poll I/O completeness. When client get |PR_POLL_READ| or |PR_POLL_WRITE| from |GetPollFlags|, they are able to use |Read| or |Write| to access the data in the buffer, and this is supposed to be very fast because no network traffic is involved. In blocking mode, the flow is quite similar to non-blocking mode, but |DoReadContinue| and |DoWriteContinue| are never been used since the operations are done synchronously, which could lead to slow responses. 25810
nsNamedPipeIOLayer.h 700
nsNamedPipeService.cpp Implement nsINamedPipeService 8108
nsNamedPipeService.h The observers is maintained in |mObservers| to ensure valid life-cycle. We don't remove the handle and corresponding observer directly, instead the handle and observer into a "retired" list and close/remove them in the worker thread to avoid a race condition that might happen between |CloseHandle()| and |GetQueuedCompletionStatus()|. 2181
nsSocketProviderService.cpp 2463
nsSocketProviderService.h nsSocketProviderService_h__ 850
nsSOCKSIOLayer.cpp 47267
nsSOCKSIOLayer.h nsSOCKSIOLayer_h__ 831
nsSOCKSSocketProvider.cpp 4160
nsSOCKSSocketProvider.h nsSOCKSSocketProvider_h__ 984
nsUDPSocketProvider.cpp 1529
nsUDPSocketProvider.h nsUDPSocketProvider_h__ 552