1*1c60b9acSAndroid Build Coastguard Worker# lws minimal dbus server 2*1c60b9acSAndroid Build Coastguard Worker 3*1c60b9acSAndroid Build Coastguard Worker## build 4*1c60b9acSAndroid Build Coastguard Worker 5*1c60b9acSAndroid Build Coastguard WorkerUsing libdbus requires additional non-default include paths setting, same as 6*1c60b9acSAndroid Build Coastguard Workeris necessary for lws build described in ./lib/roles/dbus/README.md 7*1c60b9acSAndroid Build Coastguard Worker 8*1c60b9acSAndroid Build Coastguard WorkerCMake can guess one path and the library name usually, see the README above 9*1c60b9acSAndroid Build Coastguard Workerfor details of how to override for custom libdbus and cross build. 10*1c60b9acSAndroid Build Coastguard Worker 11*1c60b9acSAndroid Build Coastguard WorkerFedora example: 12*1c60b9acSAndroid Build Coastguard Worker``` 13*1c60b9acSAndroid Build Coastguard Worker$ cmake .. -DLWS_DBUS_INCLUDE2="/usr/lib64/dbus-1.0/include" 14*1c60b9acSAndroid Build Coastguard Worker$ make 15*1c60b9acSAndroid Build Coastguard Worker``` 16*1c60b9acSAndroid Build Coastguard Worker 17*1c60b9acSAndroid Build Coastguard WorkerUbuntu example: 18*1c60b9acSAndroid Build Coastguard Worker``` 19*1c60b9acSAndroid Build Coastguard Worker$ cmake .. -DLWS_DBUS_INCLUDE2="/usr/lib/x86_64-linux-gnu/dbus-1.0/include" 20*1c60b9acSAndroid Build Coastguard Worker$ make 21*1c60b9acSAndroid Build Coastguard Worker``` 22*1c60b9acSAndroid Build Coastguard Worker 23*1c60b9acSAndroid Build Coastguard Worker## usage 24*1c60b9acSAndroid Build Coastguard Worker 25*1c60b9acSAndroid Build Coastguard WorkerCommandline option|Meaning 26*1c60b9acSAndroid Build Coastguard Worker---|--- 27*1c60b9acSAndroid Build Coastguard Worker-d <loglevel>|Debug verbosity in decimal, eg, -d15 28*1c60b9acSAndroid Build Coastguard Worker--session | Bind to session bus instead of creating private abstract unix socket 29*1c60b9acSAndroid Build Coastguard Worker 30*1c60b9acSAndroid Build Coastguard WorkerBy default the minimal server listens using its own abstract unix socket 31*1c60b9acSAndroid Build Coastguard Workerat `unix:abstract=org.libwebsockets.test`. 32*1c60b9acSAndroid Build Coastguard Worker 33*1c60b9acSAndroid Build Coastguard WorkerYou can also run it instead as a participant on the session bus, without its own 34*1c60b9acSAndroid Build Coastguard Workerunix socket, by giving `--session`. 35*1c60b9acSAndroid Build Coastguard Worker 36*1c60b9acSAndroid Build Coastguard Worker### Examples using the default private abstract unix socket 37*1c60b9acSAndroid Build Coastguard Worker 38*1c60b9acSAndroid Build Coastguard Worker``` 39*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-dbus-server 40*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6448] USER: LWS minimal dbus server 41*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6693] NOTICE: Creating Vhost 'default' port 0, 1 protocols, IPv6 off 42*1c60b9acSAndroid Build Coastguard Worker... 43*1c60b9acSAndroid Build Coastguard Worker``` 44*1c60b9acSAndroid Build Coastguard Worker 45*1c60b9acSAndroid Build Coastguard WorkerYou can communicate with the dbus server over its private abstract socket using, eg 46*1c60b9acSAndroid Build Coastguard Worker 47*1c60b9acSAndroid Build Coastguard Worker``` 48*1c60b9acSAndroid Build Coastguard Worker$ gdbus introspect --address unix:abstract=org.libwebsockets.test --dest org.libwebsockets.test --object-path /org/libwebsockets/test 49*1c60b9acSAndroid Build Coastguard Workernode /org/example/TestObject { 50*1c60b9acSAndroid Build Coastguard Worker interface org.freedesktop.DBus.Introspectable { 51*1c60b9acSAndroid Build Coastguard Worker methods: 52*1c60b9acSAndroid Build Coastguard Worker Introspect(out s data); 53*1c60b9acSAndroid Build Coastguard Worker signals: 54*1c60b9acSAndroid Build Coastguard Worker properties: 55*1c60b9acSAndroid Build Coastguard Worker }; 56*1c60b9acSAndroid Build Coastguard Worker interface org.freedesktop.DBus.Properties { 57*1c60b9acSAndroid Build Coastguard Worker methods: 58*1c60b9acSAndroid Build Coastguard Worker Get(in s interface, 59*1c60b9acSAndroid Build Coastguard Worker... 60*1c60b9acSAndroid Build Coastguard Worker``` 61*1c60b9acSAndroid Build Coastguard Worker 62*1c60b9acSAndroid Build Coastguard Worker``` 63*1c60b9acSAndroid Build Coastguard Worker$ gdbus call --address unix:abstract=org.libwebsockets.test --dest org.libwebsockets.test --object-path /org/libwebsockets/test --method org.libwebsockets.test.Echo HELLO 64*1c60b9acSAndroid Build Coastguard Worker('HELLO',) 65*1c60b9acSAndroid Build Coastguard Worker``` 66*1c60b9acSAndroid Build Coastguard Worker 67*1c60b9acSAndroid Build Coastguard Worker### Examples using the DBUS session bus 68*1c60b9acSAndroid Build Coastguard Worker 69*1c60b9acSAndroid Build Coastguard Worker``` 70*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-dbus-server --session 71*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6448] USER: LWS minimal dbus server 72*1c60b9acSAndroid Build Coastguard Worker[2018/10/03 07:08:02:6693] NOTICE: Creating Vhost 'default' port 0, 1 protocols, IPv6 off 73*1c60b9acSAndroid Build Coastguard Worker... 74*1c60b9acSAndroid Build Coastguard Worker``` 75*1c60b9acSAndroid Build Coastguard Worker 76*1c60b9acSAndroid Build Coastguard WorkerYou can communicate with the dbus server over the session bus using, eg 77*1c60b9acSAndroid Build Coastguard Worker 78*1c60b9acSAndroid Build Coastguard Worker``` 79*1c60b9acSAndroid Build Coastguard Worker$ gdbus introspect --session --dest org.libwebsockets.test --object-path /org/libwebsockets/test 80*1c60b9acSAndroid Build Coastguard Workernode /org/example/TestObject { 81*1c60b9acSAndroid Build Coastguard Worker interface org.freedesktop.DBus.Introspectable { 82*1c60b9acSAndroid Build Coastguard Worker methods: 83*1c60b9acSAndroid Build Coastguard Worker Introspect(out s data); 84*1c60b9acSAndroid Build Coastguard Worker signals: 85*1c60b9acSAndroid Build Coastguard Worker properties: 86*1c60b9acSAndroid Build Coastguard Worker }; 87*1c60b9acSAndroid Build Coastguard Worker interface org.freedesktop.DBus.Properties { 88*1c60b9acSAndroid Build Coastguard Worker methods: 89*1c60b9acSAndroid Build Coastguard Worker Get(in s interface, 90*1c60b9acSAndroid Build Coastguard Worker... 91*1c60b9acSAndroid Build Coastguard Worker``` 92*1c60b9acSAndroid Build Coastguard Worker 93*1c60b9acSAndroid Build Coastguard Worker``` 94*1c60b9acSAndroid Build Coastguard Worker$ gdbus call --session --dest org.libwebsockets.test --object-path /org/libwebsockets/test --method org.libwebsockets.test.Echo HELLO 95*1c60b9acSAndroid Build Coastguard Worker('HELLO',) 96*1c60b9acSAndroid Build Coastguard Worker``` 97