summaryrefslogtreecommitdiffstats
path: root/docs/nspr/reference/nspr_error_handling.rst
blob: df4067860721e674ac84fd159b4c1d3993fe3680 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
This chapter describes the functions for retrieving and setting errors
and the error codes set by NSPR.

-  `Error Type <#Error_Type>`__
-  `Error Functions <#Error_Functions>`__
-  `Error Codes <#Error_Codes>`__

For information on naming conventions for NSPR types, functions, and
macros, see `NSPR Naming
Conventions <Introduction_to_NSPR#NSPR_Naming_Conventions>`__.

.. _Error_Type:

Error Type
----------

 - :ref:`PRErrorCode`

.. _Error_Functions:

Error Functions
---------------

 - :ref:`PR_SetError`
 - :ref:`PR_SetErrorText`
 - :ref:`PR_GetError`
 - :ref:`PR_GetOSError`
 - :ref:`PR_GetErrorTextLength`
 - :ref:`PR_GetErrorText`

.. _Error_Codes:

Error Codes
-----------

Error codes defined in ``prerror.h``:

``PR_OUT_OF_MEMORY_ERROR``
   Insufficient memory to perform request.
``PR_BAD_DESCRIPTOR_ERROR``
   The file descriptor used as an argument in the preceding function is
   invalid.
``PR_WOULD_BLOCK_ERROR``
   The operation would have blocked, which conflicts with the semantics
   that have been established.
``PR_ACCESS_FAULT_ERROR``
   One of the arguments of the preceding function specified an invalid
   memory address.
``PR_INVALID_METHOD_ERROR``
   The preceding function is invalid for the type of file descriptor
   used.
``PR_ILLEGAL_ACCESS_ERROR``
   One of the arguments of the preceding function specified an invalid
   memory address.
``PR_UNKNOWN_ERROR``
   Some unknown error has occurred.
``PR_PENDING_INTERRUPT_ERROR``
   The operation terminated because another thread has interrupted it
   with :ref:`PR_Interrupt`.
``PR_NOT_IMPLEMENTED_ERROR``
   The preceding function has not been implemented.
``PR_IO_ERROR``
   The preceding I/O function encountered some sort of an error, perhaps
   an invalid device.
``PR_IO_TIMEOUT_ERROR``
   The I/O operation has not completed in the time specified for the
   preceding function.
``PR_IO_PENDING_ERROR``
   An I/O operation has been attempted on a file descriptor that is
   currently busy with another operation.
``PR_DIRECTORY_OPEN_ERROR``
   The directory could not be opened.
``PR_INVALID_ARGUMENT_ERROR``
   One or more of the arguments to the function is invalid.
``PR_ADDRESS_NOT_AVAILABLE_ERROR``
   The network address (:ref:`PRNetAddr`) is not available (probably in
   use).
``PR_ADDRESS_NOT_SUPPORTED_ERROR``
   The type of network address specified is not supported.
``PR_IS_CONNECTED_ERROR``
   An attempt to connect on an already connected network file
   descriptor.
``PR_BAD_ADDRESS_ERROR``
   The network address specified is invalid (as reported by the
   network).
``PR_ADDRESS_IN_USE_ERROR``
   Network address specified (:ref:`PRNetAddr`) is in use.
``PR_CONNECT_REFUSED_ERROR``
   The peer has refused to allow the connection to be established.
``PR_NETWORK_UNREACHABLE_ERROR``
   The network address specifies a host that is unreachable (perhaps
   temporary).
``PR_CONNECT_TIMEOUT_ERROR``
   The connection attempt did not complete in a reasonable period of
   time.
``PR_NOT_CONNECTED_ERROR``
   The preceding function attempted to use connected semantics on a
   network file descriptor that was not connected.
``PR_LOAD_LIBRARY_ERROR``
   Failure to load a dynamic library.
``PR_UNLOAD_LIBRARY_ERROR``
   Failure to unload a dynamic library.
``PR_FIND_SYMBOL_ERROR``
   Symbol could not be found in the specified library.
``PR_INSUFFICIENT_RESOURCES_ERROR``
   There are insufficient system resources to process the request.
``PR_DIRECTORY_LOOKUP_ERROR``
   A directory lookup on a network address has failed.
``PR_TPD_RANGE_ERROR``
   Attempt to access a thread-private data index that is out of range of
   any index that has been allocated to the process.
