1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]

use libc::{c_char, c_int, c_void};

pub type FCGX_Request = c_void;
pub type FCGX_Stream = c_void;
pub type FCGX_ParamArray = *mut *mut c_char;

#[link(name = "fcgi")]
extern "C" {
    pub fn FCGX_Accept_r(request: *mut FCGX_Request) -> c_int;
    pub fn FCGX_GetError(stream: *mut FCGX_Stream) -> c_int;
    pub fn FCGX_GetStr(str: *mut c_char, n: c_int,
                       stream: *mut FCGX_Stream) -> c_int;
    pub fn FCGX_Init() -> c_int;
    pub fn FCGX_InitRequest(request: *mut FCGX_Request, sock: c_int,
                            flags: c_int) -> c_int;
    pub fn FCGX_FFlush(stream: *mut FCGX_Stream) -> c_int;
    pub fn FCGX_Finish_r(request: *mut FCGX_Request);
    pub fn FCGX_Free(request: *mut FCGX_Request, close: c_int);
    pub fn FCGX_PutStr(str: *const c_char, n: c_int,
                       stream: *mut FCGX_Stream) -> c_int;
}

extern "C" {
    pub fn FCGX_ABICompat_MallocRequest() -> *mut FCGX_Request;
    pub fn FCGX_ABICompat_RequestIn(request: *const FCGX_Request) -> *mut FCGX_Stream;
    pub fn FCGX_ABICompat_RequestOut(request: *const FCGX_Request) -> *mut FCGX_Stream;
    pub fn FCGX_ABICompat_RequestEnvp(request: *const FCGX_Request) -> FCGX_ParamArray;
}