X-Git-Url: https://harrygodden.com/git/?p=vg.git;a=blobdiff_plain;f=vg_msg.c;fp=vg_msg.c;h=65d8ebda49bc0c9a317f33c7b60c7886ddfb8e5c;hp=db7380a91bfacd0f4292a043a1868e3b4fce89b7;hb=587831e3bf3072828aa844c945fa61b523bd2529;hpb=2c7ca232199368af22640bf3e59f07575009d8cb diff --git a/vg_msg.c b/vg_msg.c index db7380a..65d8ebd 100644 --- a/vg_msg.c +++ b/vg_msg.c @@ -1,5 +1,8 @@ #include "vg_msg.h" #include "vg_platform.h" +#include "vg_string.h" +#include +#include /* write a buffer from msg, rang checked. */ void vg_msg_wbuf( vg_msg *msg, u8 *buf, u32 len ) @@ -383,7 +386,8 @@ int vg_msg_getkvcmd( vg_msg *msg, const char *key, vg_msg_cmd *cmd ) * Read a integral KV out to dst, and perform conversion if needed * dst is always defined, if its not found its set to 0 */ -int vg_msg_getkvintg( vg_msg *msg, const char *key, u8 type, void *dst ) +int vg_msg_getkvintg( vg_msg *msg, const char *key, u8 type, void *dst, + void *default_value ) { vg_msg_cmd cmd; if( vg_msg_getkvcmd( msg, key, &cmd ) ) @@ -393,7 +397,11 @@ int vg_msg_getkvintg( vg_msg *msg, const char *key, u8 type, void *dst ) } else { - memset( dst, 0, vg_msg_cmd_bytecount(type) ); + if( default_value ) + memcpy( dst, default_value, vg_msg_cmd_bytecount(type) ); + else + memset( dst, 0, vg_msg_cmd_bytecount(type) ); + return 0; } }