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 | 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; | ... | ... |