1------------------------------------------------------------------------------ 2-- -- 3-- GNAT COMPILER COMPONENTS -- 4-- -- 5-- GNAT.SOCKETS.THIN.HOST_ERROR_MESSAGES -- 6-- -- 7-- B o d y -- 8-- -- 9-- Copyright (C) 2007-2010, AdaCore -- 10-- -- 11-- GNAT is free software; you can redistribute it and/or modify it under -- 12-- terms of the GNU General Public License as published by the Free Soft- -- 13-- ware Foundation; either version 3, or (at your option) any later ver- -- 14-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- 15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- 16-- or FITNESS FOR A PARTICULAR PURPOSE. -- 17-- -- 18-- As a special exception under Section 7 of GPL version 3, you are granted -- 19-- additional permissions described in the GCC Runtime Library Exception, -- 20-- version 3.1, as published by the Free Software Foundation. -- 21-- -- 22-- You should have received a copy of the GNU General Public License and -- 23-- a copy of the GCC Runtime Library Exception along with this program; -- 24-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- 25-- <http://www.gnu.org/licenses/>. -- 26-- -- 27-- GNAT was originally developed by the GNAT team at New York University. -- 28-- Extensive contributions were provided by Ada Core Technologies Inc. -- 29-- -- 30------------------------------------------------------------------------------ 31 32-- This is the default implementation of this unit, providing explicit 33-- literal messages (we do not use hstrerror from the standard C library, 34-- as this function is obsolete). 35 36separate (GNAT.Sockets.Thin) 37package body Host_Error_Messages is 38 39 package Messages is 40 HOST_NOT_FOUND : aliased char_array := "Host not found" & nul; 41 TRY_AGAIN : aliased char_array := "Try again" & nul; 42 NO_RECOVERY : aliased char_array := "No recovery" & nul; 43 NO_DATA : aliased char_array := "No address" & nul; 44 Unknown_Error : aliased char_array := "Unknown error" & nul; 45 end Messages; 46 47 function Host_Error_Message (H_Errno : Integer) return C.Strings.chars_ptr 48 is 49 use Interfaces.C.Strings; 50 function TCP 51 (P : char_array_access; Nul_Check : Boolean := False) return chars_ptr 52 renames To_Chars_Ptr; 53 54 begin 55 case H_Errno is 56 when SOSC.HOST_NOT_FOUND => 57 return TCP (Messages.HOST_NOT_FOUND'Access); 58 59 when SOSC.TRY_AGAIN => 60 return TCP (Messages.TRY_AGAIN'Access); 61 62 when SOSC.NO_RECOVERY => 63 return TCP (Messages.NO_RECOVERY'Access); 64 65 when SOSC.NO_DATA => 66 return TCP (Messages.NO_DATA'Access); 67 68 when others => 69 return TCP (Messages.Unknown_Error'Access); 70 71 end case; 72 end Host_Error_Message; 73 74end Host_Error_Messages; 75