aboutsummaryrefslogtreecommitdiff
path: root/lib/utils_tcp.h
diff options
context:
space:
mode:
authorGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2013-09-12 21:37:20 +0200
committerGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2013-09-12 21:37:20 +0200
commite8044713d41f5ef1d9ce814df4a079d8f92306b0 (patch)
treee4b6f3d068c850774b9cda16f7c5830b9fc15774 /lib/utils_tcp.h
parent662997251d4fc43f4155784f9e7df827f193305e (diff)
downloadmonitoring-plugins-e8044713d41f5ef1d9ce814df4a079d8f92306b0.tar.gz
check_tcp: Properly deal will partial recv(3)s
The np_expect_match() function now returns one of three possible states instead of just TRUE or FALSE: - NP_MATCH_SUCCESS - NP_MATCH_FAILURE - NP_MATCH_RETRY The NP_MATCH_RETRY state indicates that matching might succeed if np_expect_match() is called with a longer input string. This allows check_tcp to decide whether it makes sense to wait for additional data from the server.
Diffstat (limited to 'lib/utils_tcp.h')
-rw-r--r--lib/utils_tcp.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/utils_tcp.h b/lib/utils_tcp.h
index 34b771d6..0328a9cf 100644
--- a/lib/utils_tcp.h
+++ b/lib/utils_tcp.h
@@ -4,5 +4,19 @@
#define NP_MATCH_EXACT 0x2
#define NP_MATCH_VERBOSE 0x4
-int np_expect_match(char* status, char** server_expect, int server_expect_count,
- int flags);
+/*
+ * The NP_MATCH_RETRY state indicates that matching might succeed if
+ * np_expect_match() is called with a longer input string. This allows the
+ * caller to decide whether it makes sense to wait for additional data from the
+ * server.
+ */
+enum np_match_result {
+ NP_MATCH_FAILURE,
+ NP_MATCH_SUCCESS,
+ NP_MATCH_RETRY
+};
+
+enum np_match_result np_expect_match(char *status,
+ char **server_expect,
+ int server_expect_count,
+ int flags);