libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

mhd_tls_enums.h (3304B)


      1 /* SPDX-License-Identifier: LGPL-2.1-or-later OR (GPL-2.0-or-later WITH eCos-exception-2.0) */
      2 /*
      3   This file is part of GNU libmicrohttpd.
      4   Copyright (C) 2024 Evgeny Grin (Karlson2k)
      5 
      6   GNU libmicrohttpd is free software; you can redistribute it and/or
      7   modify it under the terms of the GNU Lesser General Public
      8   License as published by the Free Software Foundation; either
      9   version 2.1 of the License, or (at your option) any later version.
     10 
     11   GNU libmicrohttpd is distributed in the hope that it will be useful,
     12   but WITHOUT ANY WARRANTY; without even the implied warranty of
     13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     14   Lesser General Public License for more details.
     15 
     16   Alternatively, you can redistribute GNU libmicrohttpd and/or
     17   modify it under the terms of the GNU General Public License as
     18   published by the Free Software Foundation; either version 2 of
     19   the License, or (at your option) any later version, together
     20   with the eCos exception, as follows:
     21 
     22     As a special exception, if other files instantiate templates or
     23     use macros or inline functions from this file, or you compile this
     24     file and link it with other works to produce a work based on this
     25     file, this file does not by itself cause the resulting work to be
     26     covered by the GNU General Public License. However the source code
     27     for this file must still be made available in accordance with
     28     section (3) of the GNU General Public License v2.
     29 
     30     This exception does not invalidate any other reasons why a work
     31     based on this file might be covered by the GNU General Public
     32     License.
     33 
     34   You should have received copies of the GNU Lesser General Public
     35   License and the GNU General Public License along with this library;
     36   if not, see <https://www.gnu.org/licenses/>.
     37 */
     38 
     39 /**
     40  * @file src/mhd2/mhd_tls_enums.h
     41  * @brief  The definition of internal enums used for TLS communication
     42  * @author Karlson2k (Evgeny Grin)
     43  */
     44 
     45 #ifndef MHD_TLS_ENUMS_H
     46 #define MHD_TLS_ENUMS_H 1
     47 
     48 #include "mhd_sys_options.h"
     49 
     50 #ifndef MHD_SUPPORT_HTTPS
     51 #error This header should be used only if HTTPS is enabled
     52 #endif
     53 
     54 /**
     55  * Result of performing TLS procedure
     56  */
     57 enum MHD_FIXED_ENUM_ mhd_TlsProcedureResult
     58 {
     59   /**
     60    * Completed successfully
     61    */
     62   mhd_TLS_PROCED_SUCCESS = 0
     63   ,
     64   /**
     65    * In progress, receive operation interrupted.
     66    * 'recv-ready' flag should NOT be cleared
     67    */
     68   mhd_TLS_PROCED_RECV_INTERRUPTED
     69   ,
     70   /**
     71    * In progress, send operation interrupted
     72    * 'send-ready' flag should NOT be cleared
     73    */
     74   mhd_TLS_PROCED_SEND_INTERRUPTED
     75   ,
     76   /**
     77    * In progress, need to receive more data
     78    * 'recv-ready' flag should be cleared
     79    */
     80   mhd_TLS_PROCED_RECV_MORE_NEEDED
     81   ,
     82   /**
     83    * In progress, need to send more data
     84    * 'send-ready' flag should be cleared
     85    */
     86   mhd_TLS_PROCED_SEND_MORE_NEEDED
     87   ,
     88   /**
     89    * Procedure failed
     90    */
     91   mhd_TLS_PROCED_FAILED
     92 };
     93 
     94 /**
     95  * Protocol selected by ALPN
     96  */
     97 enum MHD_FIXED_ENUM_ mhd_TlsAlpnProt
     98 {
     99   /**
    100    * The protocol was not selected by ALPN
    101    * ALPN is not used by the client or TLS backend does not support ALPN
    102    */
    103   mhd_TLS_ALPN_PROT_NOT_SELECTED
    104   ,
    105   mhd_TLS_ALPN_PROT_HTTP1_0
    106   ,
    107   mhd_TLS_ALPN_PROT_HTTP1_1
    108   ,
    109   mhd_TLS_ALPN_PROT_HTTP2
    110   ,
    111   mhd_TLS_ALPN_PROT_ERROR
    112 };
    113 
    114 #endif /* ! MHD_TLS_ENUMS_H */