Blame common-src/amfeatures.h

Packit Service 392537
/*
Packit Service 392537
 * Amanda, The Advanced Maryland Automatic Network Disk Archiver
Packit Service 392537
 * Copyright (c) 1991-1998 University of Maryland at College Park
Packit Service 392537
 * Copyright (c) 2007-2012 Zmanda, Inc.  All Rights Reserved.
Packit Service 392537
 * Copyright (c) 2013-2016 Carbonite, Inc.  All Rights Reserved.
Packit Service 392537
 * All Rights Reserved.
Packit Service 392537
 *
Packit Service 392537
 * Permission to use, copy, modify, distribute, and sell this software and its
Packit Service 392537
 * documentation for any purpose is hereby granted without fee, provided that
Packit Service 392537
 * the above copyright notice appear in all copies and that both that
Packit Service 392537
 * copyright notice and this permission notice appear in supporting
Packit Service 392537
 * documentation, and that the name of U.M. not be used in advertising or
Packit Service 392537
 * publicity pertaining to distribution of the software without specific,
Packit Service 392537
 * written prior permission.  U.M. makes no representations about the
Packit Service 392537
 * suitability of this software for any purpose.  It is provided "as is"
Packit Service 392537
 * without express or implied warranty.
Packit Service 392537
 *
Packit Service 392537
 * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
Packit Service 392537
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
Packit Service 392537
 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
Packit Service 392537
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
Packit Service 392537
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
Packit Service 392537
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Packit Service 392537
 *
Packit Service 392537
 * Authors: the Amanda Development Team.  Its members are listed in a
Packit Service 392537
 * file named AUTHORS, in the root directory of this distribution.
Packit Service 392537
 */
Packit Service 392537
Packit Service 392537
/*
Packit Service 392537
 * $Id: amfeatures.h,v 1.21 2006/07/19 17:46:07 martinea Exp $
Packit Service 392537
 *
Packit Service 392537
 * Define feature test related items.
Packit Service 392537
 */
Packit Service 392537
Packit Service 392537
#ifndef AMFEATURES_H
Packit Service 392537
#define AMFEATURES_H
Packit Service 392537
Packit Service 392537
/*
Packit Service 392537
 * !!!WARNING!!!    !!!WARNING!!!    !!!WARNING!!!    !!!WARNING!!!
Packit Service 392537
 *
Packit Service 392537
 * No matter **WHAT**, you **MUST** enter new features at the **END**
Packit Service 392537
 * of this list (just before "last_feature").  If you do not, mass
Packit Service 392537
 * confusion will ensue.
Packit Service 392537
 *
Packit Service 392537
 * And features must **NEVER** be removed (that is, their code number
Packit Service 392537
 * must remain).  The bits are cheap.
Packit Service 392537
 *
Packit Service 392537
 * If you add a feature here, you probably also need to add a line to
Packit Service 392537
 * am_init_feature_set() in features.c unless it is dynamic in some way.
Packit Service 392537
 *
Packit Service 392537
 * !!!WARNING!!!    !!!WARNING!!!    !!!WARNING!!!    !!!WARNING!!!
Packit Service 392537
 */