``PR_PROC_DESC_TABLE_FULL_ERROR``
   The process' table for holding open file descriptors is full.
``PR_SYS_DESC_TABLE_FULL_ERROR``
   The system's table for holding open file descriptors has been
   exceeded.
``PR_NOT_SOCKET_ERROR``
   An attempt to use a non-network file descriptor on a network-only
   operation.
``PR_NOT_TCP_SOCKET_ERROR``
   Attempt to perform a TCP specific function on a non-TCP file
   descriptor.
``PR_SOCKET_ADDRESS_IS_BOUND_ERRO``
   Attempt to bind an address to a TCP file descriptor that is already
   bound.
``PR_NO_ACCESS_RIGHTS_ERROR``
   Calling thread does not have privilege to perform the operation
   requested.
``PR_OPERATION_NOT_SUPPORTED_ERRO``
   The requested operation is not supported by the platform.
``PR_PROTOCOL_NOT_SUPPORTED_ERROR``
   The host operating system does not support the protocol requested.
``PR_REMOTE_FILE_ERROR``
   Access to the remote file has been severed.
``PR_BUFFER_OVERFLOW_ERROR``
   The value retrieved is too large to be stored in the buffer provided.
``PR_CONNECT_RESET_ERROR``
   The (TCP) connection has been reset by the peer.
``PR_RANGE_ERROR``
   Unused.
``PR_DEADLOCK_ERROR``
   Performing the requested operation would have caused a deadlock. The
   deadlock was avoided.
``PR_FILE_IS_LOCKED_ERROR``
   An attempt to acquire a lock on a file has failed because the file is
   already locked.
``PR_FILE_TOO_BIG_ERROR``
   Completing the write or seek operation would have resulted in a file
   larger than the system could handle.
``PR_NO_DEVICE_SPACE_ERROR``
   The device for storing the file is full.
``PR_PIPE_ERROR``
   Unused.
``PR_NO_SEEK_DEVICE_ERROR``
   Unused.
``PR_IS_DIRECTORY_ERROR``
   Attempt to perform a normal file operation on a directory.
``PR_LOOP_ERROR``
   Symbolic link loop.
``PR_NAME_TOO_LONG_ERROR``
   Filename is longer than allowed by the host operating system.
``PR_FILE_NOT_FOUND_ERROR``
   The requested file was not found.
``PR_NOT_DIRECTORY_ERROR``
   Attempt to perform directory specific operations on a normal file.
``PR_READ_ONLY_FILESYSTEM_ERROR``
   Attempt to write to a read-only file system.
``PR_DIRECTORY_NOT_EMPTY_ERROR``
   Attempt to delete a directory that is not empty.
``PR_FILESYSTEM_MOUNTED_ERROR``
   Attempt to delete or rename a file object while the file system is
   busy.
``PR_NOT_SAME_DEVICE_ERROR``
   Request to rename a file to a file system on another device.
``PR_DIRECTORY_CORRUPTED_ERROR``
   The directory object in the file system is corrupted.
``PR_FILE_EXISTS_ERROR``
   Attempt to create or rename a file when the new name is already being
   used.
``PR_MAX_DIRECTORY_ENTRIES_ERROR``
   Attempt to add new filename to directory would exceed the limit
   allowed.
``PR_INVALID_DEVICE_STATE_ERROR``
   The device was in an invalid state to complete the desired operation.
``PR_DEVICE_IS_LOCKED_ERROR``
   The device needed to perform the desired request is locked.
``PR_NO_MORE_FILES_ERROR``
   There are no more entries in the directory.
``PR_END_OF_FILE_ERROR``
   Unexpectedly encountered end of file (Mac OS only).
``PR_FILE_SEEK_ERROR``
   An unexpected seek error (Mac OS only).
``PR_FILE_IS_BUSY_ERROR``
   The file is busy and the operation cannot be performed.
``PR_IN_PROGRESS_ERROR``
   The operation is still in progress (probably a nonblocking connect).
``PR_ALREADY_INITIATED_ERROR``
   The (retried) operation has already been initiated (probably a
   nonblocking connect).
``PR_GROUP_EMPTY_ERROR``
   The wait group is empty.
``PR_INVALID_STATE_ERROR``
   The attempted operation is on an object that was in an improper state
   to perform the request.
``PR_MAX_ERROR``
   Placeholder for the end of the list.