ndberrhnd.cpp
来自「MySQL数据库开发源码 值得一看哦」· C++ 代码 · 共 493 行 · 第 1/2 页
CPP
493 行
/* Copyright (C) 2003 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */#if defined NDB_OSE || defined NDB_SOFTOSE#include <NdbOut.hpp>#include <ndb_types.h>#include "ose.h"#include "ose_err.h"#include "osetypes.h"#define BUFSIZE 100typedef struct { char header1[BUFSIZE]; char header2[BUFSIZE]; char error_code_line[BUFSIZE]; char subcode_line[BUFSIZE]; char product_line[BUFSIZE]; char header_file_line[BUFSIZE]; char extra_line[BUFSIZE]; char user_called_line[BUFSIZE]; char current_process_id_line[BUFSIZE]; char current_process_name_line[BUFSIZE]; char file_line[BUFSIZE]; char line_line[BUFSIZE]; char err_hnd_file[BUFSIZE];} Error_message;char assert_line[BUFSIZE];char unknown_signal_line[BUFSIZE];char signal_number_line[BUFSIZE];char sender_line[BUFSIZE];char receiver_line[BUFSIZE];extern "C" OSBOOLEAN ndb_err_hnd(bool user_called, Uint32 error_code, Uint32 extra){ static Error_message error_message; bool error_handled; Uint32 subcode; char* subcode_mnemonic; char* product_name; char* file_name; /*The subcode (bit 16 - 30) is extracted from error_code */ subcode = (error_code & 0x7fff0000) >> 16; if (user_called) { switch (subcode) { case 0x0050 : subcode_mnemonic= "OSE_PRH_PLS"; product_name= "Program Loader"; file_name = "prherr.h"; break; case 0x0051 : subcode_mnemonic = "OSE_PRH_START_PRH"; product_name= "start_prh"; file_name= " start_prh.c"; break; case 0x0052 : subcode_mnemonic= "OSE_PRH_ASF"; product_name= "Archive Server"; file_name = "prherr.h"; break; case 0x0058 : case 0x4058 : case 0x3fff : case 0x8058 : subcode_mnemonic= "OSE_MMS_EBASE"; product_name= "MMS"; file_name= "mms_err.h"; break; /*Link Handler G3***************************************/ case 0x0060 : case 0x8060 : subcode_mnemonic= "OSE_GLH_EBASE"; product_name= "General Link Handler"; file_name= "glherr.h"; break; case 0x0064 : case 0x8064 : subcode_mnemonic= "OSE_GPL_EBASE"; product_name= "General Protocol Link Handler"; file_name= "gplerr.h"; break; case 0x0066 : case 0x8066 : subcode_mnemonic= "OSE_UDPPDR_EBASE"; product_name= "UDP driver for GPL"; file_name= "udppdrerr.h"; break; case 0x0067 : case 0x8067 : subcode_mnemonic= "OSE_SERPDR_EBASE"; product_name= "Serial driver for GPL"; file_name= "serpdrerr.h"; break; case 0x0068 : case 0x8068 : subcode_mnemonic= "OSE_ETHPDR_EBASE"; product_name= "Ethernet driver for GPL"; file_name= "ethpdrerr.h"; break; /*Link handler G4***************************************/ case 0x0061 : subcode_mnemonic= "OSE_OTL_EBASE"; product_name= "OSE Transport Layer"; file_name= "otlerr.h"; break; case 0x0062 : subcode_mnemonic= "OSE_LALUDP_EBASE"; product_name= "Link Adaption Layer for UDP"; file_name= "header file unknown"; break; /*Internet Utilities************************************/ case 0x0069 : subcode_mnemonic= "OSE_TFTPD"; product_name= "TFTP server"; file_name= "inetutilerr.h"; break; case 0x006a : subcode_mnemonic= "OSE_TELUDPD"; product_name= "TELNET/UDP server"; file_name= "inetutilerr.h"; break; case 0x006b : subcode_mnemonic= "OSE_FTPD"; product_name= "FTP server"; file_name= "inetutilerr.h"; break; case 0x006c : subcode_mnemonic= "OSE_TELNETD"; product_name= "TELNET server"; file_name= "inetutilerr.h"; break; case 0x006d : subcode_mnemonic= "OSE_SURFER"; product_name= "OSE System Surfer"; file_name= "inetutilerr.h"; break; case 0x006e : subcode_mnemonic= "OSE_BOOTP"; product_name= "BOOTP client"; file_name= "inetutilerr.h"; break; case 0x006f : switch((error_code & 0x0000f000)){ case 0x00000000 : subcode_mnemonic= "OSE_RES"; product_name= "DNS resolver"; file_name= "inetutilerr.h"; break; case 0x00001000 : subcode_mnemonic= "OSE_DHCPC"; product_name= "DHCP client"; file_name= "inetutilerr.h"; break; case 0x00002000 : subcode_mnemonic= "OSE_FTP"; product_name= "FTP client"; file_name= "inetutilerr.h"; break; default : subcode_mnemonic= "Unknown error"; product_name= "unknown product"; file_name = "header file unknown"; break; } break; case 0x00c2 : subcode_mnemonic= "OSE_DNS"; product_name= "DNS server"; file_name= "dns_err.h"; break; /*INET**************************/ case 0x0070 : subcode_mnemonic= "INET_ERRBASE"; product_name= "Internet Protocols (INET)"; file_name= "ineterr.h"; break; case 0x0071 : subcode_mnemonic= "WEBS_ERRBASE"; product_name= "Web Server (WEBS)"; file_name= "webserr.h"; break; case 0x0072 : subcode_mnemonic= "SNMP"; product_name= "SNMP"; file_name= "header file unknown"; break; case 0x0073 : subcode_mnemonic= "STP_BRIDGE"; product_name= "STP bridge"; file_name= "header file unknown"; break; case 0x0200 : case 0x0201 : case 0x0202 : case 0x0203 : case 0x0204 : case 0x0205 : case 0x0206 : case 0x0207 : case 0x0208 : case 0x0209 : case 0x020a : case 0x020b : case 0x020c : case 0x020d : case 0x020e : case 0x020f : subcode_mnemonic = "INETINIT_ERR_BASE"; product_name = "INET"; file_name = "startinet.c"; break; /*Miscellanous******************************************/ case 0x0082 : subcode_mnemonic= "OSE_HEAP_EBASE"; product_name= "Heap Manager"; file_name= "heap_err.h"; break; case 0x0088 : subcode_mnemonic= "OSE_BSP"; product_name= "Board Support Package"; file_name= "bsperr.h"; break; case 0x008a : subcode_mnemonic= "OSE_TOSV_EBASE";
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?