add ZMP send commands
diff --git a/libtelnet.c b/libtelnet.c
index ba74577..df8f935 100644
--- a/libtelnet.c
+++ b/libtelnet.c
@@ -969,3 +969,36 @@
 
 	return rs;
 }
+
+/* send ZMP data */
+void telnet_send_zmp(telnet_t *telnet, size_t argc, const char **argv) {
+	size_t i;
+
+	/* ZMP header */
+	telnet_begin_sb(telnet, TELNET_TELOPT_ZMP);
+
+	/* send out each argument, including trailing NUL byte */
+	for (i = 0; i != argc; ++i)
+		telnet_send(telnet, argv[i], strlen(argv[i] + 1));
+
+	/* ZMP footer */
+	telnet_finish_sb(telnet);
+}
+
+/* send ZMP data using varargs  */
+void telnet_send_zmpv(telnet_t *telnet, ...) {
+	va_list va;
+	const char* arg;
+
+	/* ZMP header */
+	telnet_begin_sb(telnet, TELNET_TELOPT_ZMP);
+
+	/* send out each argument, including trailing NUL byte */
+	va_start(va, telnet);
+	while ((arg = va_arg(va, const char *)) != NULL)
+		telnet_send(telnet, arg, strlen(arg) + 1);
+	va_end(va);
+
+	/* ZMP footer */
+	telnet_finish_sb(telnet);
+}