1#ifndef _LIBBACKUP_H_
2#define _LIBBACKUP_H_
3
4#include "constant.h"
5
6#define	MAX_JOB_NAME_LEN	20
7#define	MAX_FS_NAME_LEN		20
8#define	MAX_FD_NAME_LEN		255
9#define	MAX_AMPM_LEN		2
10#define	MAX_JOB_NUM		5
11#define	BACKUP_CONF		"/etc/backup_sh.conf"
12#define DS_CONF	"/etc/CGI_ds.conf"
13
14#define	BACKUP_CMD		"/usr/sbin/backup"
15
16
17#define DIRECTION_N2F		0
18#define	DIRECTION_F2N		1
19
20#define ACTION_COPY	1
21#define ACTION_UPDATE 	2
22#define	ACTION_SYNC	3
23
24/*****
25
26[job_name]
27//job_owner=		//owner of the job
28job_mode=		//1,2,3	1-copy,2-update,3,sync
29direction=		//0:NAS->FILE SERVER	1:FILE SERVER->NAS.
30s_share=		//a share name
31d_fs=			//dest file server
32d_username=		//user name
33d_userpass=		//user password
34d_folder=		//dest share/floder
35schl_en=		//0,1	0-disable,1-enable
36//	when schl_en=1
37*	schl_day=	//1,2,3,4,5,6.7,8(weekdays),9(every day...)
38*	schl_hour=	//1-12
39*	schl_min=	//0-59
40*	schl_ampm=	//am/pm
41//
42*******/
43
44//#define	JOB_OWNER	"job_owner"
45#define	JOB_MODE	"job_mode"
46#define	JOB_DIRECTION	"job_direction"
47#define	JOB_S_SHARE	"s_share"
48#define	JOB_SH_FOLDER	"sh_folder"
49#define	JOB_D_FS	"d_fs"
50#define	JOB_D_AUTH	"d_auth"
51#define	JOB_D_USERNAME	"d_username"
52#define	JOB_D_USERPASS	"d_userpass"
53#define	JOB_FOLDER	"d_folder"
54#define	JOB_SCHL_EN	"schl_en"
55
56#define	JOB_SCHL_DAY	"schl_day"
57#define	JOB_SCHL_HOUR	"schl_hour"
58#define	JOB_SCHL_MIN	"schl_min"
59#define	JOB_SCHL_AMPM	"schl_ampm"
60
61
62typedef struct sh_backup
63{
64	char job_name[MAX_JOB_NAME_LEN+1];
65//	char job_owner[FSH_MaxUserLen+1];
66	int job_mode;
67	int job_direction;
68	char s_share[FSH_MaxShareLen+1];
69	char sh_folder[MAX_FD_NAME_LEN+1];
70	char d_fs[MAX_FS_NAME_LEN+1];
71	int auth;
72	char d_username[FSH_MaxUserLen+1];
73	char d_userpass[FSH_MaxPassLen+1];
74	char d_folder[MAX_FD_NAME_LEN+1];
75	int schl_en;
76
77	int schl_day;
78	int schl_hour;
79	int schl_min;
80	char schl_ampm[MAX_AMPM_LEN+1];
81
82	struct sh_backup *next;
83}sh_backup;
84
85typedef struct backup_info
86{
87	char job_name[MAX_JOB_NAME_LEN+1];
88	int job_mode;
89	int job_direction;
90	char s_share[FSH_MaxShareLen+1];
91	char sh_folder[MAX_FD_NAME_LEN+1];
92	char d_fs[MAX_FS_NAME_LEN+1];
93	int auth;
94	char d_username[FSH_MaxUserLen+1];
95	char d_userpass[FSH_MaxPassLen+1];
96	char d_folder[MAX_FD_NAME_LEN+1];
97}backup_info;
98
99int GetBackupList(sh_backup **,int *);
100int GetBackupInfo(backup_info *pInfo);
101int AddABackup(sh_backup *);
102int UpdateABackup(char *,sh_backup *);
103int DelABackup(char *);
104int NumOfBackupJobs(void);
105char *transf(char *path,char flag);
106int DoBackup(char *);
107
108void FreeBackupList(sh_backup *);
109
110int IsBackupExist(char *);
111int IsShareBackuping(char *pShare);
112int IsBackupDoing(char *pName);
113int SchlAddBackup(sh_backup *pBackup);
114int SchlDelBackup(char *job_name);
115#define WINDOW_MODE		1
116#define	LINUX_MODE		0
117int InternalJob(char *pServer)
118;
119char *transf(char *path,char flag);
120
121#define ERR_OPENFILE	1
122#define	ERR_READFILE	2
123
124#define	ERR_MEMALLOC	3
125#define	ERR_EXIST	4
126#define	ERR_NOT_EXIST	5
127
128#define	ERR_JOB_MODE	6
129#define	ERR_JOB_SCHL	7
130#define	ERR_JOB_PATH	8
131#define	ERR_JOB_DAY	9
132#define	ERR_JOB_HOUR	10
133#define	ERR_JOB_MIN	11
134#define	ERR_JOB_AMPM	12
135
136#define	ERR_WRITEFILE	13
137#define	ERR_MAX_JOB	14
138#define	ERR_JOB_NAME		15
139#define ERR_LOOP	16
140#define ERR_JOB_JOBNAME		17
141#define	ERR_JOB_HOSTNAME	18
142#define	ERR_JOB_USERNAME	19
143
144#define	ERR_JOB_BUSY		20
145#define	ERR_FULL_SCHL			21
146#define	ERR_DUP_SERVER			22
147#define ERR_SH_FOLDER			23
148#define	ERR_DUP_FOLDER			24
149#define ERR_JOB_DIRECTION		25
150#define	ERR_SRC_DEST_LOOP		26
151#endif
152