-
Notifications
You must be signed in to change notification settings - Fork 61
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
Added check for cookie update and support for HTTP Basic authentication #18
Added check for cookie update and support for HTTP Basic authentication #18
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some general comments, mostly about the documentation.
Haven't tested this against actual hw, but I trust you have.
@@ -272,21 +272,67 @@ class RWSClient : public POCOClient | |||
*/ | |||
std::vector<SubscriptionResource> resources_; | |||
}; | |||
|
|||
/** | |||
* \brief A constructor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is a tad too general. Do you think we could describe this better?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are quite a few such general descriptions. I have opened an issue to improve this, see #25
POCOClient(ip_address, | ||
SystemConstants::General::DEFAULT_PORT_NUMBER, | ||
username, | ||
password) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we start using C++11, we could use delegating constructors here.
(and for all the other ctor variants below)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I will keep that in mind.
* \param port for the remote server's port. | ||
* \param user for the remote server's authentication (assumed to be Digest). | ||
* \param password for the remote server's authentication (assumed to be Digest). | ||
* \param ip_address specifying the robot controller's IP address. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the LAN address, or can it be any address?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have only tested with LAN addresses, but I guess it could be any address as long as it is possible to establish a network connection.
The argument is passed down to a constructor for a POCO C++ HTTPClientSession.
const Poco::UInt16 port = 80, | ||
const std::string user = SystemConstants::General::DEFAULT_USERNAME, | ||
const std::string password = SystemConstants::General::DEFAULT_PASSWORD) | ||
const unsigned short port, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did this lose the Poco::UInt16
type spec?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm... I don't remember... possibly a case of "copy-and-paste".
rws_client_(ip_address, | ||
SystemConstants::General::DEFAULT_PORT_NUMBER, | ||
username, | ||
password) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment about the delegating constructors here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I will keep it in mind.
* \param user for the remote server's authentication (assumed to be Digest). | ||
* \param password for the remote server's authentication (assumed to be Digest). | ||
* \param username for the username to the remote server's authentication process. | ||
* \param password for the password to the remote server's authentication process. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should for
be removed here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment for all other places that for
is used in this way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have thought about improving the parameter descriptions, but I haven't had time yet. I have opened an issue to improve this, see #26
@@ -246,16 +247,16 @@ class POCOClient | |||
* | |||
* \param ip_address for the remote server's IP address. | |||
* \param port for the remote server's port. | |||
* \param user for the remote server's authentication (assumed to be Digest). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is no longer only Digest auth, or has the default changed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the default is still Digest for RWS. However, the POCOClient implementation don't know that it is used for RWS at all, and since the HTTPCredentials can handle both it is more general this way (compared to the previous HTTPDigestCredentials).
SystemConstants::General::DEFAULT_PORT_NUMBER, | ||
username, | ||
password) | ||
{} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Delegating constructors again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I will keep it in mind.
const std::string SystemConstants::General::MECHANICAL_UNIT_ROB_4 = "ROB_4"; | ||
const std::string SystemConstants::General::MECHANICAL_UNIT_ROB_L = "ROB_L"; | ||
const std::string SystemConstants::General::MECHANICAL_UNIT_ROB_R = "ROB_R"; | ||
const std::string SystemConstants::General::REMOTE = "remote"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably change some of this to constexpr
s (but that would need C++11 again).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I will keep it in mind.
@gavanderhoorn I have replied to your comments, and yes, I have verified this with real hardware. |
Feel free to merge @jontje. |
Great, thanks for the review @gavanderhoorn! :) |
As per title.