summaryrefslogtreecommitdiff
path: root/examples/amqps_producer.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/amqps_producer.c')
-rw-r--r--examples/amqps_producer.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/examples/amqps_producer.c b/examples/amqps_producer.c
index 7d3a24b..4c504c8 100644
--- a/examples/amqps_producer.c
+++ b/examples/amqps_producer.c
@@ -115,6 +115,8 @@ int main(int argc, char const *const *argv)
{
char const *hostname;
int port, status;
+ int hascacert = 0;
+ int nextarg = 0;
int rate_limit;
int message_count;
amqp_socket_t *socket;
@@ -122,7 +124,7 @@ int main(int argc, char const *const *argv)
if (argc < 5) {
fprintf(stderr, "Usage: amqps_producer host port rate_limit message_count "
- "[cacert.pem [key.pem cert.pem]]\n");
+ "[cacert.pem [verifypeer] [verifyhostname] [key.pem cert.pem]]\n");
return 1;
}
@@ -138,15 +140,28 @@ int main(int argc, char const *const *argv)
die("creating SSL/TLS socket");
}
+ amqp_ssl_socket_set_verify_peer(socket, 0);
+ amqp_ssl_socket_set_verify_hostname(socket, 0);
+
if (argc > 5) {
status = amqp_ssl_socket_set_cacert(socket, argv[5]);
if (status) {
die("setting CA certificate");
}
+ hascacert = 1;
+ nextarg = 6;
+ if (argc > nextarg && !strcmp("verifypeer", argv[nextarg])) {
+ amqp_ssl_socket_set_verify_peer(socket, 1);
+ nextarg++;
+ }
+ if (argc > nextarg && !strcmp("verifyhostname", argv[nextarg])) {
+ amqp_ssl_socket_set_verify_hostname(socket, 1);
+ nextarg++;
+ }
}
- if (argc > 7) {
- status = amqp_ssl_socket_set_key(socket, argv[7], argv[6]);
+ if (hascacert && argc > nextarg + 1) {
+ status = amqp_ssl_socket_set_key(socket, argv[nextarg + 1], argv[nextarg]);
if (status) {
die("setting client cert");
}