Commit 2b93263e9931d71cec1349876494afba57cc70fa
1 parent
898cea22
Exists in
master
and in
5 other branches
Ajustando módulo de acesso IPC.
Showing
3 changed files
with
66 additions
and
14 deletions
Show diff stats
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; |