Packit Service 392537
typedef enum {
Packit Service 392537
    /*
Packit Service 392537
     * This bit will be set if the feature test code is supported.  It
Packit Service 392537
     * will only be off for "old" (2.4.2p2 and earlier) systems.
Packit Service 392537
     */
Packit Service 392537
    have_feature_support = 0,
Packit Service 392537
Packit Service 392537
    /*
Packit Service 392537
     * Amanda used to send authorization type information around like
Packit Service 392537
     * this in the OPTIONS string:
Packit Service 392537
     *
Packit Service 392537
     *	bsd-auth
Packit Service 392537
     *	krb4-auth
Packit Service 392537
     *
Packit Service 392537
     * To make it easier to add new authorization methods and parse,
Packit Service 392537
     * this was changed to a keyword=value syntax:
Packit Service 392537
     *
Packit Service 392537
     *	auth=BSD
Packit Service 392537
     *	auth=RSH
Packit Service 392537
     *	auth=krb5
Packit Service 392537
     *
Packit Service 392537
     * and so on.
Packit Service 392537
     */
Packit Service 392537
Packit Service 392537
    fe_options_auth, /* amanda_feature_auth_keyword */
Packit Service 392537
Packit Service 392537
    fe_selfcheck_req,
Packit Service 392537
    fe_selfcheck_req_device,
Packit Service 392537
    fe_selfcheck_rep,
Packit Service 392537
Packit Service 392537
    fe_sendsize_req_no_options,
Packit Service 392537
    fe_sendsize_req_options,
Packit Service 392537
    fe_sendsize_req_device,		/* require fe_sendsize_req_options */
Packit Service 392537
    fe_sendsize_rep,
Packit Service 392537
Packit Service 392537
    fe_sendbackup_req,
Packit Service 392537
    fe_sendbackup_req_device,
Packit Service 392537
    fe_sendbackup_rep,
Packit Service 392537
Packit Service 392537
    fe_noop_req,
Packit Service 392537
    fe_noop_rep,
Packit Service 392537
Packit Service 392537
    fe_program_dump,
Packit Service 392537
    fe_program_gnutar,
Packit Service 392537
    fe_program_application_api,		/* require fe_sendsize_req_options */
Packit Service 392537
Packit Service 392537
    fe_options_compress_fast,
Packit Service 392537
    fe_options_compress_best,
Packit Service 392537
    fe_options_srvcomp_fast,
Packit Service 392537
    fe_options_srvcomp_best,
Packit Service 392537
    fe_options_no_record,
Packit Service 392537
    fe_options_index,
Packit Service 392537
    fe_options_exclude_file,
Packit Service 392537
    fe_options_exclude_list,
Packit Service 392537
    fe_options_multiple_exclude,	/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_optional_exclude,	/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_include_file,		/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_include_list,		/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_multiple_include,	/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_optional_include,	/* require fe_sendsize_req_options */
Packit Service 392537
    fe_options_bsd_auth,
Packit Service 392537
    fe_options_krb4_auth,
Packit Service 392537
    fe_options_kencrypt,
Packit Service 392537
Packit Service 392537
    fe_req_options_maxdumps,
Packit Service 392537
    fe_req_options_hostname,
Packit Service 392537
    fe_req_options_features,
Packit Service 392537
Packit Service 392537
    fe_rep_options_maxdumps,
Packit Service 392537
    fe_rep_options_hostname,
Packit Service 392537
    fe_rep_options_features,
Packit Service 392537
    fe_rep_options_sendbackup_options,
Packit Service 392537
Packit Service 392537
    fe_amindexd_fileno_in_OLSD,
Packit Service 392537
    fe_amindexd_fileno_in_ORLD,
Packit Service 392537
    fe_amidxtaped_fsf,
Packit Service 392537
    fe_amidxtaped_label,
Packit Service 392537
    fe_amidxtaped_device,
Packit Service 392537
    fe_amidxtaped_host,
Packit Service 392537
    fe_amidxtaped_disk,
Packit Service 392537
    fe_amidxtaped_datestamp,
Packit Service 392537
    fe_amidxtaped_header,
Packit Service 392537
    fe_amidxtaped_nargs,
Packit Service 392537
    fe_amidxtaped_config,
Packit Service 392537
Packit Service 392537
    fe_partial_estimate,
Packit Service 392537
    fe_calcsize_estimate,
Packit Service 392537
    fe_selfcheck_calcsize,
Packit Service 392537
Packit Service 392537
    fe_recover_splits,
Packit Service 392537
    fe_amidxtaped_exchange_features,
Packit Service 392537
Packit Service 392537
    fe_options_compress_cust,
Packit Service 392537
    fe_options_srvcomp_cust,
Packit Service 392537
    fe_options_encrypt_cust,
Packit Service 392537
    fe_options_encrypt_serv_cust,
Packit Service 392537
    fe_options_client_decrypt_option,
Packit Service 392537
    fe_options_server_decrypt_option,
Packit Service 392537
Packit Service 392537
    fe_amindexd_marshall_in_OLSD,
Packit Service 392537
    fe_amindexd_marshall_in_ORLD,
Packit Service 392537
    fe_amindexd_marshall_in_DHST,
Packit Service 392537
    fe_amrecover_FEEDME,
Packit Service 392537
    fe_amrecover_timestamp,
Packit Service 392537
Packit Service 392537
    fe_interface_quoted_text,
Packit Service 392537
Packit Service 392537
    fe_program_star,
Packit Service 392537
Packit Service 392537
    fe_amindexd_options_hostname,
Packit Service 392537
    fe_amindexd_options_features,
Packit Service 392537
    fe_amindexd_options_auth,
Packit Service 392537
Packit Service 392537
    fe_amidxtaped_options_hostname,
Packit Service 392537
    fe_amidxtaped_options_features,
Packit Service 392537
    fe_amidxtaped_options_auth,
Packit Service 392537
Packit Service 392537
    fe_amrecover_message,
Packit Service 392537
    fe_amrecover_feedme_tape,
Packit Service 392537
Packit Service 392537
    fe_req_options_config,
Packit Service 392537
Packit Service 392537
    fe_rep_sendsize_quoted_error,
Packit Service 392537
    fe_req_xml,
Packit Service 392537
    fe_pp_script,	// only in XML
Packit Service 392537
    fe_amindexd_DLE,
Packit Service 392537
    fe_amrecover_dle_in_header,
Packit Service 392537
    fe_xml_estimate,
Packit Service 392537
    fe_xml_property_priority,
Packit Service 392537
    fe_sendsize_rep_warning,
Packit Service 392537
    fe_xml_estimatelist,
Packit Service 392537
    fe_xml_level_server,
Packit Service 392537
    fe_xml_data_path,
Packit Service 392537
    fe_xml_directtcp_list,
Packit Service 392537
    fe_amidxtaped_datapath,
Packit Service 392537
    fe_sendbackup_noop,
Packit Service 392537
    fe_amrecover_origsize_in_header,
Packit Service 392537
    fe_amidxtaped_abort,
Packit Service 392537
    fe_amrecover_correct_disk_quoting,
Packit Service 392537
    fe_amindexd_quote_label,
Packit Service 392537
Packit Service 392537
    fe_amrecover_receive_unfiltered,
Packit Service 392537
    fe_application_client_name,
Packit Service 392537
    fe_script_client_name,
Packit Service 392537
    fe_dumptype_property,
Packit Service 392537
    fe_sendbackup_state,
Packit Service 392537
    fe_sendbackup_crc,
Packit Service 392537
    fe_amrecover_crc_in_header,
Packit Service 392537
    fe_amrecover_data_status,
Packit Service 392537
    fe_amrecover_data_crc,
Packit Service 392537
Packit Service 392537
    fe_amrecover_storage_in_marshall,
Packit Service 392537
    fe_amidxtaped_storage_in_marshall,
Packit Service 392537
    fe_amindexd_STORAGE,
Packit Service 392537
    fe_sendbackup_retry,
Packit Service 392537
    fe_sendbackup_retry_delay,
Packit Service 392537
    fe_sendbackup_retry_level,
Packit Service 392537
    fe_sendbackup_retry_message,
Packit Service 392537
    fe_selfcheck_message,
Packit Service 392537
    fe_sendsize_message,
Packit Service 392537
    fe_sendbackup_message,
Packit Service 392537
    fe_sendbackup_rep_retry,
Packit Service 392537
    fe_sendbackup_stream_state,
Packit Service 392537
    fe_amrecover_stream_state,
Packit Service 392537
    fe_amidxtaped_dar,
Packit Service 392537
Packit Service 392537
    fe_restore_mesg_json,
Packit Service 392537
    fe_restore_state_stream,
Packit Service 392537
Packit Service 392537
    fe_amrecover_header_send_size,
Packit Service 392537
    fe_amrecover_header_ready,
Packit Service 392537
    fe_amrecover_header_done,
Packit Service 392537
    fe_amrecover_state_send,
Packit Service 392537
    fe_amrecover_state_ready,
Packit Service 392537
    fe_amrecover_state_done,
Packit Service 392537
    fe_amrecover_data_send,
Packit Service 392537
    fe_amrecover_data_ready,
Packit Service 392537
    fe_amrecover_data_done,
Packit Service 392537
Packit Service 392537
    fe_restore_header_send_size,
Packit Service 392537
    fe_restore_header_ready,
Packit Service 392537
    fe_restore_header_done,
Packit Service 392537
    fe_restore_state_send,
Packit Service 392537
    fe_restore_state_ready,
Packit Service 392537
    fe_restore_state_done,
Packit Service 392537
    fe_restore_data_send,
Packit Service 392537
    fe_restore_data_ready,
Packit Service 392537
    fe_restore_data_done,
Packit Service 392537
    fe_restore_dar,
Packit Service 392537
    fe_restore_datapath,
Packit Service 392537
    fe_restore_include,
Packit Service 392537
    fe_restore_include_glob,
Packit Service 392537
    fe_restore_exclude,
Packit Service 392537
    fe_restore_exclude_glob,
Packit Service 392537
    fe_restore_prev_next_level,
Packit Service 392537
Packit Service 392537
    fe_sendbackup_req_options_data_shm_control_name,
Packit Service 392537
    fe_req_options_timestamp,
Packit Service 392537
Packit Service 392537
    /*
Packit Service 392537
     * All new features must be inserted immediately *before* this entry.
Packit Service 392537
     */
Packit Service 392537
    last_feature
Packit Service 392537
} am_feature_e;
Packit Service 392537
Packit Service 392537
/* don't include this struct or the subsequent functions in Amanda::Feature SWIG */
Packit Service 392537
#ifndef AMANDA_FEATURE_SWG
Packit Service 392537
Packit Service 392537
typedef struct am_feature_s {
Packit Service 392537
    size_t		size;
Packit Service 392537
    unsigned char	*bytes;
Packit Service 392537
} am_feature_t;
Packit Service 392537
Packit Service 392537
/*
Packit Service 392537
 * Functions.
Packit Service 392537
 */
Packit Service 392537
Packit Service 392537
extern am_feature_t *am_features(am_feature_t *f);
Packit Service 392537
extern am_feature_t *am_init_feature_set(void);
Packit Service 392537
extern am_feature_t *am_set_default_feature_set(void);
Packit Service 392537
extern am_feature_t *am_allocate_feature_set(void);
Packit Service 392537
extern void am_release_feature_set(am_feature_t *);
Packit Service 392537
extern int am_add_feature(am_feature_t *f, am_feature_e n);
Packit Service 392537
extern int am_remove_feature(am_feature_t *f, am_feature_e n);
Packit Service 392537
extern int am_has_feature(am_feature_t *f, am_feature_e n);
Packit Service 392537
extern char *am_feature_to_string(am_feature_t *f);
Packit Service 392537
extern am_feature_t *am_string_to_feature(char *s);
Packit Service 392537
Packit Service 392537
#endif
Packit Service 392537
Packit Service 392537
#endif	/* !AMFEATURES_H */