Summary:
Added support for the Server exit capability
1. Add new api property_exit()
2. Add new command exitprop
dependson:756874
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
Summary:
Added filekv backend,We need to configure the persist storage location (folder directory) and tmp storage location (folder directory) if we need
next:Put the file behavior in common so that other backends can use it
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
KVDB use unqlite by default. NVS will be another choice
dependson: 965665 965758 partner_22343 partner_22348 partner_22347 partner_22345 partner_22354 partner_22397
Signed-off-by: xucheng5 <xucheng5@xiaomi.com>
In the case of a single core, there is no need to monitor the rpmsg socket, and the client can directly call the interface set and get attributes
Signed-off-by: yuanchengcheng <yuanchengcheng@xiaomi.com>
When the type of basic value is double, can't using void *value as buffer to get value.
==3263760==ERROR: AddressSanitizer: stack-buffer-overflow on address 0xefe13c30 at pc 0x577c0356 bp 0xefe139b8 sp 0xefe139a8
WRITE of size 8 at 0xefe13c30 thread T0
#0 0x577c0355 in _dbus_marshal_read_basic dbus/dbus/dbus-marshal-basic.c:581
#1 0x5783bedb in _dbus_type_reader_read_basic dbus/dbus/dbus-marshal-recursive.c:879
#2 0x5776ef72 in dbus_message_iter_get_basic dbus/dbus/dbus-message.c:2376
#3 0x57e06daa in iter_append_iter gdbus/client.c:222
#4 0x57e070b1 in prop_entry_update gdbus/client.c:265
#5 0x57e07454 in prop_entry_new gdbus/client.c:286
#6 0x57e0793a in add_property gdbus/client.c:322
#7 0x57e09abd in properties_changed_non_standard gdbus/client.c:544
#8 0x57df2e00 in signal_filter gdbus/watch.c:394
#9 0x57df4d57 in message_filter gdbus/watch.c:544
#10 0x57752dc6 in dbus_connection_dispatch dbus/dbus/dbus-connection.c:4703
#11 0x57dde7d5 in message_dispatch gdbus/mainloop.c:59
#12 0x5790e3b8 in g_idle_dispatch glib/glib/gmain.c:6157
#13 0x57900a31 in g_main_dispatch glib/glib/gmain.c:3477
#14 0x579080d3 in g_main_context_dispatch glib/glib/gmain.c:4195
#15 0x57908bcc in g_main_context_iterate glib/glib/gmain.c:4271
#16 0x57909e7f in g_main_loop_run glib/glib/gmain.c:4471
#17 0x57dde5b7 in telephonytool_main /home/djz/workspace/test/sim/frameworks/telephony/telephony_tool.c:878
#18 0x56ea66b5 in nxtask_startup sched/task_startup.c:70
#19 0x56e541a8 in nxtask_start task/task_start.c:134
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
There are still three fail test cases (android property test):
1. empty key test, reason: kvdb do not support empty key;
2. long key test, reason: (a) read only property value length can be
arbitrarily-long in android, kvdb do not support; (b) read only
property can be set if the property do not exist before, kvdb
not allowed this action;
3. cached property test, reason: (a) android cached property uses
serial to judge the [key, value] changed, kvdb can't handle this
very well; (b) android cached property return the value pointer
from the shared memory directly for read only property, kvdb
can't handle this well too.
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>
1. using dbus-list api to replace glib list.
2. using dbus-hash api to replace glib hash api.
3. using dbus-string api to replace glib string api.
4. using posix memory api to replace glib memory api.
5. ...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
when the kvdb has too many kv pairs, after kvdb_list_consume()
blocked in sendmsg (write buffer not enough), the domain socket
buffer layout may became:
[k0_len][v0_len][k0][v0]...[kn_len][vn_len][kn][vn][the last char]
so the client property_list will receive only one char (ret = 1)
after received [k0, v0] ~ [kn, vn], but actually the property list
is not terminated, property_list exit early problem happened.
this problem can be easily reproduced in 86panel by running kvdb
testcase twice.
Signed-off-by: wangbowen6 <wangbowen6@xiaomi.com>