Commit 40d2d527e5671069fe97f776650ff9ac716bb3f1
1 parent
3712cc3b
Exists in
master
and in
5 other branches
Corrigindo chamadas IPC no windows
Showing
9 changed files
with
64 additions
and
18 deletions
Show diff stats
po/pt_BR.po
| @@ -5,7 +5,7 @@ msgid "" | @@ -5,7 +5,7 @@ msgid "" | ||
| 5 | msgstr "" | 5 | msgstr "" |
| 6 | "Project-Id-Version: pw3270 5.0\n" | 6 | "Project-Id-Version: pw3270 5.0\n" |
| 7 | "Report-Msgid-Bugs-To: \n" | 7 | "Report-Msgid-Bugs-To: \n" |
| 8 | -"POT-Creation-Date: 2014-04-15 15:34-0300\n" | 8 | +"POT-Creation-Date: 2014-04-16 07:31-0300\n" |
| 9 | "PO-Revision-Date: 2014-02-17 08:05-0300\n" | 9 | "PO-Revision-Date: 2014-02-17 08:05-0300\n" |
| 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
| 11 | "Language-Team: Portugues <>\n" | 11 | "Language-Team: Portugues <>\n" |
src/classlib/Makefile.in
| @@ -61,6 +61,8 @@ LIBS=@LIBS@ $(CLASS_LIBS) | @@ -61,6 +61,8 @@ LIBS=@LIBS@ $(CLASS_LIBS) | ||
| 61 | 61 | ||
| 62 | DEBUG_CFLAGS=-DDEBUG=1 -g -Wall | 62 | DEBUG_CFLAGS=-DDEBUG=1 -g -Wall |
| 63 | 63 | ||
| 64 | +EXEEXT=@EXEEXT@ | ||
| 65 | + | ||
| 64 | #---[ Rules ]------------------------------------------------------------------ | 66 | #---[ Rules ]------------------------------------------------------------------ |
| 65 | 67 | ||
| 66 | CXX=@CXX@ | 68 | CXX=@CXX@ |
| @@ -103,7 +105,7 @@ run: $(BINDBG)/testprogram$(EXEEXT) | @@ -103,7 +105,7 @@ run: $(BINDBG)/testprogram$(EXEEXT) | ||
| 103 | $(BINDBG)/testprogram$(EXEEXT): $(OBJDBG)/testprogram.o $(BINDBG)/$(LIBNAME) | 105 | $(BINDBG)/testprogram$(EXEEXT): $(OBJDBG)/testprogram.o $(BINDBG)/$(LIBNAME) |
| 104 | @echo " CCLD `basename $@`" | 106 | @echo " CCLD `basename $@`" |
| 105 | @$(MKDIR) `dirname $@` | 107 | @$(MKDIR) `dirname $@` |
| 106 | - @$(LD) -o $@ $^ $(LIBS) | 108 | + @$(LD) -o $@ $^ |
| 107 | 109 | ||
| 108 | $(BINDBG)/$(LIBNAME): $(foreach SRC, $(basename $(CLASS_SRC)), $(OBJDBG)/$(SRC).o) | 110 | $(BINDBG)/$(LIBNAME): $(foreach SRC, $(basename $(CLASS_SRC)), $(OBJDBG)/$(SRC).o) |
| 109 | @echo " CCLD `basename $@`" | 111 | @echo " CCLD `basename $@`" |
src/classlib/remote.cc
| @@ -134,17 +134,21 @@ | @@ -134,17 +134,21 @@ | ||
| 134 | struct hllapi_packet_text * response; | 134 | struct hllapi_packet_text * response; |
| 135 | DWORD cbSize = sizeof(struct hllapi_packet_text)+len; | 135 | DWORD cbSize = sizeof(struct hllapi_packet_text)+len; |
| 136 | string s; | 136 | string s; |
| 137 | + char buffer[cbSize+2]; | ||
| 137 | 138 | ||
| 138 | - response = (struct hllapi_packet_text *) malloc(cbSize+2); | ||
| 139 | - memset(response,0,cbSize+2); | 139 | + response = (struct hllapi_packet_text *) buffer; |
| 140 | 140 | ||
| 141 | - if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, &response, cbSize, &cbSize,NULL)) | 141 | + if(TransactNamedPipe(hPipe,(LPVOID) query, szQuery, response, cbSize, &cbSize,NULL)) |
| 142 | { | 142 | { |
| 143 | - if(response->packet_id) | 143 | + buffer[cbSize] = 0; |
| 144 | + if(!response->packet_id) | ||
| 144 | s.assign(response->text); | 145 | s.assign(response->text); |
| 145 | } | 146 | } |
| 146 | - | ||
| 147 | - free(response); | 147 | + else |
| 148 | + { | ||
| 149 | + trace("TransactNamedPipe error on call %d",(int) *( (unsigned char *) query)); | ||
| 150 | + s.assign(""); | ||
| 151 | + } | ||
| 148 | 152 | ||
| 149 | return s; | 153 | return s; |
| 150 | } | 154 | } |
| @@ -402,8 +406,6 @@ | @@ -402,8 +406,6 @@ | ||
| 402 | char * str; | 406 | char * str; |
| 403 | char * ptr; | 407 | char * ptr; |
| 404 | time_t timer; | 408 | time_t timer; |
| 405 | - WIN32_FIND_DATA FindFileData; | ||
| 406 | - | ||
| 407 | 409 | ||
| 408 | hPipe = INVALID_HANDLE_VALUE; | 410 | hPipe = INVALID_HANDLE_VALUE; |
| 409 | 411 | ||
| @@ -484,6 +486,22 @@ | @@ -484,6 +486,22 @@ | ||
| 484 | 486 | ||
| 485 | free(str); | 487 | free(str); |
| 486 | 488 | ||
| 489 | + trace("Searching for \"%s\"",buffer); | ||
| 490 | + | ||
| 491 | + hPipe = CreateFile(buffer,GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); | ||
| 492 | + | ||
| 493 | + if(hPipe == INVALID_HANDLE_VALUE) | ||
| 494 | + { | ||
| 495 | + timer = time(0)+20; | ||
| 496 | + while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer) | ||
| 497 | + { | ||
| 498 | + hPipe = CreateFile(buffer,GENERIC_WRITE|GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); | ||
| 499 | + Sleep(10); | ||
| 500 | + } | ||
| 501 | + } | ||
| 502 | + /* | ||
| 503 | + WIN32_FIND_DATA FindFileData; | ||
| 504 | + | ||
| 487 | timer = time(0)+20; | 505 | timer = time(0)+20; |
| 488 | while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer) | 506 | while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer) |
| 489 | { | 507 | { |
| @@ -501,6 +519,7 @@ | @@ -501,6 +519,7 @@ | ||
| 501 | throw exception(GetLastError(),"Timeout waiting for %s instance",PACKAGE_NAME); | 519 | throw exception(GetLastError(),"Timeout waiting for %s instance",PACKAGE_NAME); |
| 502 | return; | 520 | return; |
| 503 | } | 521 | } |
| 522 | + */ | ||
| 504 | 523 | ||
| 505 | if(hPipe == INVALID_HANDLE_VALUE) | 524 | if(hPipe == INVALID_HANDLE_VALUE) |
| 506 | { | 525 | { |
| @@ -762,8 +781,8 @@ | @@ -762,8 +781,8 @@ | ||
| 762 | 781 | ||
| 763 | while(time(0) < end) | 782 | while(time(0) < end) |
| 764 | { | 783 | { |
| 765 | - if(!is_connected()) | ||
| 766 | - return ENOTCONN; | 784 | + //if(!is_connected()) |
| 785 | + // return ENOTCONN; | ||
| 767 | 786 | ||
| 768 | if(is_ready()) | 787 | if(is_ready()) |
| 769 | return 0; | 788 | return 0; |
src/classlib/testprogram.cc
| @@ -61,6 +61,13 @@ | @@ -61,6 +61,13 @@ | ||
| 61 | cout << "\tHost charset: " << s.c_str() << endl; | 61 | cout << "\tHost charset: " << s.c_str() << endl; |
| 62 | 62 | ||
| 63 | session->connect(false); | 63 | session->connect(false); |
| 64 | + | ||
| 65 | + cout << "\tWaitForReady: " << session->wait_for_ready(10) << endl; | ||
| 66 | + | ||
| 67 | + cout << "\tIsConnected: " << session->is_connected() << endl; | ||
| 68 | + cout << "\tIsReady: " << session->is_ready() << endl; | ||
| 69 | + cout << "\tString(3,2,14) " << session->get_string_at(3,2,14) << endl; | ||
| 70 | + | ||
| 64 | delete session; | 71 | delete session; |
| 65 | } | 72 | } |
| 66 | 73 |
src/plugins/hllapi/calls.cc
| @@ -30,9 +30,7 @@ | @@ -30,9 +30,7 @@ | ||
| 30 | #include <exception> | 30 | #include <exception> |
| 31 | #include <pw3270/class.h> | 31 | #include <pw3270/class.h> |
| 32 | #include <pw3270/hllapi.h> | 32 | #include <pw3270/hllapi.h> |
| 33 | - | ||
| 34 | - #undef trace | ||
| 35 | - #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); } } | 33 | + #include "client.h" |
| 36 | 34 | ||
| 37 | using namespace std; | 35 | using namespace std; |
| 38 | using namespace PW3270_NAMESPACE; | 36 | using namespace PW3270_NAMESPACE; |
| @@ -52,9 +50,11 @@ | @@ -52,9 +50,11 @@ | ||
| 52 | if(hSession) | 50 | if(hSession) |
| 53 | delete hSession; | 51 | delete hSession; |
| 54 | hSession = session::create(mode); | 52 | hSession = session::create(mode); |
| 53 | + trace("hSession=%p",hSession); | ||
| 55 | } | 54 | } |
| 56 | catch(std::exception &e) | 55 | catch(std::exception &e) |
| 57 | { | 56 | { |
| 57 | + trace("Error \"%s\"",e.what()); | ||
| 58 | return HLLAPI_STATUS_SYSTEM_ERROR; | 58 | return HLLAPI_STATUS_SYSTEM_ERROR; |
| 59 | } | 59 | } |
| 60 | 60 |
src/plugins/hllapi/client.h
| @@ -38,6 +38,11 @@ | @@ -38,6 +38,11 @@ | ||
| 38 | 38 | ||
| 39 | #define set_active(x) /* x */ | 39 | #define set_active(x) /* x */ |
| 40 | 40 | ||
| 41 | + #if defined(DEBUG) && defined(_WIN32) | ||
| 42 | + #undef trace | ||
| 43 | + #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); } } | ||
| 44 | + #endif // DEBUG | ||
| 45 | + | ||
| 41 | void * hllapi_pipe_init(const char *id); | 46 | void * hllapi_pipe_init(const char *id); |
| 42 | void hllapi_pipe_deinit(void *h); | 47 | void hllapi_pipe_deinit(void *h); |
| 43 | const char * hllapi_pipe_get_revision(void); | 48 | const char * hllapi_pipe_get_revision(void); |
src/plugins/hllapi/hllapi.c
| @@ -98,9 +98,14 @@ | @@ -98,9 +98,14 @@ | ||
| 98 | for(f=0;f< (sizeof (hllapi_call) / sizeof ((hllapi_call)[0]));f++) | 98 | for(f=0;f< (sizeof (hllapi_call) / sizeof ((hllapi_call)[0]));f++) |
| 99 | { | 99 | { |
| 100 | if(hllapi_call[f].func == *func) | 100 | if(hllapi_call[f].func == *func) |
| 101 | - return hllapi_call[f].exec(buffer,length,rc); | 101 | + { |
| 102 | + int status = hllapi_call[f].exec(buffer,length,rc); | ||
| 103 | + trace("hllapi(%d) exits with rc=%d",*func,status); | ||
| 104 | + return status; | ||
| 105 | + } | ||
| 102 | } | 106 | } |
| 103 | 107 | ||
| 108 | + trace("hllapi(%d) failed",*func); | ||
| 104 | return invalid_request(buffer, length, rc); | 109 | return invalid_request(buffer, length, rc); |
| 105 | } | 110 | } |
| 106 | 111 |
src/plugins/hllapi/pluginmain.c
| @@ -160,6 +160,12 @@ | @@ -160,6 +160,12 @@ | ||
| 160 | pkt->packet_id = errno ? errno : -1; | 160 | pkt->packet_id = errno ? errno : -1; |
| 161 | } | 161 | } |
| 162 | 162 | ||
| 163 | + trace("szBlock=%d text=\"%s\"",szBlock, ( (struct hllapi_packet_text *) pkt)->text); | ||
| 164 | + for(int f=0;f< (int) szBlock;f++) | ||
| 165 | + { | ||
| 166 | + trace("rsp(%d)= %d \"%s\"",f,* (((char *) pkt)+f),((char *) pkt)+f); | ||
| 167 | + } | ||
| 168 | + | ||
| 163 | WriteFile(source->hPipe,pkt,szBlock,&szBlock,NULL); | 169 | WriteFile(source->hPipe,pkt,szBlock,&szBlock,NULL); |
| 164 | 170 | ||
| 165 | g_free(pkt); | 171 | g_free(pkt); |
| @@ -352,6 +358,7 @@ | @@ -352,6 +358,7 @@ | ||
| 352 | break; | 358 | break; |
| 353 | 359 | ||
| 354 | case HLLAPI_PACKET_GET_HOST_CHARSET: | 360 | case HLLAPI_PACKET_GET_HOST_CHARSET: |
| 361 | + trace("%s","HLLAPI_PACKET_GET_HOST_CHARSET"); | ||
| 355 | send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle())); | 362 | send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle())); |
| 356 | break; | 363 | break; |
| 357 | 364 |
src/plugins/rx3270/Makefile.in
| @@ -47,6 +47,7 @@ LIBS=@REXX_LIBS@ @LIBICONV@ @DBUS_LIBS@ | @@ -47,6 +47,7 @@ LIBS=@REXX_LIBS@ @LIBICONV@ @DBUS_LIBS@ | ||
| 47 | CFLAGS=@REXX_CFLAGS@ @DBUS_CFLAGS@ | 47 | CFLAGS=@REXX_CFLAGS@ @DBUS_CFLAGS@ |
| 48 | REXX_HOME=@REXX_HOME@ | 48 | REXX_HOME=@REXX_HOME@ |
| 49 | REXXLIBDIR=@REXX_LIBDIR@ | 49 | REXXLIBDIR=@REXX_LIBDIR@ |
| 50 | +SYSDLL_FLAGS=@SYSDLL_FLAGS@ | ||
| 50 | 51 | ||
| 51 | #---[ Debug Targets ]---------------------------------------------------------- | 52 | #---[ Debug Targets ]---------------------------------------------------------- |
| 52 | 53 | ||
| @@ -58,7 +59,7 @@ $(BINDBG)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$( | @@ -58,7 +59,7 @@ $(BINDBG)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$( | ||
| 58 | $(BINDBG)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) $(CLASS_DEBUG_OBJECTS) | 59 | $(BINDBG)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) $(CLASS_DEBUG_OBJECTS) |
| 59 | @echo " CCLD `basename $@`" | 60 | @echo " CCLD `basename $@`" |
| 60 | @$(MKDIR) `dirname $@` | 61 | @$(MKDIR) `dirname $@` |
| 61 | - @$(CXX) $(DLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) | 62 | + @$(CXX) $(SYSDLL_FLAGS) $(LDFLAGS) @LDSOFLAGS@ @DBGRPATH@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) |
| 62 | 63 | ||
| 63 | #---[ Release Targets ]-------------------------------------------------------- | 64 | #---[ Release Targets ]-------------------------------------------------------- |
| 64 | 65 | ||
| @@ -70,7 +71,7 @@ $(BINRLS)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$( | @@ -70,7 +71,7 @@ $(BINRLS)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$( | ||
| 70 | $(BINRLS)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) $(CLASS_RELEASE_OBJECTS) | 71 | $(BINRLS)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) $(CLASS_RELEASE_OBJECTS) |
| 71 | @echo " CCLD `basename $@`" | 72 | @echo " CCLD `basename $@`" |
| 72 | @$(MKDIR) `dirname $@` | 73 | @$(MKDIR) `dirname $@` |
| 73 | - @$(CXX) $(DLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) | 74 | + @$(CXX) $(SYSDLL_FLAGS) @LDSOFLAGS@ $(LDFLAGS) @RLS_LDFLAGS@ -o $@ $^ $(LIBS) $(LIB3270_LIBS) $(CLASS_LIBS) |
| 74 | 75 | ||
| 75 | install: | 76 | install: |
| 76 | @$(MKDIR) $(DESTDIR)$(libdir)/$(PACKAGE_NAME)-plugin | 77 | @$(MKDIR) $(DESTDIR)$(libdir)/$(PACKAGE_NAME)-plugin |