diff --git a/po/pt_BR.po b/po/pt_BR.po index fa3afd4..df5bad4 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: pw3270 5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2014-04-15 15:34-0300\n" +"POT-Creation-Date: 2014-04-16 07:31-0300\n" "PO-Revision-Date: 2014-02-17 08:05-0300\n" "Last-Translator: Perry Werneck \n" "Language-Team: Portugues <>\n" diff --git a/src/classlib/Makefile.in b/src/classlib/Makefile.in index e131839..4be1825 100644 --- a/src/classlib/Makefile.in +++ b/src/classlib/Makefile.in @@ -61,6 +61,8 @@ LIBS=@LIBS@ $(CLASS_LIBS) DEBUG_CFLAGS=-DDEBUG=1 -g -Wall +EXEEXT=@EXEEXT@ + #---[ Rules ]------------------------------------------------------------------ CXX=@CXX@ @@ -103,7 +105,7 @@ run: $(BINDBG)/testprogram$(EXEEXT) $(BINDBG)/testprogram$(EXEEXT): $(OBJDBG)/testprogram.o $(BINDBG)/$(LIBNAME) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(LD) -o $@ $^ $(LIBS) + @$(LD) -o $@ $^ $(BINDBG)/$(LIBNAME): $(foreach SRC, $(basename $(CLASS_SRC)), $(OBJDBG)/$(SRC).o) @echo " CCLD `basename $@`" diff --git a/src/classlib/remote.cc b/src/classlib/remote.cc index 22d4d20..fc7bbdd 100644 --- a/src/classlib/remote.cc +++ b/src/classlib/remote.cc @@ -134,17 +134,21 @@ struct hllapi_packet_text * response; DWORD cbSize = sizeof(struct hllapi_packet_text)+len; string s; + char buffer[cbSize+2]; - response = (struct hllapi_packet_text *) malloc(cbSize+2); - memset(response,0,cbSize+2); + response = (struct hllapi_packet_text *) buffer; - if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, &response, cbSize, &cbSize,NULL)) + if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, response, cbSize, &cbSize,NULL)) { - if(response->packet_id) + buffer[cbSize] = 0; + if(!response->packet_id) s.assign(response->text); } - - free(response); + else + { + trace("TransactNamedPipe error on call %d",(int) *( (unsigned char *) query)); + s.assign(""); + } return s; } @@ -402,8 +406,6 @@ char * str; char * ptr; time_t timer; - WIN32_FIND_DATA FindFileData; - hPipe = INVALID_HANDLE_VALUE; @@ -484,6 +486,22 @@ free(str); + trace("Searching for \"%s\"",buffer); + + hPipe = CreateFile(buffer,GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); + + if(hPipe == INVALID_HANDLE_VALUE) + { + timer = time(0)+20; + while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer) + { + hPipe = CreateFile(buffer,GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); + Sleep(10); + } + } + /* + WIN32_FIND_DATA FindFileData; + timer = time(0)+20; while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer) { @@ -501,6 +519,7 @@ throw exception(GetLastError(),"Timeout waiting for %s instance",PACKAGE_NAME); return; } + */ if(hPipe == INVALID_HANDLE_VALUE) { @@ -762,8 +781,8 @@ while(time(0) < end) { - if(!is_connected()) - return ENOTCONN; + //if(!is_connected()) + // return ENOTCONN; if(is_ready()) return 0; diff --git a/src/classlib/testprogram.cc b/src/classlib/testprogram.cc index a4e4867..29b0ed2 100644 --- a/src/classlib/testprogram.cc +++ b/src/classlib/testprogram.cc @@ -61,6 +61,13 @@ cout << "\tHost charset: " << s.c_str() << endl; session->connect(false); + + cout << "\tWaitForReady: " << session->wait_for_ready(10) << endl; + + cout << "\tIsConnected: " << session->is_connected() << endl; + cout << "\tIsReady: " << session->is_ready() << endl; + cout << "\tString(3,2,14) " << session->get_string_at(3,2,14) << endl; + delete session; } diff --git a/src/plugins/hllapi/calls.cc b/src/plugins/hllapi/calls.cc index ca32527..3ce36fd 100644 --- a/src/plugins/hllapi/calls.cc +++ b/src/plugins/hllapi/calls.cc @@ -30,9 +30,7 @@ #include #include #include - - #undef trace - #define trace( fmt, ... ) { FILE *out = fopen("c:\\Users\\Perry\\hllapi.log","a"); if(out) { fprintf(out, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fclose(out); } } + #include "client.h" using namespace std; using namespace PW3270_NAMESPACE; @@ -52,9 +50,11 @@ if(hSession) delete hSession; hSession = session::create(mode); + trace("hSession=%p",hSession); } catch(std::exception &e) { + trace("Error \"%s\"",e.what()); return HLLAPI_STATUS_SYSTEM_ERROR; } diff --git a/src/plugins/hllapi/client.h b/src/plugins/hllapi/client.h index fd6f599..af57aad 100644 --- a/src/plugins/hllapi/client.h +++ b/src/plugins/hllapi/client.h @@ -38,6 +38,11 @@ #define set_active(x) /* x */ + #if defined(DEBUG) && defined(_WIN32) + #undef trace + #define trace( fmt, ... ) { FILE *out = fopen("c:\\Users\\Perry\\hllapi.log","a"); if(out) { fprintf(out, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fclose(out); } } + #endif // DEBUG + void * hllapi_pipe_init(const char *id); void hllapi_pipe_deinit(void *h); const char * hllapi_pipe_get_revision(void); diff --git a/src/plugins/hllapi/hllapi.c b/src/plugins/hllapi/hllapi.c index d04232b..b5e3cc2 100644 --- a/src/plugins/hllapi/hllapi.c +++ b/src/plugins/hllapi/hllapi.c @@ -98,9 +98,14 @@ for(f=0;f< (sizeof (hllapi_call) / sizeof ((hllapi_call)[0]));f++) { if(hllapi_call[f].func == *func) - return hllapi_call[f].exec(buffer,length,rc); + { + int status = hllapi_call[f].exec(buffer,length,rc); + trace("hllapi(%d) exits with rc=%d",*func,status); + return status; + } } + trace("hllapi(%d) failed",*func); return invalid_request(buffer, length, rc); } diff --git a/src/plugins/hllapi/pluginmain.c b/src/plugins/hllapi/pluginmain.c index f4afe9e..a5e6d54 100644 --- a/src/plugins/hllapi/pluginmain.c +++ b/src/plugins/hllapi/pluginmain.c @@ -160,6 +160,12 @@ pkt->packet_id = errno ? errno : -1; } + trace("szBlock=%d text=\"%s\"",szBlock, ( (struct hllapi_packet_text *) pkt)->text); + for(int f=0;f< (int) szBlock;f++) + { + trace("rsp(%d)= %d \"%s\"",f,* (((char *) pkt)+f),((char *) pkt)+f); + } + WriteFile(source->hPipe,pkt,szBlock,&szBlock,NULL); g_free(pkt); @@ -352,6 +358,7 @@ break; case HLLAPI_PACKET_GET_HOST_CHARSET: + trace("%s","HLLAPI_PACKET_GET_HOST_CHARSET"); send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle())); break; diff --git a/src/plugins/rx3270/Makefile.in b/src/plugins/rx3270/Makefile.in index d1b54a2..c706f26 100644 --- a/src/plugins/rx3270/Makefile.in +++ b/src/plugins/rx3270/Makefile.in @@ -47,6 +47,7 @@ LIBS=@REXX_LIBS@ @LIBICONV@ @DBUS_LIBS@ CFLAGS=@REXX_CFLAGS@ @DBUS_CFLAGS@ REXX_HOME=@REXX_HOME@ REXXLIBDIR=@REXX_LIBDIR@ +SYSDLL_FLAGS=@SYSDLL_FLAGS@ #---[ Debug Targets ]---------------------------------------------------------- @@ -58,7 +59,7 @@ $(BINDBG)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$( $(BINDBG)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) $(CLASS_DEBUG_OBJECTS) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(CXX) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) + @$(CXX) $(SYSDLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) #---[ Release Targets ]-------------------------------------------------------- @@ -70,7 +71,7 @@ $(BINRLS)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$( $(BINRLS)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) $(CLASS_RELEASE_OBJECTS) @echo " CCLD `basename $@`" @$(MKDIR) `dirname $@` - @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) + @$(CXX) $(SYSDLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) install: @$(MKDIR) $(DESTDIR)$(libdir)/$(PACKAGE_NAME)-plugin -- libgit2 0.21.2