Commit 40d2d527e5671069fe97f776650ff9ac716bb3f1

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

Corrigindo chamadas IPC no windows

po/pt_BR.po
... ... @@ -5,7 +5,7 @@ msgid ""
5 5 msgstr ""
6 6 "Project-Id-Version: pw3270 5.0\n"
7 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 9 "PO-Revision-Date: 2014-02-17 08:05-0300\n"
10 10 "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n"
11 11 "Language-Team: Portugues <>\n"
... ...
src/classlib/Makefile.in
... ... @@ -61,6 +61,8 @@ LIBS=@LIBS@ $(CLASS_LIBS)
61 61  
62 62 DEBUG_CFLAGS=-DDEBUG=1 -g -Wall
63 63  
  64 +EXEEXT=@EXEEXT@
  65 +
64 66 #---[ Rules ]------------------------------------------------------------------
65 67  
66 68 CXX=@CXX@
... ... @@ -103,7 +105,7 @@ run: $(BINDBG)/testprogram$(EXEEXT)
103 105 $(BINDBG)/testprogram$(EXEEXT): $(OBJDBG)/testprogram.o $(BINDBG)/$(LIBNAME)
104 106 @echo " CCLD `basename $@`"
105 107 @$(MKDIR) `dirname $@`
106   - @$(LD) -o $@ $^ $(LIBS)
  108 + @$(LD) -o $@ $^
107 109  
108 110 $(BINDBG)/$(LIBNAME): $(foreach SRC, $(basename $(CLASS_SRC)), $(OBJDBG)/$(SRC).o)
109 111 @echo " CCLD `basename $@`"
... ...
src/classlib/remote.cc
... ... @@ -134,17 +134,21 @@
134 134 struct hllapi_packet_text * response;
135 135 DWORD cbSize = sizeof(struct hllapi_packet_text)+len;
136 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 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 153 return s;
150 154 }
... ... @@ -402,8 +406,6 @@
402 406 char * str;
403 407 char * ptr;
404 408 time_t timer;
405   - WIN32_FIND_DATA FindFileData;
406   -
407 409  
408 410 hPipe = INVALID_HANDLE_VALUE;
409 411  
... ... @@ -484,6 +486,22 @@
484 486  
485 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 505 timer = time(0)+20;
488 506 while(hPipe == INVALID_HANDLE_VALUE && time(0) < timer)
489 507 {
... ... @@ -501,6 +519,7 @@
501 519 throw exception(GetLastError(),"Timeout waiting for %s instance",PACKAGE_NAME);
502 520 return;
503 521 }
  522 + */
504 523  
505 524 if(hPipe == INVALID_HANDLE_VALUE)
506 525 {
... ... @@ -762,8 +781,8 @@
762 781  
763 782 while(time(0) < end)
764 783 {
765   - if(!is_connected())
766   - return ENOTCONN;
  784 + //if(!is_connected())
  785 + // return ENOTCONN;
767 786  
768 787 if(is_ready())
769 788 return 0;
... ...
src/classlib/testprogram.cc
... ... @@ -61,6 +61,13 @@
61 61 cout << "\tHost charset: " << s.c_str() << endl;
62 62  
63 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 71 delete session;
65 72 }
66 73  
... ...
src/plugins/hllapi/calls.cc
... ... @@ -30,9 +30,7 @@
30 30 #include <exception>
31 31 #include <pw3270/class.h>
32 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 35 using namespace std;
38 36 using namespace PW3270_NAMESPACE;
... ... @@ -52,9 +50,11 @@
52 50 if(hSession)
53 51 delete hSession;
54 52 hSession = session::create(mode);
  53 + trace("hSession=%p",hSession);
55 54 }
56 55 catch(std::exception &e)
57 56 {
  57 + trace("Error \"%s\"",e.what());
58 58 return HLLAPI_STATUS_SYSTEM_ERROR;
59 59 }
60 60  
... ...
src/plugins/hllapi/client.h
... ... @@ -38,6 +38,11 @@
38 38  
39 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 46 void * hllapi_pipe_init(const char *id);
42 47 void hllapi_pipe_deinit(void *h);
43 48 const char * hllapi_pipe_get_revision(void);
... ...
src/plugins/hllapi/hllapi.c
... ... @@ -98,9 +98,14 @@
98 98 for(f=0;f< (sizeof (hllapi_call) / sizeof ((hllapi_call)[0]));f++)
99 99 {
100 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 109 return invalid_request(buffer, length, rc);
105 110 }
106 111  
... ...
src/plugins/hllapi/pluginmain.c
... ... @@ -160,6 +160,12 @@
160 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 169 WriteFile(source->hPipe,pkt,szBlock,&szBlock,NULL);
164 170  
165 171 g_free(pkt);
... ... @@ -352,6 +358,7 @@
352 358 break;
353 359  
354 360 case HLLAPI_PACKET_GET_HOST_CHARSET:
  361 + trace("%s","HLLAPI_PACKET_GET_HOST_CHARSET");
355 362 send_text(source,(char *) lib3270_get_host_charset(lib3270_get_default_session_handle()));
356 363 break;
357 364  
... ...
src/plugins/rx3270/Makefile.in
... ... @@ -47,6 +47,7 @@ LIBS=@REXX_LIBS@ @LIBICONV@ @DBUS_LIBS@
47 47 CFLAGS=@REXX_CFLAGS@ @DBUS_CFLAGS@
48 48 REXX_HOME=@REXX_HOME@
49 49 REXXLIBDIR=@REXX_LIBDIR@
  50 +SYSDLL_FLAGS=@SYSDLL_FLAGS@
50 51  
51 52 #---[ Debug Targets ]----------------------------------------------------------
52 53  
... ... @@ -58,7 +59,7 @@ $(BINDBG)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJDBG)/$(
58 59 $(BINDBG)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJDBG)/$(SRC)@OBJEXT@) $(CLASS_DEBUG_OBJECTS)
59 60 @echo " CCLD `basename $@`"
60 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 64 #---[ Release Targets ]--------------------------------------------------------
64 65  
... ... @@ -70,7 +71,7 @@ $(BINRLS)/$(PLUGIN_NAME): $(foreach SRC, $(basename $(PLUGIN_SRC)), $(OBJRLS)/$(
70 71 $(BINRLS)$(DLL_NAME).$(VERSION): $(foreach SRC, $(basename $(EXTAPI_SRC)), $(OBJRLS)/$(SRC).o) $(CLASS_RELEASE_OBJECTS)
71 72 @echo " CCLD `basename $@`"
72 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 76 install:
76 77 @$(MKDIR) $(DESTDIR)$(libdir)/$(PACKAGE_NAME)-plugin
... ...