Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document ttl=0 behavior #348

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions c/include/proton/message.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,9 @@ PN_EXTERN pn_millis_t pn_message_get_ttl (pn_message_t *msg);
*
* See ::pn_message_get_ttl() for a detailed description of message ttl.
*
* The default ttl value for a new message is 0. If this value is 0, Proton
* will send no ttl message header.
*
Comment on lines +206 to +208
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this comment is in the wrong place and should explain what getting a 0 value would mean. 'default' is an ambiguous word here. I think what you are trying to say there (in pn_message_get_ttl) would be more like: ' A newly created message returns a ttl value of 0. This means that no ttl value is set in the message header.'

Here what I think you are saying is - 'If TTL is not set on a message then no ttl value is sent in the message header. Setting a ttl value of 0 has the same effect as not setting the ttl vaule.'

In any case if you want to properly explain the handling of ttl you need to fix the explananation in get because it is noted is the primary explanation.

* @param[in] msg a message object
* @param[in] ttl the new value for the message ttl
* @return zero on success or an error code on failure
Expand Down
3 changes: 3 additions & 0 deletions python/proton/_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,9 @@ def ttl(self) -> float:
"""The time to live of the message measured in seconds. Expired messages
may be dropped.

The default ttl value for a new message is 0. If this value is 0,
Proton will send no ttl message header.

:raise: :exc:`MessageException` if there is any Proton error when using the setter.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given your comments I'm wondering if we should check for 0 and return None in this case.

"""
return millis2secs(pn_message_get_ttl(self._msg))
Expand Down
3 changes: 3 additions & 0 deletions ruby/lib/core/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@ def ttl=(time)

# Returns the time-to-live, in milliseconds.
#
# The default ttl value for a new message is 0. If this value is 0, Proton
# will send no ttl message header.
#
def ttl
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment as for Python.

Cproton.pn_message_get_ttl(@impl)
end
Expand Down