Commit 3138caa8ea9d5987f38f82ceaeba219f23ce2144
1 parent
eb3be11e
Exists in
master
and in
1 other branch
Fixing bug on response parser.
Showing
4 changed files
with
36 additions
and
3 deletions
Show diff stats
client/src/core/linux/request.cc
| @@ -302,6 +302,17 @@ | @@ -302,6 +302,17 @@ | ||
| 302 | dbus_message_iter_get_basic(&iter, &rc); | 302 | dbus_message_iter_get_basic(&iter, &rc); |
| 303 | return (int) rc; | 303 | return (int) rc; |
| 304 | 304 | ||
| 305 | + } else if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_UINT32) { | ||
| 306 | + | ||
| 307 | + dbus_uint32_t rc = 0; | ||
| 308 | + dbus_message_iter_get_basic(&iter, &rc); | ||
| 309 | + return (int) rc; | ||
| 310 | + | ||
| 311 | + } else if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_INVALID) { | ||
| 312 | + | ||
| 313 | + debug("Argument type is invalid"); | ||
| 314 | + throw std::runtime_error("Invalid data type"); | ||
| 315 | + | ||
| 305 | } else if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_VARIANT) { | 316 | } else if(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_VARIANT) { |
| 306 | 317 | ||
| 307 | DBusMessageIter sub; | 318 | DBusMessageIter sub; |
| @@ -319,6 +330,12 @@ | @@ -319,6 +330,12 @@ | ||
| 319 | dbus_message_iter_get_basic(&sub, &rc); | 330 | dbus_message_iter_get_basic(&sub, &rc); |
| 320 | return (int) rc; | 331 | return (int) rc; |
| 321 | 332 | ||
| 333 | + } else if (current_type == DBUS_TYPE_UINT32) { | ||
| 334 | + | ||
| 335 | + dbus_uint32_t rc = 0; | ||
| 336 | + dbus_message_iter_get_basic(&sub, &rc); | ||
| 337 | + return (int) rc; | ||
| 338 | + | ||
| 322 | } else if (current_type == DBUS_TYPE_INT16) { | 339 | } else if (current_type == DBUS_TYPE_INT16) { |
| 323 | dbus_int16_t rc = 0; | 340 | dbus_int16_t rc = 0; |
| 324 | dbus_message_iter_get_basic(&sub, &rc); | 341 | dbus_message_iter_get_basic(&sub, &rc); |
client/src/session/remote/properties.cc
| @@ -133,7 +133,18 @@ | @@ -133,7 +133,18 @@ | ||
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | void IPC::Session::setUnlockDelay(unsigned short delay) { | 135 | void IPC::Session::setUnlockDelay(unsigned short delay) { |
| 136 | - setAttribute("unlock_delay", (uint32_t) delay); | 136 | + |
| 137 | + int32_t rc = -1; | ||
| 138 | + | ||
| 139 | + Request(*this,true,"unlock_delay") | ||
| 140 | + .push((uint32_t) delay) | ||
| 141 | + .call() | ||
| 142 | + .pop(rc); | ||
| 143 | + | ||
| 144 | + if(rc) { | ||
| 145 | + throw std::system_error((int) rc, std::system_category()); | ||
| 146 | + } | ||
| 147 | + | ||
| 137 | } | 148 | } |
| 138 | 149 | ||
| 139 | void IPC::Session::setLockOnOperatorError(bool lock) { | 150 | void IPC::Session::setLockOnOperatorError(bool lock) { |
client/src/testprogram/testprogram.cc
| @@ -131,6 +131,8 @@ | @@ -131,6 +131,8 @@ | ||
| 131 | << "\tConnected: " << host["Connected"] | 131 | << "\tConnected: " << host["Connected"] |
| 132 | << std::endl; | 132 | << std::endl; |
| 133 | 133 | ||
| 134 | + host.setUnlockDelay(0); | ||
| 135 | + host.setTimeout(10); | ||
| 134 | host.connect(nullptr); | 136 | host.connect(nullptr); |
| 135 | 137 | ||
| 136 | cout | 138 | cout |
server/testscripts/introspect.sh
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | + | ||
| 3 | +PRODUCT_NAME=$(pkg-config --variable=product_name lib3270) | ||
| 4 | + | ||
| 2 | gdbus \ | 5 | gdbus \ |
| 3 | introspect \ | 6 | introspect \ |
| 4 | --session \ | 7 | --session \ |
| 5 | - --dest=br.com.bb.$(pkg-config --variable=product_name lib3270).a \ | ||
| 6 | - --object-path=/br/com/bb/tn3270/session | 8 | + --dest=br.com.bb.${PRODUCT_NAME}.a \ |
| 9 | + --object-path=/br/com/bb/${PRODUCT_NAME}/a | ||
| 7 | 10 |