00001 /*************************************************************************** 00002 * Copyright (C) 2008 by Rick L. Vinyard, Jr. * 00003 * rvinyard@cs.nmsu.edu * 00004 * * 00005 * This file is part of the conexus library. * 00006 * * 00007 * The conexus library is free software; you can redistribute it and/or * 00008 * modify it under the terms of the GNU General Public License * 00009 * version 3 as published by the Free Software Foundation. * 00010 * * 00011 * The conexus library is distributed in the hope that it will be * 00012 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * 00013 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00014 * General Public License for more details. * 00015 * * 00016 * You should have received a copy of the GNU General Public License * 00017 * along with this software. If not see <http://www.gnu.org/licenses/>. * 00018 ***************************************************************************/ 00019 #ifndef CONEXUSSSLEXCEPT_H 00020 #define CONEXUSSSLEXCEPT_H 00021 00026 #include <conexus/except.h> 00027 #include <openssl/err.h> 00028 00029 namespace Conexus 00030 { 00031 namespace SSL 00032 { 00033 00039 class exception: public ::Conexus::conexus_exception 00040 { 00041 public: 00042 exception(unsigned long e=0): 00043 conexus_exception("Conexus::SSL",0) 00044 { 00045 m_return_string = "Conexus::SSL OpenSSL error Library: "; 00046 m_return_string += ERR_lib_error_string(e); 00047 m_return_string += " Func: "; 00048 m_return_string += ERR_func_error_string(e); 00049 m_return_string += " Reason: "; 00050 m_return_string += ERR_reason_error_string(e); 00051 } 00052 00053 ~exception() throw () { } 00054 00055 protected: 00056 }; 00057 00058 } 00059 00060 void throw_ssl_exception() throw (SSL::exception); 00061 00062 } 00063 00064 #endif 00065