class cgi_environment :config:config -> properties:(string * string) list -> input_header:(string * string) list -> Netchannels.out_obj_channel ->object..end
new cgi_environment ~config ~properties ~input_header out_obj
    generates a Netcgi.cgi_environment object, from the arguments.
    The creation of such an object does not raise any exception.
    The method #out_channel of the created environment returns
    out_obj.config : give the configuration options.  Of particular
    interest here is config.workarounds.  If
    `MSIE_Content_type_bug is present, a fix will be applied to
    input_header.properties : CGI-like properties as (name, value) pairs.
    Examples: ("REQUEST_METHOD", "POST"), ("SERVER_PROTOCOL",
    "HTTP/1.1").  Note that "CONTENT_TYPE" and "CONTENT_LENGTH" are
    part of the input header.  It is highly recommended to use
    Netcgi_common.update_props_inheader to build this list.input_header : is a list of (field, value) pairs of the HTTP
    input request.  It is ASSUMED that field names in input_header
    are lowercase in order to apply a fix to the MSIE Content-Type
    bug.  Also remember that the separator is '-', not '_'.  Both
    requirements will be stafisfied if you use
    Netcgi_common.update_props_inheader to build input_header.
    Notes: The header is kept into variables and
    #send_output_header sents it directly to out_obj.  This has
    several advantages:
environment object can process the header; for example
    it can fix header fields.val mutable header_not_sent : booltrue iff the output headers have not been sent.
	#send_output_header must set it to false once it did its
	job.method cgi_gateway_interface : stringmethod cgi_server_name : stringmethod cgi_server_port : int optionmethod cgi_server_protocol : stringmethod cgi_server_software : stringmethod cgi_request_method : stringmethod cgi_script_name : stringmethod cgi_path_info : stringmethod cgi_path_translated : stringmethod cgi_auth_type : stringmethod cgi_remote_addr : stringmethod cgi_remote_host : stringmethod cgi_remote_user : stringmethod cgi_remote_ident : stringmethod cgi_query_string : stringmethod protocol : Nethttp.protocolmethod cgi_property : ?default:string -> string -> stringmethod cgi_properties : (string * string) listproperties.method cgi_https : boolHTTP if the HTTPS property is not understood.method input_header : Netmime.mime_headermethod input_header_field : ?default:string -> string -> stringmethod multiple_input_header_field : string -> string listmethod input_header_fields : (string * string) list : string -> Cookie.t : Cookie.t listmethod user_agent : stringmethod input_content_length : intmethod input_content_type_string : stringmethod input_content_type : unit -> string * (string * Mimestring.s_param) listmethod output_header : Netmime.mime_header#send_output_header.method output_header_field : ?default:string -> string -> stringmethod multiple_output_header_field : string -> string listmethod output_header_fields : (string * string) listmethod set_output_header_field : string -> string -> unitmethod set_multiple_output_header_field : string -> string list -> unitmethod set_output_header_fields : (string * string) list -> unitmethod set_status : Nethttp.http_status -> unitmethod send_output_header : unit -> unitmethod output_ch : Netchannels.out_obj_channel#out_channel instead.method out_channel : Netchannels.out_obj_channelmethod log_error : string -> unit#log_error msg adds a timestamp to msg and
	sends th result to stderr.method config : config
        