From a4d94745cd55c1b8828e5cac8befa00a716ef5e7 Mon Sep 17 00:00:00 2001 From: PerryWerneck Date: Sun, 5 Mar 2017 23:11:22 -0300 Subject: [PATCH] Corrigindo erro na restauração de sessão. --- src/libpw3270cpp/service.cc | 5 +++-- src/libpw3270cpp/testprogram.cc | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/libpw3270cpp/service.cc b/src/libpw3270cpp/service.cc index c21f7a7..0723fe8 100644 --- a/src/libpw3270cpp/service.cc +++ b/src/libpw3270cpp/service.cc @@ -287,11 +287,12 @@ if(*session != '?') { // Já tem sessão definida, usa. - this->name = session; - int rc = getInteger("chkId"); + int rc = getInteger("chkId",DBUS_TYPE_STRING, &session, DBUS_TYPE_INVALID); if(rc) { throw exception("%s",strerror(rc)); } + this->name = "service://"; + this->name += session; } else { diff --git a/src/libpw3270cpp/testprogram.cc b/src/libpw3270cpp/testprogram.cc index bf1d3fa..1c3d073 100644 --- a/src/libpw3270cpp/testprogram.cc +++ b/src/libpw3270cpp/testprogram.cc @@ -46,9 +46,11 @@ // session *session = session::start(""); // session *session = session::start("new"); + string name = session->get_session_name(); + cout << "pw3270 version: " << session->get_version() << endl; cout << "pw3270 revision: " << session->get_revision() << endl; - cout << "pw3270 session: " << session->get_session_name() << endl << endl; + cout << "pw3270 session: " << name << endl << endl; session->set_timeout(60); session->set_autoclose(60); @@ -77,9 +79,15 @@ cout << "Conteúdo:" << endl << session->get_contents() << endl; session->disconnect(); + + delete session; + + session = session::start(name.c_str()); + cout << "Restored session: " << name << endl << endl; session->close(); delete session; + } catch(std::exception &e) { -- libgit2 0.21.2