1 /* 2 * Amanda, The Advanced Maryland Automatic Network Disk Archiver 3 * Copyright (c) 1991-1998, 2000 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 * $Id: amrecover.h,v 1.2 2006/05/25 01:47:13 johnfranks Exp $ 29 * 30 * data structures and declarations for amrecover 31 */ 32 33 #include "amanda.h" 34 #include "amfeatures.h" 35 36 typedef struct DIR_ITEM 37 { 38 char *date; 39 int level; 40 char *tape; 41 char *path; 42 off_t fileno; 43 44 struct DIR_ITEM *next; 45 } 46 DIR_ITEM; 47 48 extern char *server_name; 49 extern char *config; 50 extern char *dump_datestamp; /* date we are restoring */ 51 extern char *dump_hostname; /* which machine we are restoring */ 52 extern char *disk_name; /* disk we are restoring */ 53 extern char *mount_point; /* where disk was mounted */ 54 extern char *disk_path; /* path relative to mount point */ 55 extern char dump_date[STR_SIZE]; /* date on which we are restoring */ 56 extern int quit_prog; /* set when time to exit parser */ 57 extern char *tape_server_name; 58 extern char *tape_device_name; 59 extern am_feature_t *our_features; 60 extern am_feature_t *indexsrv_features; 61 extern am_feature_t *tapesrv_features; 62 extern pid_t extract_restore_child_pid; 63 64 extern void free_dir_item(DIR_ITEM *item); 65 66 extern int converse(char *cmd); 67 extern int exchange(char *cmd); 68 extern int server_happy(void); 69 extern int send_command(char *cmd); 70 extern int get_reply_line(void); 71 extern char *reply_line(void); 72 73 extern void quit(void); 74 75 extern void help_list(void); /* list commands */ 76 77 extern void set_disk(char *dsk, char *mtpt); 78 extern void list_disk(char *amdevice); 79 extern void list_host(void); 80 extern void set_host(const char *host); 81 extern int set_date(char *date); 82 extern void set_directory(char *dir); 83 extern void local_cd(char *dir); 84 extern void cd_glob(char *dir); 85 extern void cd_regex(char *dir); 86 extern void cd_dir(char *dir, char *default_dir); 87 extern void set_tape(char *tape); 88 extern void show_directory(void); 89 extern void set_mode(int mode); 90 extern void show_mode(void); 91 92 extern void list_disk_history(void); 93 extern void list_directory(void); 94 extern DIR_ITEM *get_dir_list(void); 95 extern DIR_ITEM *get_next_dir_item(DIR_ITEM *this); 96 extern void suck_dir_list_from_server(void); 97 extern void clear_dir_list(void); 98 extern void clean_pathname(char *s); 99 extern void display_extract_list(char *file); 100 extern void clear_extract_list(void); 101 extern int is_extract_list_nonempty(void); 102 extern void add_glob(char *glob); 103 extern void add_regex(char *regex); 104 extern void add_file(char *path, char *regex); 105 extern void delete_glob(char *glob); 106 extern void delete_regex(char *regex); 107 extern void delete_file(char *path, char *regex); 108 109 extern void extract_files(void); 110 111 #ifdef SAMBA_CLIENT 112 #define SAMBA_SMBCLIENT 0 113 #define SAMBA_TAR 1 114 #endif 115 116 extern char *get_security(void); 117