1 /* 2 * Amanda, The Advanced Maryland Automatic Network Disk Archiver 3 * Copyright (c) 1991-1998 University of Maryland at College Park 4 * Copyright (c) 2007-2013 Zmanda, Inc. All Rights Reserved. 5 * All Rights Reserved. 6 * 7 * Permission to use, copy, modify, distribute, and sell this software and its 8 * documentation for any purpose is hereby granted without fee, provided that 9 * the above copyright notice appear in all copies and that both that 10 * copyright notice and this permission notice appear in supporting 11 * documentation, and that the name of U.M. not be used in advertising or 12 * publicity pertaining to distribution of the software without specific, 13 * written prior permission. U.M. makes no representations about the 14 * suitability of this software for any purpose. It is provided "as is" 15 * without express or implied warranty. 16 * 17 * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M. 19 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 20 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 21 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 22 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 23 * 24 * Authors: the Amanda Development Team. Its members are listed in a 25 * file named AUTHORS, in the root directory of this distribution. 26 */ 27 28 /* 29 * $Id: amxml.h 5151 2007-02-06 15:41:53Z martineau $ 30 * 31 * xml parsing of amanda protocol packet 32 */ 33 34 #ifndef AMXML_H 35 #define AMXML_H 36 37 #include "conffile.h" 38 39 typedef struct script_s { 40 char *plugin; 41 execute_on_t execute_on; 42 int execute_where; 43 proplist_t property; 44 char *client_name; 45 struct client_script_result_s *result; 46 } script_t; 47 48 typedef GSList *scriptlist_t; 49 50 typedef struct level_s { 51 int level; 52 int server; /* if server can do the estimate */ 53 } am_level_t; 54 typedef GSList *levellist_t; /* A list where each element is a (am_level_t *) */ 55 56 typedef struct a_dle_s { 57 char *disk; 58 char *device; 59 int program_is_application_api; 60 char *program; 61 estimatelist_t estimatelist; 62 int spindle; 63 int compress; 64 int encrypt; 65 int kencrypt; 66 levellist_t levellist; 67 int nb_level; 68 char *dumpdate; 69 char *compprog; 70 char *srv_encrypt; 71 char *clnt_encrypt; 72 char *srv_decrypt_opt; 73 char *clnt_decrypt_opt; 74 int record; 75 int create_index; 76 char *auth; 77 am_sl_t *exclude_file; 78 am_sl_t *exclude_list; 79 am_sl_t *include_file; 80 am_sl_t *include_list; 81 int exclude_optional; 82 int include_optional; 83 proplist_t property; 84 proplist_t application_property; 85 char *application_client_name; 86 scriptlist_t scriptlist; 87 data_path_t data_path; 88 GSList *directtcp_list; 89 struct a_dle_s *next; 90 } dle_t; 91 92 dle_t *alloc_dle(void); 93 void init_dle(dle_t *dle); 94 void free_dle(dle_t *dle); 95 void free_script_data(script_t *script); 96 dle_t *amxml_parse_node_CHAR(char *txt, char **errmsg); 97 dle_t *amxml_parse_node_FILE(FILE *file, char **errmsg); 98 char *amxml_format_tag(char *tag, char *value); 99 #endif 100