Commit 2b93263e9931d71cec1349876494afba57cc70fa

Authored by Perry Werneck
1 parent 898cea22

Ajustando módulo de acesso IPC.

src/libpw3270cpp/Makefile.in
@@ -50,14 +50,17 @@ OBJRLS=$(OBJDIR)/Release @@ -50,14 +50,17 @@ OBJRLS=$(OBJDIR)/Release
50 50
51 MKDIR=@MKDIR_P@ 51 MKDIR=@MKDIR_P@
52 CC=@CXX@ 52 CC=@CXX@
  53 +LD=@CXX@
53 AR=@AR@ 54 AR=@AR@
54 XGETTEXT=@XGETTEXT@ 55 XGETTEXT=@XGETTEXT@
55 MSGCAT=@MSGCAT@ 56 MSGCAT=@MSGCAT@
56 INSTALL=@INSTALL@ 57 INSTALL=@INSTALL@
  58 +VALGRIND=@VALGRIND@
57 INSTALL_DATA=@INSTALL_DATA@ 59 INSTALL_DATA=@INSTALL_DATA@
58 INSTALL_PROGRAM=@INSTALL_PROGRAM@ 60 INSTALL_PROGRAM=@INSTALL_PROGRAM@
59 61
60 CFLAGS=@CFLAGS@ @LIB3270_CFLAGS@ @DBUS_CFLAGS@ -Wno-deprecated-declarations @GTK_CFLAGS@ -I$(BASEDIR)/src/include/pw3270 62 CFLAGS=@CFLAGS@ @LIB3270_CFLAGS@ @DBUS_CFLAGS@ -Wno-deprecated-declarations @GTK_CFLAGS@ -I$(BASEDIR)/src/include/pw3270
  63 +LIBS=@LIBS@ @DBUS_LIBS@
61 64
62 #---[ Rules ]---------------------------------------------------------------------------- 65 #---[ Rules ]----------------------------------------------------------------------------
63 66
@@ -71,7 +74,7 @@ $(OBJDBG)/%.o: \ @@ -71,7 +74,7 @@ $(OBJDBG)/%.o: \
71 @$(MKDIR) `dirname $@` 74 @$(MKDIR) `dirname $@`
72 @$(CC) $(CFLAGS) \ 75 @$(CC) $(CFLAGS) \
73 @DBG_CFLAGS@ \ 76 @DBG_CFLAGS@ \
74 - -DBUILD_DATE=`date +"0x%Y%m%d"`\ 77 + -DBUILD_DATE=`date +"%Y%m%d"`\
75 -o $@ -c $< 78 -o $@ -c $<
76 79
77 $(OBJRLS)/%.o: \ 80 $(OBJRLS)/%.o: \
@@ -82,7 +85,7 @@ $(OBJRLS)/%.o: \ @@ -82,7 +85,7 @@ $(OBJRLS)/%.o: \
82 @$(MKDIR) `dirname $@` 85 @$(MKDIR) `dirname $@`
83 @$(CC) $(CFLAGS) \ 86 @$(CC) $(CFLAGS) \
84 @RLS_CFLAGS@ \ 87 @RLS_CFLAGS@ \
85 - -DBUILD_DATE=`date +"0x%Y%m%d"` \ 88 + -DBUILD_DATE=`date +"%Y%m%d"` \
86 -o $@ -c $< 89 -o $@ -c $<
87 90
88 $(POTDIR)/%.pot: %.c 91 $(POTDIR)/%.pot: %.c
@@ -154,6 +157,28 @@ $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a: \ @@ -154,6 +157,28 @@ $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a: \
154 @$(MKDIR) `dirname $@` 157 @$(MKDIR) `dirname $@`
155 @$(AR) rcs $@ $^ 158 @$(AR) rcs $@ $^
156 159
  160 +$(BASEDIR)/.obj/Debug/$(MODULE_NAME)@EXEEXT@: \
  161 + $(OBJDBG)/testprogram.o \
  162 + $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a
  163 +
  164 + @$(LD) $(APP_LDFLAGS) -o $@ $^ $(LIBS)
  165 +
  166 +run: \
  167 + $(BASEDIR)/.obj/Debug/$(MODULE_NAME)@EXEEXT@
  168 +
  169 +ifeq ($(VALGRIND),no)
  170 + $(BASEDIR)/.obj/Debug/$(MODULE_NAME)@EXEEXT@
  171 +else
  172 + @touch valgrind.suppression
  173 + @$(VALGRIND) \
  174 + --leak-check=full \
  175 + --track-origins=yes \
  176 + --gen-suppressions=all \
  177 + --suppressions=valgrind.suppression \
  178 + $(BASEDIR)/.obj/Debug/$(MODULE_NAME)@EXEEXT@
  179 +endif
  180 +
  181 +
