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 50  
51 51 MKDIR=@MKDIR_P@
52 52 CC=@CXX@
  53 +LD=@CXX@
53 54 AR=@AR@
54 55 XGETTEXT=@XGETTEXT@
55 56 MSGCAT=@MSGCAT@
56 57 INSTALL=@INSTALL@
  58 +VALGRIND=@VALGRIND@
57 59 INSTALL_DATA=@INSTALL_DATA@
58 60 INSTALL_PROGRAM=@INSTALL_PROGRAM@
59 61  
60 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 65 #---[ Rules ]----------------------------------------------------------------------------
63 66  
... ... @@ -71,7 +74,7 @@ $(OBJDBG)/%.o: \
71 74 @$(MKDIR) `dirname $@`
72 75 @$(CC) $(CFLAGS) \
73 76 @DBG_CFLAGS@ \
74   - -DBUILD_DATE=`date +"0x%Y%m%d"`\
  77 + -DBUILD_DATE=`date +"%Y%m%d"`\
75 78 -o $@ -c $<
76 79  
77 80 $(OBJRLS)/%.o: \
... ... @@ -82,7 +85,7 @@ $(OBJRLS)/%.o: \
82 85 @$(MKDIR) `dirname $@`
83 86 @$(CC) $(CFLAGS) \
84 87 @RLS_CFLAGS@ \
85   - -DBUILD_DATE=`date +"0x%Y%m%d"` \
  88 + -DBUILD_DATE=`date +"%Y%m%d"` \
86 89 -o $@ -c $<
87 90  
88 91 $(POTDIR)/%.pot: %.c
... ... @@ -154,6 +157,28 @@ $(BASEDIR)/.obj/Debug/$(MODULE_NAME).a: \
154 157 @$(MKDIR) `dirname $@`
155 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 182 #---[ Clean Targets]---------------------------------------------------------------------
158 183  
159 184 cleanDebug:
... ...
src/libpw3270cpp/remote.cc
... ... @@ -411,8 +411,33 @@
411 411 public:
412 412  
413 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 441 size_t bytes = strlen(buffer);
417 442 char * ptr = buffer;
418 443 int val;
... ... @@ -442,9 +467,10 @@
442 467 // And last, the project info
443 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 476 #endif // HAVE_DBUS
... ... @@ -608,7 +634,7 @@
608 634 int rc;
609 635 char * str = strdup(session);
610 636 char * ptr;
611   - char busname[4096];
  637 + string busName;
612 638  
613 639 this->sequence = (++sq) + time(0);
614 640  
... ... @@ -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 726 if (dbus_error_is_set(&err))
701 727 {
... ... @@ -707,12 +733,12 @@
707 733  
708 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 737 throw exception("DBUS request for \"%s\" failed",session);
712 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 743 const char * id = "r";
718 744 static const dbus_int32_t flag = 1;
... ... @@ -746,8 +772,8 @@
746 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 778 free(dest);
753 779 free(path);
... ... @@ -756,7 +782,7 @@
756 782 DBusError err;
757 783  
758 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 787 if (dbus_error_is_set(&err))
762 788 {
... ...
src/libpw3270cpp/testprogram.cc
... ... @@ -41,7 +41,8 @@
41 41  
42 42 {
43 43 string s;
44   - session *session = session::start("");
  44 + session *session = session::start("pw3270:a");
  45 + // session *session = session::start("");
45 46 // session *session = session::start("new");
46 47  
47 48 cout << "pw3270 version: " << session->get_version() << endl;
... ...