Re: How to find out the Group of the Message, in which the Message was send.
"Claus Ebert" <[email protected]>
| Newsgroups | gmane.network.spread.user |
|---|---|
| Message-ID | <9131FFE309E76A46BD3A1EF2D4A2726A013D7596@ntlonexm01.pc.internal.macquarie.com> |
Sorry my fault. I've messed up two different char buffers Apologise for any inconvenience... Cheers Claus -----Original Message----- From: John Schultz [mailto:[email protected]] Sent: Montag, 8. November 2010 20:52 To: Claus Ebert Cc: [email protected] Subject: Re: [Spread-users] How to find out the Group of the Message, in which the Message was send. Quoting from http://www.spread.org/docs/spread_docs_4/docs/sp_receive.html If the service_type is a REG_MESSAGE (i.e. data message) then: The sender is a pointer to an array of characters of at least MAX_GROUP_NAME size. This will be set to the name of the sending connection (its private group name) ... The groups array holds upto max_groups group names, each of which is a string of at most MAX_GROUP_NAME characters. All of the groups which are receiving this message will be listed here, unless the array is too small and then as many as can fit will be listed and the num_groups value will be set to be negative. For example, if your groups array could store 5 group names, but a message for 7 groups arrived, the first five group names would appear in the groups array and num_groups would be set to -7. ... If This is a MEMB_MESSAGE (i.e. membership message) and it specifically is a REG_MEMB_MESS, then: The sender char array will be set to the name of the group for which the membership change is occurring ... The groups array and mess body are used to provide two kinds of membership information about the change that just occurred in this group. The num_groups field will be set to the number of members in the group in the new membership (i.e. after the change occurred). Correspondingly the groups array will be set to the private group names of all members of this group in the new membership. This list of names is always in the same order at all recipients and thus can be used to deterministically pick a group representative if one is needed by the application. The actual ordering has changed with different versions of Spread, but is currently ordered first by the daemon the member is connected to and then by their private name. The ordering of the daemons is the same as the order they are listed in the spread.conf file. ======================= You seem to be confusing the "sender" parameter (#2) with the "groups" parameter (#6) for various kinds of messages. Cheers! ----- John Lane Schultz Spread Concepts LLC Phn: 301 830 8100 Cell: 443 838 2200 On Nov 8, 2010, at 2:10 PM, Claus Ebert wrote: Hi, Thanks for your response. Unfortunately, the groups parameter #6 of SP_receive get's the Group name only on a REG_MEMB_MESS messages. When sending a AGREED_MESS REGULAR_MESS this list is filled with the Private_name used in SP_connect (#2) and the segment name as defined in the Config-file (e.G: privateName#segmentName) and not the Group-Name. I logged the output of the spuer prog... On the bottom in the line ----received AGREED message from #13864#xts01, of type 123, (endian 0) to 1 groups You see the private_name and the segment, but not the group I joined .... Thanks Claus ------- spuser log ------------------------------------------------ $ ./spuser Spread library version is 4.1.0 User: connected to 4803@localhost with private group #user#xts02 ========== User Menu: ---------- j <group> -- join a group l <group> -- leave a group s <group> -- send a message m <group> -- send a multiline message to group. Terminate with empty line b <group> -- send a burst of messages r -- receive a message (stuck) p -- poll for a message e -- enable asynchonous read (default) d -- disable asynchronous read q -- quit User> j TestGroup User> ============================ Received REGULAR membership for group TestGroup with 2 members, where I am member 1: #13864#xts01 #user#xts02 grp id is -1408177919 1289242281 4 Due to the JOIN of #user#xts02 User> ============================ received AGREED message from #13864#xts01, of type 123, (endian 0) to 1 groups (106 bytes): Message - 012345678901234567890123456789012345678901234567890123456789012345678901 23456789012345678901234 User> -----Original Message----- From: John Schultz [mailto:[email protected]] Sent: Montag, 8. November 2010 16:47 To: Claus Ebert Cc: [email protected] Subject: Re: [Spread-users] How to find out the Group of the Message, in which the Message was send. http://www.spread.org/docs/spread_docs_4/docs/c_api.html http://www.spread.org/docs/spread_docs_4/docs/sp_receive.html The answer is in the groups parameter (#6). Cheers! ----- John Lane Schultz Spread Concepts LLC Phn: 301 830 8100 Cell: 443 838 2200 On Nov 8, 2010, at 4:29 AM, Claus Ebert wrote: Hi all, I'm currently looking for a way to get the sending group of a message ( using the SP_receive function ). .. i'm NOT looking for the sender .. i'm keen on getting the group to which the massage uas sent (SP_multicast, param no 3 ) e.G: sender (s1#spread) receiver(r1#spread) ------------------------------------------------- connect to spread joins group G1 connect to spread joins group G1 sends message receives message but "group" is s1#spread and NOT G1 sorry, if the question was already answered in the archive, but due to proxy restrictions, i'm not able to access the mail archive page. thanks Claus _______________________________________________ Spread-users mailing list [email protected] http://lists.spread.org/mailman/listinfo/spread-users