diff --git a/pw3270.cbp b/pw3270.cbp
index b694ca7..e1d3575 100644
--- a/pw3270.cbp
+++ b/pw3270.cbp
@@ -284,6 +284,7 @@
+
diff --git a/src/libpw3270cpp/remote.cc b/src/libpw3270cpp/remote.cc
index 8649820..c58d0f9 100644
--- a/src/libpw3270cpp/remote.cc
+++ b/src/libpw3270cpp/remote.cc
@@ -817,6 +817,7 @@
return (LIB3270_SSL_STATE) query_intval(HLLAPI_PACKET_GET_SSL_STATE);
}
+/*
int connect(void)
{
int rc;
@@ -846,6 +847,47 @@
return rc;
}
+*/
+
+ virtual int connect()
+ {
+ return connect("",0);
+ }
+
+ virtual int connect(const char *url, time_t wait)
+ {
+ debug("%s(%s,%u)",__FUNCTION__,url,(unsigned int) wait);
+
+#if defined(WIN32)
+
+ #error Reimplementar
+
+#elif defined(HAVE_DBUS)
+
+ int rc = query_intval("connect", DBUS_TYPE_STRING, &url, DBUS_TYPE_INVALID);
+
+ debug("connect(%s) rc=%d (%s)",url,rc,strerror(rc));
+
+ if(!rc && wait) {
+ time_t end = time(0) + wait;
+ while(!is_connected()) {
+ if(time(0) > end) {
+ debug("%s: Timeout",__FUNCTION__);
+ return ETIMEDOUT;
+ }
+ usleep(500);
+ }
+ }
+
+#else
+ rc = EINVAL;
+
+#endif
+ debug("connect(%s) rc=%d (%s)",url,rc,strerror(rc));
+
+ return rc;
+
+ }
int set_url(const char *uri)
{
diff --git a/src/libpw3270cpp/testprogram.cc b/src/libpw3270cpp/testprogram.cc
index 8d1dd85..a9d5c5f 100644
--- a/src/libpw3270cpp/testprogram.cc
+++ b/src/libpw3270cpp/testprogram.cc
@@ -42,9 +42,9 @@
try
{
string s;
- session *session = session::start("service://?");
+ // session *session = session::start("service://?");
// session *session = session::start("");
- // session *session = session::start("new");
+ session *session = session::start("pw3270:A");
string name = session->get_session_name();
@@ -68,7 +68,7 @@
// s = session->get_host_charset();
// cout << "\tHost charset: " << s.c_str() << endl;
- cout << "Connect: " << session->connect("fandezhi.efglobe.com:23",60) << endl << endl;
+ cout << "Connect: " << session->connect("tn3270://fandezhi.efglobe.com:23",60) << endl << endl;
cout << "\tWaitForReady: " << session->wait_for_ready(10) << endl;
@@ -80,6 +80,7 @@
delete session;
+ /*
session = session::start(name.c_str());
cout << "Restored session: " << name << endl << endl;
cout << "\tIsConnected: " << session->is_connected() << endl;
@@ -88,6 +89,7 @@
session->disconnect();
session->close();
delete session;
+ */
}
catch(std::exception &e) {
diff --git a/src/plugins/dbus3270/test.sh b/src/plugins/dbus3270/test.sh
index bf81b19..39e7a5c 100755
--- a/src/plugins/dbus3270/test.sh
+++ b/src/plugins/dbus3270/test.sh
@@ -22,7 +22,7 @@ run_command()
;;
connect)
- dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.connect string:$2
+ dbus-send --session --print-reply --dest=$DEST.$SESSION $BPATH $DEST.connect string:$2 int32:10
;;
disconnect)
--
libgit2 0.21.2