Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
update_arp_k.c
Go to the documentation of this file.
1/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2* *
3* Licensa de Copia (C) <2022> <Aurora Boreal> *
4* *
5* Este programa e software livre: voce pode redistribuir isto e/ou *
6* modificar isto sobre os termos do GNU Licensa Geral Pública como 12
7* publicado pela Fundacao de Software Livre, tanto a versão 3 da *
8* Licensa, ou (dependendo da sua opcao) qualquer versao posterior. *
9* *
10* Este programa e distribuido na esperanca que isto vai ser util, *
11* mas SEM QUALQUER GARANTIA; sem ate mesmo a implicada garantia de *
12* COMERCIALIZAcaO ou CABIMENTO PARA UM FIM PARTICULAR. Veja a *
13* Licensa Geral Publica para mais detalhes. *
14* *
15* Você deve ter recebido uma cópia da LICENSA GERAL PUBLICA e a GNU *
16* Licensa Publica Menor junto com este programa *
17* Se não, veja <http://www.gnu.org/licenses/>. *
18* *
19* Suporte: sourceforge.net github.com *
20* *
21* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
22
23* Pereira: arsoftware25@gmail.com ricardo@arsoftware.net.br *
24* Koci: arsoftware10@gmail.com amanda@arsoftware.net. br *
25
26 pereira1001@users.sourceforge.net
27 */
28
29
30
32{
33
35
36 int has_next; // not in use
37
39};
40
43
45
47
49
85
91{
93
95
98inicio_ar:;
100 {
102 return 0;
103 }
104 my_ptr2_ar = my_ptr_ar;
105 my_ptr_ar = my_ptr_ar->next_ar;
107 {
108 free(my_ptr2_ar->next_ar);
109 }
110 pedro_dprintf(-20220108, "dando free em endereco %p %s", my_ptr2_ar->filename_k, my_ptr2_ar->filename_k);
111 free(my_ptr2_ar->filename_k); // ta aqui
112 free(my_ptr2_ar);
114 goto inicio_ar;
115 return 1;
116}
117
126{
127 // static VAL_data my_VAL_data;
128 static VAL_data my_VAL_data2;
129
130 int memoria_alocada_dl1 = 0;
131 int memoria_alocada_dl2 = 0;
132
133 __int64 can_seek_arp;
134 int status;
135 {
136 char *temp_arp_1 = malloc(AMANDA__SIZE);
137 char *temp_arp_2 = malloc(AMANDA__SIZE);
138 char *temp_arp_3 = malloc(AMANDA__SIZE);
139 int has_itens_is_amanda_update_internal = has_itens_is_amanda_update_;
142
143 while (has_itens_is_amanda_update_internal--)
144 {
146
147 assert(AMANDA__SIZE > strlen(aak_ptr->filename_k));
148 /*
149 if (mode_is_VAL_arp)
150 {
151 my_VAL_data.VAL_filename_dl = calloc(strlen(aak_ptr->filename_k) + 4, 1);
152
153 strcpy(my_VAL_data.VAL_filename_dl, aak_ptr->filename_k);
154 pedro_dprintf(-1, "depois de alocou ric");
155 }
156 */
157 if (aak_ptr->is_directory_arp)
158 {
159 struct timespec t;
160 t.tv_sec = aak_ptr->mtime_tv_sec_arp;
161 t.tv_nsec = 0;
162 st->atime = t;
163 st->mtime = t;
164 st->ctime = t;
165
166 assign_string(&st->file_name, aak_ptr->filename_k);
167
168 if ('/' != st->file_name[strlen(st->file_name) - 1])
169 {
170 static char temp_ar[AMANDA__SIZE];
171
172 strcpy(temp_ar, st->file_name);
173 strcat(temp_ar, "/");
174
175 assign_string(&st->file_name, temp_ar);
176 assign_string(&st->orig_file_name, temp_ar);
177
178 pedro_dprintf(-1, "pronto %s\n", st->file_name);
179 }
180
181 if (!mode_is_VAL_arp)
182 {
183 dump_directory(st);
184 }
185 else
186 {
187 my_VAL_data2 = aak_ptr->VAL_data__arp;
188 my_VAL_data2.VAL_is_dir = 1;
189 pedro_dprintf(-1, "antes diretorio %s freed %d", my_VAL_data2.VAL_filename_dl, my_VAL_data2.already_dl_freed);
190
191 if (true)
192 {
193 dump_diretory_VAL_arp(&my_VAL_data2);
194
195 pedro_dprintf(-1, "depois diretorio %s %p", my_VAL_data2.VAL_filename_dl, my_VAL_data2.VAL_filename_dl);
196 // free(my_VAL_data.VAL_filename_dl);
197 /*
198 if (false == my_VAL_data2.already_dl_freed)
199 {
200 pedro_dprintf(-1, "adicionado endereco %p", my_VAL_data2.VAL_filename_dl);
201 add_more_one_is_amanda_update_dl(my_VAL_data2.VAL_filename_dl);
202 }
203 */
204
206
207 my_VAL_data2.already_dl_freed = true;
208 // pedro_dprintf(-1, "depois diretorio free ");
209 // my_VAL_data2.VAL_filename_dl = NULL;
210 }
211 }
212 sprintf(process_message_k, "Processing %s", aak_ptr->filename_k);
214 }
215 else
216 {
217 if (strlen(aak_ptr->filename_k))
218 {
221 assign_string(&st->file_name, aak_ptr->filename_k);
222 {
223 static char my_copy_of_filename_ar[AMANDA__SIZE];
224 static char only_filename_arp[AMANDA__SIZE];
225 stripfilenameandpath_unix_arp(aak_ptr->filename_k, NULL, only_filename_arp);
226 strcpy(my_copy_of_filename_ar, only_filename_arp);
227 strtolower_ar(my_copy_of_filename_ar);
228 bool achei_o_match = false;
229 const char *my_str_literal = global_patern_ar;
230 char *token, *str, *tofree;
231 tofree = str = strdup(my_str_literal);
232 while ((token = strsep(&str, " ")))
233 {
234 if (strlen(token))
235 {
236 achei_o_match = strmatch(my_copy_of_filename_ar, token,
237 strlen(my_copy_of_filename_ar), strlen(token));
238 }
239 if (achei_o_match)
240 {
241 break;
242 }
243 }
244 free(tofree);
245
247 {
248 if (achei_o_match)
249 {
250 achei_o_match = false;
251 }
252 else
253 {
254 achei_o_match = true;
255 }
256 }
257
258 if (!achei_o_match)
259 {
260 goto skip_amanda;
261 }
262 }
263 struct timespec t;
264 t.tv_sec = aak_ptr->mtime_tv_sec_arp;
265
266 {
267 void printf_time(time_t s_arp, char *file_arp);
268 }
269
270 t.tv_nsec = 0;
271 st->atime = t;
272 st->mtime = t;
273 st->ctime = t;
274 st->stat.st_size = aak_ptr->size_of_file_arp;
275 st->archive_file_size = st->stat.st_size;
277 can_seek_arp = _lseeki64(
279 aak_ptr->position_on_file_arp,
280 SEEK_SET);
281
282 if (-1 == can_seek_arp)
283 {
284 fatal_exit_k = 10004;
285 strcpy(error_message_k, "Cannot seek on temporary file");
286 break;
287 }
288
289 // my_VAL_data.VAL_is_dir = 0;
290
291 if (!mode_is_VAL_arp)
292 {
293 status = dump_regular_file(our_update_file_open__arp, st);
294 switch (status)
295 {
296 case dump_status_ok:
297 case dump_status_short:;
298 break;
299
300 case dump_status_fail:
301
302 sprintf(warning_message_k, "Cannot process file %s", aak_ptr->filename_k);
304
305 break;
306
308 assert(0);
309 }
310 sprintf(process_message_k, "Processing %s", aak_ptr->filename_k);
312 }
313 else
314 {
315 my_VAL_data2 = aak_ptr->VAL_data__arp; // feito
316 my_VAL_data2.VAL_is_dir = 0;
317
318 pedro_dprintf(-1, "antes file %s freed %d", my_VAL_data2.VAL_filename_dl, my_VAL_data2.already_dl_freed);
319 if (true)
320 {
322 {
323 sprintf(warning_message_k, "Cannot process file %s", aak_ptr->filename_k);
325 }
326
327 pedro_dprintf(-1, "depois file %s", my_VAL_data2.VAL_filename_dl);
328 // free(my_VAL_data2.VAL_filename_dl);
329
330 /*
331 if (false == my_VAL_data2.already_dl_freed)
332 {
333 pedro_dprintf(-1, "adicionado endereco %p", my_VAL_data2.VAL_filename_dl);
334 add_more_one_is_amanda_update_dl(my_VAL_data2.VAL_filename_dl);
335 }
336 */
338 my_VAL_data2.already_dl_freed = true;
339 // pedro_dprintf(-1, "depois file free ");
340 // my_VAL_data2.VAL_filename_dl = NULL;
341 }
342 }
343
344 skip_amanda:;
345 }
346 }
347 aak_ptr = aak_ptr->next_ar;
348 }
349
350 free(temp_arp_1), free(temp_arp_2), free(temp_arp_3);
351 }
352
353 {
355 }
356 pedro_dprintf(-1, "um e dois %d %d", memoria_alocada_dl1, memoria_alocada_dl2);
357}
#define AMANDA__SIZE
Definition arp.h:149
@ ARP_EXCLUDE_FILES
Definition arp_2.h:6
void pedro_dprintf(int amanda_level, char *format,...)
Definition pedro.c:43
void add_more_one(char *data_ar)
Definition create_zen_ar.c:383
void dump_diretory_VAL_arp(VAL_data *my_VAL_data)
Definition val_create.c:146
int dump_regular_file_VAL_arp(int fd_arp, VAL_data *my_VAL_data)
Definition val_create.c:469
char process_message_k[AMANDA__SIZE]
Definition create_zen_ar.c:506
void strtolower_ar(char *path)
Definition create_zen_ar.c:669
char warning_message_k[AMANDA__SIZE]
Definition create_zen_ar.c:491
void trocadordebackslashfrente(char *path)
Definition create_zen_ar.c:1423
void dump_directory(struct tar_stat_info *st)
Definition create_zen_ar.c:1404
enum mode_is_include_or_exclude mode_is_include_or_exclude__
Definition create_zen_ar.c:349
bool strmatch(char str[], char pattern[], int n, int m)
Definition create_zen_ar.c:2493
int stripfilenameandpath_unix_arp(char *path, char *onlypath, char *onlyfilename)
Definition extract_kkk.c:507
#define assert(condition)
Definition lz4.c:273
Definition arp.h:153
bool already_dl_freed
Definition arp.h:173
char * VAL_filename_dl
Definition arp.h:159
int VAL_is_dir
Definition arp.h:167
Definition tar_1_33.c:1949
VAL_data VAL_data__arp
Definition tar_1_33.c:1951
time_t mtime_tv_sec_arp
Definition tar_1_33.c:1961
__int64 size_of_file_arp
Definition tar_1_33.c:1952
int64_t position_on_file_arp
Definition tar_1_33.c:1959
int is_directory_arp
Definition tar_1_33.c:1957
char * filename_k
Definition tar_1_33.c:1955
struct my_struct_for_list_ar_is_amanda_update_ * next_ar
Definition tar_1_33.c:1960
Definition update_arp_k.c:32
struct my_struct_for_list_ar_is_amanda_update_dl * next_ar
Definition update_arp_k.c:38
int has_next
Definition update_arp_k.c:36
char * filename_k
Definition update_arp_k.c:34
Definition tar.h:287
off_t archive_file_size
Definition tar.h:314
char * file_name
Definition tar.h:289
struct _stat stat
Definition tar.h:306
char * orig_file_name
Definition tar.h:288
struct timespec mtime
Definition tar.h:311
struct timespec ctime
Definition tar.h:312
struct timespec atime
Definition tar.h:310
char * strsep(char **stringp, const char *delim)
Definition tar_1_33.c:7425
char global_patern_ar[20000]
Definition tar_1_33.c:621
int64_t bytes_left_in_the_update_file_arp
Definition tar_1_33.c:643
void assign_string(char **string, const char *value)
Definition tar_1_33.c:5155
struct my_struct_for_list_ar_is_amanda_update_ * aak_inicio_is_amanda_update_
Definition tar_1_33.c:1965
int has_itens_is_amanda_update_
Definition tar_1_33.c:1969
bool mode_is_VAL_arp
Definition tar_1_33.c:594
void printf_time(time_t s_arp, __attribute__((unused)) char *file_arp)
Definition tar_1_33.c:3982
char error_message_k[AMANDA__SIZE]
Definition tar_1_33.c:176
int our_update_file_open__arp
Definition tar_1_33.c:641
@ dump_status_ok
Definition tar_1_33.c:3096
@ dump_status_not_implemented
Definition tar_1_33.c:3099
@ dump_status_fail
Definition tar_1_33.c:3098
@ dump_status_short
Definition tar_1_33.c:3097
int fatal_exit_k
Definition tar_1_33.c:3217
void dump_file_or_folder_final_arp(struct tar_stat_info *st)
Definition update_arp_k.c:125
struct my_struct_for_list_ar_is_amanda_update_dl * aak_inicio_is_amanda_update_dl
Definition update_arp_k.c:42
void add_more_one_is_amanda_update_dl(char *memory_ric)
Definition update_arp_k.c:50
struct my_struct_for_list_ar_is_amanda_update_dl * aak_pointer_is_amanda_update_dl
Definition update_arp_k.c:44
int has_itens_is_amanda_update_dl
Definition update_arp_k.c:46
int clean_list__ar_is_amanda_update_dl(void)
Definition update_arp_k.c:90
struct my_struct_for_list_ar_is_amanda_update_dl * aak_is_amanda_update_dl
Definition update_arp_k.c:41
int has_itens_copy_is_amanda_update_dl
Definition update_arp_k.c:48
__int64 _lseeki64(int fd, __int64 offset, int origin)
int __stdcall status(int newvalue)
Definition bzip2dll.c:513
#define SEEK_SET
Definition zconf.h:498
#define NULL
Definition getopt1.c:37
const char * str
Table column heading string.
Definition list.c:109