Commit 40d2d527e5671069fe97f776650ff9ac716bb3f1

Authored by perry.werneck@gmail.com
1 parent 3712cc3b

Corrigindo chamadas IPC no windows

@@ -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