os2_err.c
上传用户:lyxiangda
上传日期:2007-01-12
资源大小:3042k
文件大小:8k
源码类别:

CA认证

开发平台:

WINDOWS

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /*
  3.  * This file essentially replicates NSPR's source for the functions that
  4.  * map system-specific error codes to NSPR error codes.  We would use 
  5.  * NSPR's functions, instead of duplicating them, but they're private.
  6.  * As long as SSL's server session cache code must do platform native I/O
  7.  * to accomplish its job, and NSPR's error mapping functions remain private,
  8.  * this code will continue to need to be replicated.
  9.  * 
  10.  * The contents of this file are subject to the Mozilla Public
  11.  * License Version 1.1 (the "License"); you may not use this file
  12.  * except in compliance with the License. You may obtain a copy of
  13.  * the License at http://www.mozilla.org/MPL/
  14.  * 
  15.  * Software distributed under the License is distributed on an "AS
  16.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  17.  * implied. See the License for the specific language governing
  18.  * rights and limitations under the License.
  19.  * 
  20.  * The Original Code is the Netscape security libraries.
  21.  * 
  22.  * The Initial Developer of the Original Code is Netscape
  23.  * Communications Corporation.  Portions created by Netscape are 
  24.  * Copyright (C) 1994-2000 Netscape Communications Corporation.  All
  25.  * Rights Reserved.
  26.  * 
  27.  * Contributor(s):
  28.  * 
  29.  * Alternatively, the contents of this file may be used under the
  30.  * terms of the GNU General Public License Version 2 or later (the
  31.  * "GPL"), in which case the provisions of the GPL are applicable 
  32.  * instead of those above.  If you wish to allow use of your 
  33.  * version of this file only under the terms of the GPL and not to
  34.  * allow others to use your version of this file under the MPL,
  35.  * indicate your decision by deleting the provisions above and
  36.  * replace them with the notice and other provisions required by
  37.  * the GPL.  If you do not delete the provisions above, a recipient
  38.  * may use your version of this file under either the MPL or the
  39.  * GPL.
  40.  *
  41.  * $Id: os2_err.c,v 1.2 2000/09/20 17:07:19 relyea%netscape.com Exp $
  42.  */
  43. #include "prerror.h"
  44. #include "prlog.h"
  45. #include <errno.h>
  46. /*
  47.  * Based on win32err.c
  48.  * OS2TODO Stub everything for now to build. HCT
  49.  */
  50. /* forward declaration. */
  51. void nss_MD_os2_map_default_error(PRInt32 err);
  52. void nss_MD_os2_map_opendir_error(PRInt32 err)
  53. {
  54.     nss_MD_os2_map_default_error(err);
  55. }
  56. void nss_MD_os2_map_closedir_error(PRInt32 err)
  57. {
  58.     nss_MD_os2_map_default_error(err);
  59. }
  60. void nss_MD_os2_map_readdir_error(PRInt32 err)
  61. {
  62.     nss_MD_os2_map_default_error(err);
  63. }
  64. void nss_MD_os2_map_delete_error(PRInt32 err)
  65. {
  66.     nss_MD_os2_map_default_error(err);
  67. }
  68. /* The error code for stat() is in errno. */
  69. void nss_MD_os2_map_stat_error(PRInt32 err)
  70. {
  71.     nss_MD_os2_map_default_error(err);
  72. }
  73. void nss_MD_os2_map_fstat_error(PRInt32 err)
  74. {
  75.     nss_MD_os2_map_default_error(err);
  76. }
  77. void nss_MD_os2_map_rename_error(PRInt32 err)
  78. {
  79.     nss_MD_os2_map_default_error(err);
  80. }
  81. /* The error code for access() is in errno. */
  82. void nss_MD_os2_map_access_error(PRInt32 err)
  83. {
  84.     nss_MD_os2_map_default_error(err);
  85. }
  86. void nss_MD_os2_map_mkdir_error(PRInt32 err)
  87. {
  88.     nss_MD_os2_map_default_error(err);
  89. }
  90. void nss_MD_os2_map_rmdir_error(PRInt32 err)
  91. {
  92.     nss_MD_os2_map_default_error(err);
  93. }
  94. void nss_MD_os2_map_read_error(PRInt32 err)
  95. {
  96.     nss_MD_os2_map_default_error(err);
  97. }
  98. void nss_MD_os2_map_transmitfile_error(PRInt32 err)
  99. {
  100.     nss_MD_os2_map_default_error(err);
  101. }
  102. void nss_MD_os2_map_write_error(PRInt32 err)
  103. {
  104.     nss_MD_os2_map_default_error(err);
  105. }
  106. void nss_MD_os2_map_lseek_error(PRInt32 err)
  107. {
  108.     nss_MD_os2_map_default_error(err);
  109. }
  110. void nss_MD_os2_map_fsync_error(PRInt32 err)
  111. {
  112.     nss_MD_os2_map_default_error(err);
  113. }
  114. /*
  115.  * For both CloseHandle() and closesocket().
  116.  */
  117. void nss_MD_os2_map_close_error(PRInt32 err)
  118. {
  119.     nss_MD_os2_map_default_error(err);
  120. }
  121. void nss_MD_os2_map_socket_error(PRInt32 err)
  122. {
  123. //  PR_ASSERT(err != WSANOTINITIALISED);
  124.     nss_MD_os2_map_default_error(err);
  125. }
  126. void nss_MD_os2_map_recv_error(PRInt32 err)
  127. {
  128.     nss_MD_os2_map_default_error(err);
  129. }
  130. void nss_MD_os2_map_recvfrom_error(PRInt32 err)
  131. {
  132.     nss_MD_os2_map_default_error(err);
  133. }
  134. void nss_MD_os2_map_send_error(PRInt32 err)
  135. {
  136.     PRErrorCode prError;
  137.     switch (err) {
  138. //     case WSAEMSGSIZE:  prError = PR_INVALID_ARGUMENT_ERROR; break;
  139.     default: nss_MD_os2_map_default_error(err); return;
  140.     }
  141.     PR_SetError(prError, err);
  142. }
  143. void nss_MD_os2_map_sendto_error(PRInt32 err)
  144. {
  145.     PRErrorCode prError;
  146.     switch (err) {
  147. //    case WSAEMSGSIZE:  prError = PR_INVALID_ARGUMENT_ERROR; break;
  148.     default: nss_MD_os2_map_default_error(err); return;
  149.     }
  150.     PR_SetError(prError, err);
  151. }
  152. void nss_MD_os2_map_accept_error(PRInt32 err)
  153. {
  154.     PRErrorCode prError;
  155.     switch (err) {
  156. //    case WSAEOPNOTSUPP: prError = PR_NOT_TCP_SOCKET_ERROR; break;
  157. //    case WSAEINVAL:  prError = PR_INVALID_STATE_ERROR; break;
  158.     default: nss_MD_os2_map_default_error(err); return;
  159.     }
  160.     PR_SetError(prError, err);
  161. }
  162. void nss_MD_os2_map_acceptex_error(PRInt32 err)
  163. {
  164.     nss_MD_os2_map_default_error(err);
  165. }
  166. void nss_MD_os2_map_connect_error(PRInt32 err)
  167. {
  168.     PRErrorCode prError;
  169.     switch (err) {
  170. //    case WSAEWOULDBLOCK: prError = PR_IN_PROGRESS_ERROR; break;
  171. //    case WSAEINVAL:  prError = PR_ALREADY_INITIATED_ERROR; break;
  172. //    case WSAETIMEDOUT:  prError = PR_IO_TIMEOUT_ERROR; break;
  173.     default: nss_MD_os2_map_default_error(err); return;
  174.     }
  175.     PR_SetError(prError, err);
  176. }
  177. void nss_MD_os2_map_bind_error(PRInt32 err)
  178. {
  179.     PRErrorCode prError;
  180.     switch (err) {
  181. //  case WSAEINVAL:  prError = PR_SOCKET_ADDRESS_IS_BOUND_ERROR; break;
  182.     default: nss_MD_os2_map_default_error(err); return;
  183.     }
  184.     PR_SetError(prError, err);
  185. }
  186. void nss_MD_os2_map_listen_error(PRInt32 err)
  187. {
  188.     PRErrorCode prError;
  189.     switch (err) {
  190. //    case WSAEOPNOTSUPP: prError = PR_NOT_TCP_SOCKET_ERROR; break;
  191. //    case WSAEINVAL:  prError = PR_INVALID_STATE_ERROR; break;
  192.     default: nss_MD_os2_map_default_error(err); return;
  193.     }
  194.     PR_SetError(prError, err);
  195. }
  196. void nss_MD_os2_map_shutdown_error(PRInt32 err)
  197. {
  198.     nss_MD_os2_map_default_error(err);
  199. }
  200. void nss_MD_os2_map_getsockname_error(PRInt32 err)
  201. {
  202.     PRErrorCode prError;
  203.     switch (err) {
  204. //    case WSAEINVAL:  prError = PR_INVALID_STATE_ERROR; break;
  205.     default: nss_MD_os2_map_default_error(err); return;
  206.     }
  207.     PR_SetError(prError, err);
  208. }
  209. void nss_MD_os2_map_getpeername_error(PRInt32 err)
  210. {
  211.     nss_MD_os2_map_default_error(err);
  212. }
  213. void nss_MD_os2_map_getsockopt_error(PRInt32 err)
  214. {
  215.     nss_MD_os2_map_default_error(err);
  216. }
  217. void nss_MD_os2_map_setsockopt_error(PRInt32 err)
  218. {
  219.     nss_MD_os2_map_default_error(err);
  220. }
  221. void nss_MD_os2_map_open_error(PRInt32 err)
  222. {
  223.     nss_MD_os2_map_default_error(err);
  224. }
  225. void nss_MD_os2_map_gethostname_error(PRInt32 err)
  226. {
  227.     nss_MD_os2_map_default_error(err);
  228. }
  229. /* Win32 select() only works on sockets.  So in this
  230. ** context, WSAENOTSOCK is equivalent to EBADF on Unix.  
  231. */
  232. void nss_MD_os2_map_select_error(PRInt32 err)
  233. {
  234.     PRErrorCode prError;
  235.     switch (err) {
  236. //    case WSAENOTSOCK: prError = PR_BAD_DESCRIPTOR_ERROR; break;
  237.     default: nss_MD_os2_map_default_error(err); return;
  238.     }
  239.     PR_SetError(prError, err);
  240. }
  241. void nss_MD_os2_map_lockf_error(PRInt32 err)
  242. {
  243.     nss_MD_os2_map_default_error(err);
  244. }
  245. void nss_MD_os2_map_default_error(PRInt32 err)
  246. {
  247.     PRErrorCode prError;
  248.     switch (err) {
  249. //    case ENOENT:  prError = PR_FILE_NOT_FOUND_ERROR; break;
  250. //    case ERROR_ACCESS_DENIED:  prError = PR_NO_ACCESS_RIGHTS_ERROR; break;
  251. //    case ERROR_ALREADY_EXISTS:  prError = PR_FILE_EXISTS_ERROR; break;
  252. //    case ERROR_DISK_CORRUPT:  prError = PR_IO_ERROR; break;
  253. //    case ERROR_DISK_FULL:  prError = PR_NO_DEVICE_SPACE_ERROR; break;
  254. //    case ERROR_DISK_OPERATION_FAILED: prError = PR_IO_ERROR; break;
  255. //    case ERROR_DRIVE_LOCKED:  prError = PR_FILE_IS_LOCKED_ERROR; break;
  256. //    case ERROR_FILENAME_EXCED_RANGE: prError = PR_NAME_TOO_LONG_ERROR; break;
  257. //    case ERROR_FILE_CORRUPT:  prError = PR_IO_ERROR; break;
  258. //    case ERROR_FILE_EXISTS:  prError = PR_FILE_EXISTS_ERROR; break;
  259. //    case ERROR_FILE_INVALID:  prError = PR_BAD_DESCRIPTOR_ERROR; break;
  260. #if ERROR_FILE_NOT_FOUND != ENOENT
  261. //    case ERROR_FILE_NOT_FOUND:  prError = PR_FILE_NOT_FOUND_ERROR; break;
  262. #endif
  263.     default:  prError = PR_UNKNOWN_ERROR; break;
  264.     }
  265.     PR_SetError(prError, err);
  266. }