Yann Weber 7 years ago
parent
commit
fd6a8054ac
1 changed files with 20 additions and 2 deletions
  1. 20
    2
      src/ttail_search.c

+ 20
- 2
src/ttail_search.c View File

@@ -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;

Loading…
Cancel
Save