discovery saves result in struct
clean-up works now FossilOrigin-Name: b748ddb215a807c4634de1492c35aadfd4df7054b43bf73627b3ee67b224e0aa
This commit is contained in:
parent
370994b0b4
commit
48aa62b5be
@ -267,6 +267,8 @@
|
|||||||
<File Name="src/cw/cw_type_sysptr.c"/>
|
<File Name="src/cw/cw_type_sysptr.c"/>
|
||||||
<File Name="src/cw/log_errno.c"/>
|
<File Name="src/cw/log_errno.c"/>
|
||||||
<File Name="src/cw/cw_randint.c"/>
|
<File Name="src/cw/cw_randint.c"/>
|
||||||
|
<File Name="src/cw/cw_ktv_get_sysptr.c"/>
|
||||||
|
<File Name="src/cw/cw_ktv_get_dword.c"/>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
</VirtualDirectory>
|
</VirtualDirectory>
|
||||||
<Description/>
|
<Description/>
|
||||||
|
@ -70,6 +70,8 @@ CWSRC=\
|
|||||||
cw_ktv_get_byte.c\
|
cw_ktv_get_byte.c\
|
||||||
cw_ktv_get.c\
|
cw_ktv_get.c\
|
||||||
cw_ktv_get_word.c\
|
cw_ktv_get_word.c\
|
||||||
|
cw_ktv_get_dword.c\
|
||||||
|
cw_ktv_get_sysptr.c\
|
||||||
cw_ktv_idx_get.c\
|
cw_ktv_idx_get.c\
|
||||||
cw_ktv_mavlcmp.c\
|
cw_ktv_mavlcmp.c\
|
||||||
cw_ktv_mavlcmp_type_by_name.c\
|
cw_ktv_mavlcmp_type_by_name.c\
|
||||||
|
11
src/cw/cw_ktv_get_dword.c
Normal file
11
src/cw/cw_ktv_get_dword.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "ktv.h"
|
||||||
|
|
||||||
|
uint32_t cw_ktv_get_dword(mavl_t ktv,const char *key, uint32_t def)
|
||||||
|
{
|
||||||
|
cw_KTV_t * k;
|
||||||
|
k = cw_ktv_get(ktv,key,CW_TYPE_DWORD);
|
||||||
|
if (k != NULL){
|
||||||
|
return k->val.dword;
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
11
src/cw/cw_ktv_get_sysptr.c
Normal file
11
src/cw/cw_ktv_get_sysptr.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include "ktv.h"
|
||||||
|
|
||||||
|
void * cw_ktv_get_sysptr(mavl_t ktv,const char *key, void * def)
|
||||||
|
{
|
||||||
|
cw_KTV_t * k;
|
||||||
|
k = cw_ktv_get(ktv,key,CW_TYPE_SYSPTR);
|
||||||
|
if (k != NULL){
|
||||||
|
return k->val.ptr;
|
||||||
|
}
|
||||||
|
return def;
|
||||||
|
}
|
@ -6,10 +6,11 @@
|
|||||||
|
|
||||||
void cw_ktv_mavldel(void *data)
|
void cw_ktv_mavldel(void *data)
|
||||||
{
|
{
|
||||||
struct cw_KTV *kvt = data;
|
struct cw_KTV *ktv = data;
|
||||||
|
/*printf("KTV Del Key,Type: %s %s\n", ktv->key,ktv->type->name);*/
|
||||||
|
if (ktv->type->del){
|
||||||
|
ktv->type->del(data);
|
||||||
|
}
|
||||||
|
|
||||||
if (kvt->type->del)
|
free(ktv->key);
|
||||||
kvt->type->del(data);
|
|
||||||
|
|
||||||
free(kvt->key);
|
|
||||||
}
|
}
|
||||||
|
@ -134,6 +134,8 @@ int cw_ktv_read_file(FILE * file, mavl_t ktv, mavl_t types);
|
|||||||
cw_KTV_t * cw_ktv_get(mavl_t ktv, const char *key, const cw_Type_t * type);
|
cw_KTV_t * cw_ktv_get(mavl_t ktv, const char *key, const cw_Type_t * type);
|
||||||
uint8_t cw_ktv_get_byte(mavl_t ktv,const char *key, uint8_t def);
|
uint8_t cw_ktv_get_byte(mavl_t ktv,const char *key, uint8_t def);
|
||||||
uint16_t cw_ktv_get_word(mavl_t ktv,const char *key, uint16_t def);
|
uint16_t cw_ktv_get_word(mavl_t ktv,const char *key, uint16_t def);
|
||||||
|
uint32_t cw_ktv_get_dword(mavl_t ktv,const char *key, uint32_t def);
|
||||||
|
void * cw_ktv_get_sysptr(mavl_t ktv,const char *key, void * def);
|
||||||
|
|
||||||
int cw_ktv_idx_get(mavl_t ktv, const char *key, int idx, const cw_Type_t * type);
|
int cw_ktv_idx_get(mavl_t ktv, const char *key, int idx, const cw_Type_t * type);
|
||||||
|
|
||||||
|
@ -94,8 +94,14 @@ extern struct mlistelem *mlist_find(mlist_t l, struct mlistelem *start, void *da
|
|||||||
#define mlistelem_get_ptr(elem) (*((void**)(mlistelem_dataptr(elem))))
|
#define mlistelem_get_ptr(elem) (*((void**)(mlistelem_dataptr(elem))))
|
||||||
#define mlistelem_get_str(elem) mlistelem_get_ptr(elem)
|
#define mlistelem_get_str(elem) mlistelem_get_ptr(elem)
|
||||||
#define mlist_create_conststr() mlist_create(NULL,NULL,sizeof(const char*))
|
#define mlist_create_conststr() mlist_create(NULL,NULL,sizeof(const char*))
|
||||||
|
|
||||||
|
|
||||||
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr);
|
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr);
|
||||||
|
|
||||||
|
/*#define mlist_append_ptr(list,ptr) mlist_append(list,&(ptr))*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @} MLIST
|
* @} MLIST
|
||||||
*/
|
*/
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
#include "mlist.h"
|
#include "mlist.h"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Append a pointer value to mlist
|
||||||
|
* @param list List to append to
|
||||||
|
* @param ptr Pointer to append
|
||||||
|
* @return the created element or NULL if an error has occured
|
||||||
|
*/
|
||||||
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr)
|
mlistelem_t * mlist_append_ptr (mlist_t list, void * ptr)
|
||||||
{
|
{
|
||||||
return mlist_append (list, &ptr);
|
return mlist_append (list, &ptr);
|
||||||
|
@ -74,6 +74,8 @@ int cw_select_ac(mavl_t local_cfg, struct cw_DiscoveryResult * dis)
|
|||||||
|
|
||||||
cw_ktv_add(dis->prio_ip, key, CW_TYPE_SYSPTR, (uint8_t *) (&ipval),
|
cw_ktv_add(dis->prio_ip, key, CW_TYPE_SYSPTR, (uint8_t *) (&ipval),
|
||||||
sizeof(ipval));
|
sizeof(ipval));
|
||||||
|
cw_ktv_add(dis->prio_ac, key, CW_TYPE_SYSPTR, (uint8_t *)(&remote_cfg),
|
||||||
|
sizeof(remote_cfg));
|
||||||
i++;
|
i++;
|
||||||
en++;
|
en++;
|
||||||
} while (1);
|
} while (1);
|
||||||
@ -97,10 +99,20 @@ void cw_discovery_free_results(struct cw_DiscoveryResult * dis)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void result_del(void * data)
|
||||||
|
{
|
||||||
|
|
||||||
|
mavl_t todelete = *((void**)data);
|
||||||
|
mavl_destroy(todelete);
|
||||||
|
|
||||||
|
|
||||||
|
/*mavl_t*/
|
||||||
|
}
|
||||||
|
|
||||||
int cw_discovery_init_results(struct cw_DiscoveryResult *dis)
|
int cw_discovery_init_results(struct cw_DiscoveryResult *dis)
|
||||||
{
|
{
|
||||||
dis->results = mlist_create(NULL, NULL, sizeof(void *));
|
|
||||||
|
dis->results = mlist_create(NULL, result_del, sizeof(void *));
|
||||||
if (dis->results==NULL)
|
if (dis->results==NULL)
|
||||||
goto errX;
|
goto errX;
|
||||||
dis->prio_ac=cw_ktv_create();
|
dis->prio_ac=cw_ktv_create();
|
||||||
|
@ -164,6 +164,9 @@ int main (int argc, char **argv)
|
|||||||
cw_run_discovery(conn, "255.255.255.255",NULL, &dis);
|
cw_run_discovery(conn, "255.255.255.255",NULL, &dis);
|
||||||
|
|
||||||
cw_dbg_ktv_dump(dis.prio_ip, DBG_INFO, "=== IP list ===", "IP", "=== END IP List ===");
|
cw_dbg_ktv_dump(dis.prio_ip, DBG_INFO, "=== IP list ===", "IP", "=== END IP List ===");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
mavliter_t i;
|
mavliter_t i;
|
||||||
mavliter_init(&i, dis.prio_ip);
|
mavliter_init(&i, dis.prio_ip);
|
||||||
@ -172,14 +175,24 @@ int main (int argc, char **argv)
|
|||||||
char ipstr[100];
|
char ipstr[100];
|
||||||
char *rk;
|
char *rk;
|
||||||
cw_KTV_t *val;
|
cw_KTV_t *val;
|
||||||
|
mavl_t cfg;
|
||||||
|
|
||||||
val = mavliter_get(&i);
|
val = mavliter_get(&i);
|
||||||
rk = val->key;
|
rk = val->key;
|
||||||
val = val->val.ptr;
|
val = val->val.ptr;
|
||||||
val->type->to_str(val, ipstr, 100);
|
val->type->to_str(val, ipstr, 100);
|
||||||
printf("PTRVAL(%s): %s - %s\n", rk, val->key, ipstr);
|
printf("PTRVAL(%s): %s - %s\n", rk, val->key, ipstr);
|
||||||
|
|
||||||
|
|
||||||
|
cfg = cw_ktv_get_sysptr(dis.prio_ac,rk,NULL);
|
||||||
|
|
||||||
|
cw_dbg_ktv_dump(cfg,DBG_INFO,"----- dump of remote","dmp","endof of remote -------");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cw_discovery_free_results(&dis);
|
||||||
|
|
||||||
return (EXIT_SUCCESS);
|
return (EXIT_SUCCESS);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user