_LIT | ( | KESockClientPanic | , |
"ESock_client" | |||
) |
The panic category for panics experienced by ESOCK clients (was "eSock panic" before Symbian OS version 9.1)
See also: TESockPanic
The panic numbers for panics panics experienced by ESOCK clients
See also: KESockClientPanic
Enumerator | Value | Description |
---|---|---|
ESockBadHandle | 0 |
An invalid RSubSession handle was used. For example a RSocket call before the socket was Open()ed. |
EBadCancel | 1 |
(No longer in use) |
EConnectingAlready | 2 |
RSocket::Connect() used before a previous connect request on the same socket has completed. Wait for the first to complete or CancelConnect() it. |
EReadingAlready | 3 |
RSocket::Read(), Recv(), RecvFrom(), or RecvOneOrMore() used before a previous read request on the same socket has completed. Wait for the first to complete or CancelRead()/CancelRecv() it. |
EWritingAlready | 4 |
RSocket::Send(), SendTo(), or Write() used before a previous write request on the same socket has completed. Wait for the first to complete or CancelWrite()/CancelSend() it. |
ECloseTwice | 5 |
(No longer in use) |
EShutDownTwice | 6 |
RSocket::Shutdown() used before a previous shutdown request on the same socket has completed. Wait for the first to complete. This applies also when the shutdown type differs, eg Shutdown(EStopInput) must complete before Shutdown(EStopOutput) can be issued. |
EAcceptTwice | 7 |
The socket passed to RSocket::Accept() must be a blank socket opened by the argumentless RSocket::Open() overload; a socket opened with a protocol or already Accept()ed is not blank. |
ETwoIoctls | 8 |
RSocket::Ioctl() used before a previous IOCtl request on the same socket has completed. Wait for the first to complete or CancelIoctl() it. |
ECantSendToOnConnection | 9 |
RSocket::SendTo() used with a socket of a protocol that is connection-oriented (such as TCP/IP) |
EListenNeedsConnection | 10 |
RSocket::Listen() used with a socket of a protocol that is not connection-oriented (such as UDP/IP) |
EAlreadyListening | 11 |
RSocket::Listen() used on a socket which is already Listen()ing. |
ENotListening | 12 |
RSocket::Accept() used on a socket which has not had Listen() called. |
EBadAccept | 13 |
RSocket::Accept() used with a socket which proves invalid when the passive-open completes. For example the blank socket passed to Accept() was closed before a connection to the listening server socket was made. CancelAccept() must be used before closing the blank socket. |
EBadDescriptor | 14 |
A descriptor argument was corrupt when used by the socket server, which for asynchronous requests may only be when they complete. A common cause of this is allowing a buffer to go out of scope when using data transfer functions. For example:
void CMailTransferObject::SendText(HBufC8* aData) { iMailSocket.Write(aData->Des(), iStatus); }Here the coder has overlooked the fact that HBufC8::Des() returns a TPtr8 object, which being a temporary will go out of scope when Write() returns. However because ESOCK runs at high scheduler priority and protocols are commonly able to accept data immediately the request will usually have been completed before Write() returns. The panic might only occur for this mail application when it sends a large amount of data or the network is unusually slow. In this example the code should simply have dereferenced the HBufC8* as all that Write() requires is a const TDesC8. |
ETwice | 15 |
A request was made of a RHostResolver, RServiceResolver, or RNetDatabase when it was still processing a previous request. Usually this would be with an explicitly asynchronous request and you must either cancel it or wait for it to complete. If occurs with multiple threads issuing synchronous requests then you must implement appropriate synchronisation between the threads to avoid this simultaneous use. |
EBadQueyComplete | 16 |
(No longer in use) |
ENullSocket | 17 |
An improper request was made of a blank socket, ie one created through the argumentless Open() method and not yet opened as a passive connection through Accept() on a Listen()ing socket. Improper requests include any which require a specific underlying technology, such as Shutdown() - all that need be done to clean-up a blank socket is Close()ing it. |
EMbufManagerNotLoaded | 18 |
(No longer in use) |
ENoResolveFirst | 19 |
RHostResolver::Next() was called without a preceding resolution request such as RHostResolver::GetByName() |
ECannotConnect | 20 |
Attempted to Connect() on an RSocket in a programmatically invalid state, such as having been used for a pending Accept(). |
ENoQueryFirst | 21 |
RHostResolver::QueryGetNext() was called without a preceding RHostResolver::Query(). |
EPermissionDenied | 22 |
(No longer in use) |
EBadRConnection | 23 |
RSocket::Open() or RHostResolver::Open() used with a RConnection or RSubConnection opened upon a different RSocketServ to that supplied to the current Open(). |
EInvalidName | 24 |
RConnection::Open(RSocketServ&, TName&) used with an invalid TName (perhaps never initialised from RConnection::Name() or that source connection was subsequently closed) |
EBadRequest | 25 |
An extension interface has issued a bad request |
EBadDescriptorRead | 26 |
The descriptor passed by the client could not be read from by the server. See also: EBadDescriptor |
EBadDescriptorWrite | 27 |
The descriptor passed by the client could not be written to by the server. See also: EBadDescriptor |
EBadDescriptorLength | 28 |
The descriptor passed by the client had an invalid length when read by the server. See also: EBadDescriptor |
ENotNullSocket | 29 |
Open on an already opened socket |