|
@@ -7,6 +7,7 @@ int ttail_search_closest(ttail_t* ttail)
|
7
|
7
|
fprintf(stderr, "A session is allready started\n");
|
8
|
8
|
return -1;
|
9
|
9
|
}
|
|
10
|
+ /*
|
10
|
11
|
ttail->session = (ttail_search_t*)malloc(ttail->logfile_sz?
|
11
|
12
|
sizeof(ttail_search_file_t):sizeof(ttail_search_stdin_t));
|
12
|
13
|
if(!ttail->session)
|
|
@@ -14,6 +15,7 @@ int ttail_search_closest(ttail_t* ttail)
|
14
|
15
|
perror("Unable to allocate memory for search session");
|
15
|
16
|
return -1;
|
16
|
17
|
}
|
|
18
|
+ */
|
17
|
19
|
return ttail->logfile_sz?\
|
18
|
20
|
_ttail_search_closest_files(ttail):\
|
19
|
21
|
_ttail_search_closest_stdin(ttail);
|
|
@@ -31,6 +33,14 @@ int _ttail_search_closest_files_init(ttail_t* t)
|
31
|
33
|
size_t i;
|
32
|
34
|
off_t *file_sz;
|
33
|
35
|
|
|
36
|
+ t->session = (ttail_search_t*)malloc(sizeof(ttail_search_file_t));
|
|
37
|
+ if(!t->session)
|
|
38
|
+ {
|
|
39
|
+ perror("Unable to allocate memory for search session");
|
|
40
|
+ goto _ttail_search_closest_files_alloc_session_err;
|
|
41
|
+ }
|
|
42
|
+ memset(t->session, 0, sizeof(ttail_search_file_t));
|
|
43
|
+
|
34
|
44
|
file_sz = malloc(sizeof(off_t)*t->logfile_sz);
|
35
|
45
|
if(!file_sz)
|
36
|
46
|
{
|
|
@@ -64,11 +74,19 @@ int _ttail_search_closest_files_init(ttail_t* t)
|
64
|
74
|
/*
|
65
|
75
|
* not implemented
|
66
|
76
|
*/
|
|
77
|
+ if(_ttail_search_closest_files_set_fsizes(t))
|
|
78
|
+ {
|
|
79
|
+ goto _ttail_search_closest_files_err;
|
|
80
|
+ }
|
|
81
|
+
|
|
82
|
+ return 0;
|
67
|
83
|
|
68
|
84
|
_ttail_search_closest_files_err:
|
69
|
85
|
free(file_sz);
|
70
|
86
|
t->session->file.file_sz = NULL;
|
71
|
87
|
_ttail_search_closest_files_alloc_err:
|
|
88
|
+ free(t->session);
|
|
89
|
+ _ttail_search_closest_files_alloc_session_err:
|
72
|
90
|
return -1;
|
73
|
91
|
}
|
74
|
92
|
|
|
@@ -89,9 +107,9 @@ int _ttail_search_closest_files_set_fsizes(ttail_t* t)
|
89
|
107
|
{
|
90
|
108
|
vfile[i] = *vsz;
|
91
|
109
|
#ifdef HUGEFILE
|
92
|
|
- vsz += t->session->file.file_sz[i] >> t->session->file.sz_div;
|
|
110
|
+ *vsz += t->session->file.file_sz[i] >> t->session->file.sz_div;
|
93
|
111
|
#else
|
94
|
|
- vsz += t->session->file.file_sz[i];
|
|
112
|
+ *vsz += t->session->file.file_sz[i];
|
95
|
113
|
#endif
|
96
|
114
|
}
|
97
|
115
|
t->session->file.vpos = 0;
|