157 #---[ Clean Targets]--------------------------------------------------------------------- 182 #---[ Clean Targets]---------------------------------------------------------------------
158 183
159 cleanDebug: 184 cleanDebug:
src/libpw3270cpp/remote.cc
@@ -411,8 +411,33 @@ @@ -411,8 +411,33 @@
411 public: 411 public:
412 412
413 #if defined(HAVE_DBUS) 413 #if defined(HAVE_DBUS)
414 - const char * makeBusName(char *buffer, size_t sz) 414 + const char * makeBusName(string &name)
415 { 415 {
  416 + int val;
  417 +
  418 + // First uses the object ID
  419 + val = this->sequence;
  420 + while(val > 0)
  421 + {
  422 + char str[] = { 'a'+(val % 25), 0 };
  423 + name.append(str);
  424 + val /= 25;
  425 + }
  426 + name.append(".");
  427 +
  428 + val = (int) getpid();
  429 + while(val > 0)
  430 + {
  431 + char str[] = { 'a'+(val % 25), 0 };
  432 + name.append(str);
  433 + val /= 25;
  434 + }
  435 + name.append(".");
  436 +
  437 + // And last, the project info
  438 + name.append(intf);
  439 +
  440 + /*
416 size_t bytes = strlen(buffer); 441 size_t bytes = strlen(buffer);
417 char * ptr = buffer; 442 char * ptr = buffer;
418 int val; 443 int val;
@@ -442,9 +467,10 @@ @@ -442,9 +467,10 @@
442 // And last, the project info 467 // And last, the project info
443 strncpy(ptr,intf,sz); 468 strncpy(ptr,intf,sz);
444 469
445 - trace("Busname=\"%s\" sequence=%d this=%p",buffer,sequence,this); 470 + */
  471 + trace("Busname=\"%s\" sequence=%d this=%p",name.c_str(),sequence,this);
446 472
447 - return buffer; 473 + return name.c_str();
448 474
449 } 475 }
450 #endif // HAVE_DBUS 476 #endif // HAVE_DBUS
@@ -608,7 +634,7 @@ @@ -608,7 +634,7 @@
608 int rc; 634 int rc;
609 char * str = strdup(session); 635 char * str = strdup(session);
610 char * ptr; 636 char * ptr;
611 - char busname[4096]; 637 + string busName;
612 638
613 this->sequence = (++sq) + time(0); 639 this->sequence = (++sq) + time(0);
614 640
@@ -694,8 +720,8 @@ @@ -694,8 +720,8 @@
694 } 720 }
695 721
696 722
697 - rc = dbus_bus_request_name(conn, makeBusName(busname,4095), DBUS_NAME_FLAG_REPLACE_EXISTING , &err);  
698 - trace("dbus_bus_request_name(%s) rc=%d",busname,rc); 723 + rc = dbus_bus_request_name(conn, makeBusName(busName), DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
  724 + trace("dbus_bus_request_name(%s) rc=%d",busName.c_str(),rc);
699 725
700 if (dbus_error_is_set(&err)) 726 if (dbus_error_is_set(&err))
701 { 727 {
@@ -707,12 +733,12 @@ @@ -707,12 +733,12 @@
707 733
708 if(rc != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) 734 if(rc != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER)
709 { 735 {
710 - trace("%s: DBUS request for name %s failed",__FUNCTION__, busname); 736 + trace("%s: DBUS request for name %s failed",__FUNCTION__, busName.c_str());
711 throw exception("DBUS request for \"%s\" failed",session); 737 throw exception("DBUS request for \"%s\" failed",session);
712 return; 738 return;
713 } 739 }
714 740
715 - trace("%s: Using DBUS name %s",__FUNCTION__,busname); 741 + trace("%s: Using DBUS name %s",__FUNCTION__,busName.c_str());
716 742
717 const char * id = "r"; 743 const char * id = "r";
718 static const dbus_int32_t flag = 1; 744 static const dbus_int32_t flag = 1;
@@ -746,8 +772,8 @@ @@ -746,8 +772,8 @@
746 std::cerr << e.what(); 772 std::cerr << e.what();
747 } 773 }
748 774
749 - char busname[4096];  
750 - makeBusName(busname,4096); 775 + string busName;
  776 + makeBusName(busName);
751 777
752 free(dest); 778 free(dest);
753 free(path); 779 free(path);
@@ -756,7 +782,7 @@ @@ -756,7 +782,7 @@
756 DBusError err; 782 DBusError err;
757 783
758 dbus_error_init(&err); 784 dbus_error_init(&err);
759 - dbus_bus_release_name(conn,busname,&err); 785 + dbus_bus_release_name(conn,busName.c_str(),&err);
760 786
761 if (dbus_error_is_set(&err)) 787 if (dbus_error_is_set(&err))
762 { 788 {
src/libpw3270cpp/testprogram.cc
@@ -41,7 +41,8 @@ @@ -41,7 +41,8 @@
41 41
42 { 42 {
43 string s; 43 string s;
44 - session *session = session::start(""); 44 + session *session = session::start("pw3270:a");
  45 + // session *session = session::start("");
45 // session *session = session::start("new"); 46 // session *session = session::start("new");
46 47
47 cout << "pw3270 version: " << session->get_version() << endl; 48 cout << "pw3270 version: " << session->get_version() << endl;