summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-09-10 12:22:46 +0200
committerLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-09-10 12:22:46 +0200
commit4b19852dcc62a69a5a77a45bc9deb0045812104a (patch)
tree911b1fbf08f7e758fe0281283130fd64c2232ddb
parent2c81d1257bd2cccb57c2e9f02fbfc42c70323217 (diff)
downloadmonitoring-plugins-4b19852dcc62a69a5a77a45bc9deb0045812104a.tar.gz
check_curl: remove the other gotos
-rw-r--r--plugins/check_curl.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/plugins/check_curl.c b/plugins/check_curl.c
index 897ca9e1..7bb67645 100644
--- a/plugins/check_curl.c
+++ b/plugins/check_curl.c
@@ -991,8 +991,13 @@ mp_state_enum check_http(const check_curl_config config, check_curl_working_stat
991 * parsing We only check the first certificate and assume it's the one of 991 * parsing We only check the first certificate and assume it's the one of
992 * the server 992 * the server
993 */ 993 */
994 const char *raw_cert = NULL; 994 char *raw_cert = NULL;
995 bool got_first_cert = false;
995 for (int i = 0; i < cert_ptr.to_certinfo->num_of_certs; i++) { 996 for (int i = 0; i < cert_ptr.to_certinfo->num_of_certs; i++) {
997 if (got_first_cert) {
998 break;
999 }
1000
996 for (slist = cert_ptr.to_certinfo->certinfo[i]; slist; 1001 for (slist = cert_ptr.to_certinfo->certinfo[i]; slist;
997 slist = slist->next) { 1002 slist = slist->next) {
998 if (verbose >= 2) { 1003 if (verbose >= 2) {
@@ -1000,11 +1005,12 @@ mp_state_enum check_http(const check_curl_config config, check_curl_working_stat
1000 } 1005 }
1001 if (strncmp(slist->data, "Cert:", 5) == 0) { 1006 if (strncmp(slist->data, "Cert:", 5) == 0) {
1002 raw_cert = &slist->data[5]; 1007 raw_cert = &slist->data[5];
1003 goto GOT_FIRST_CERT; 1008 got_first_cert = true;
1009 break;
1004 } 1010 }
1005 } 1011 }
1006 } 1012 }
1007 GOT_FIRST_CERT: 1013
1008 if (!raw_cert) { 1014 if (!raw_cert) {
1009 snprintf(msg, DEFAULT_BUFFER_SIZE, 1015 snprintf(msg, DEFAULT_BUFFER_SIZE,
1010 _("Cannot retrieve certificates from CERTINFO information - " 1016 _("Cannot retrieve certificates from CERTINFO information - "
@@ -2898,7 +2904,12 @@ int net_noopenssl_check_certificate(cert_ptr_union *cert_ptr, int days_till_exp_
2898 printf("**** REQUEST CERTIFICATES ****\n"); 2904 printf("**** REQUEST CERTIFICATES ****\n");
2899 } 2905 }
2900 2906
2907 bool have_first_cert = false;
2901 for (int i = 0; i < cert_ptr->to_certinfo->num_of_certs; i++) { 2908 for (int i = 0; i < cert_ptr->to_certinfo->num_of_certs; i++) {
2909 if (have_first_cert) {
2910 break;
2911 }
2912
2902 for (slist = cert_ptr->to_certinfo->certinfo[i]; slist; slist = slist->next) { 2913 for (slist = cert_ptr->to_certinfo->certinfo[i]; slist; slist = slist->next) {
2903 /* find first common name in subject, 2914 /* find first common name in subject,
2904 * TODO: check alternative subjects for 2915 * TODO: check alternative subjects for
@@ -2922,14 +2933,14 @@ int net_noopenssl_check_certificate(cert_ptr_union *cert_ptr, int days_till_exp_
2922 } else if (strncasecmp(slist->data, "Expire Date:", 12) == 0) { 2933 } else if (strncasecmp(slist->data, "Expire Date:", 12) == 0) {
2923 end_date_str = &slist->data[12]; 2934 end_date_str = &slist->data[12];
2924 } else if (strncasecmp(slist->data, "Cert:", 5) == 0) { 2935 } else if (strncasecmp(slist->data, "Cert:", 5) == 0) {
2925 goto HAVE_FIRST_CERT; 2936 have_first_cert = true;
2937 break;
2926 } 2938 }
2927 if (verbose >= 2) { 2939 if (verbose >= 2) {
2928 printf("%d ** %s\n", i, slist->data); 2940 printf("%d ** %s\n", i, slist->data);
2929 } 2941 }
2930 } 2942 }
2931 } 2943 }
2932HAVE_FIRST_CERT:
2933 2944
2934 if (verbose >= 2) { 2945 if (verbose >= 2) {
2935 printf("**** REQUEST CERTIFICATES ****\n"); 2946 printf("**** REQUEST CERTIFICATES ****\n");