blob: 8148a1f97cf542fb2d2495a01e5c539538a5d405 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
/*
* (c) BayCom GmbH, http://www.baycom.de, info@baycom.de
*
* See the COPYING file for copyright information and
* how to reach the author.
*
*/
#include "headers.h"
static tra_info_t tra_list;
static tra_t *tra_find_unique (tra_info_t *trl, char *uuid)
{
int i;
for (i = 0; i < trl->tra_num; i++) {
if (!strcmp (trl->tra[i].uuid, uuid)) {
return trl->tra + i;
}
}
return NULL;
}
static int tra_add_unique (tra_info_t *trl, tra_t *tri)
{
tra_t *trf=tra_find_unique (trl, tri->uuid);
if (!trf) {
trl->tra = (tra_t *) realloc (trl->tra, sizeof (tra_t) * (trl->tra_num + 1));
if (!trl->tra) {
err ("Cannot get memory for netceiver_info\n");
}
trf = trl->tra + trl->tra_num;
trl->tra_num++;
}
memcpy (trf, tri, sizeof (tra_t));
return 1;
}
tra_info_t *tra_get_list(void)
{
return &tra_list;
}
int handle_tra(tra_info_t *tra_info)
{
int i;
if(tra_info->tra_num) {
for (i = 0; i < tra_info->tra_num; i++) {
tra_add_unique (&tra_list, tra_info->tra+i);
}
memcpy(tra_list.cam, tra_info->cam, MAX_CAMS*sizeof(cam_info_t));
free (tra_info->tra);
return 1;
}
return 0;
}
|