# HG changeset patch
# User Mychaela Falconia <falcon@freecalypso.org>
# Date 1547532064 0
# Node ID 261c1b6d936e754bf1f45aa8bdcc26bc6d645800
# Parent  e13f60d4f8dd7607cd0c7c3606f9ab29cc838ecd
fcup-rvtat: added support for long strings with new fw versions

diff -r e13f60d4f8dd -r 261c1b6d936e rvinterf/rvtat/main.c
--- a/rvinterf/rvtat/main.c	Wed Jan 09 07:58:06 2019 +0000
+++ b/rvinterf/rvtat/main.c	Tue Jan 15 06:01:04 2019 +0000
@@ -15,7 +15,7 @@
 extern u_char rvi_msg[];
 extern int rvi_msg_len;
 
-char command[256], message[256];
+char command[508], message[508];
 int cmd_with_msg;
 
 read_command_input(buf)
@@ -23,7 +23,7 @@
 {
 	char *nl;
 
-	if (!fgets(buf, 256, stdin))
+	if (!fgets(buf, 508, stdin))
 		return(0);
 	nl = index(buf, '\n');
 	if (!nl) {
@@ -34,7 +34,21 @@
 	return(1);
 }
 
-send_to_target(str)
+send_to_target_prefix(str)
+	char *str;
+{
+	u_char sendpkt[MAX_PKT_TO_TARGET];
+
+	/* fill out the packet */
+	sendpkt[0] = RVT_AT_HEADER;
+	sendpkt[1] = 0x01;
+	bcopy(str, sendpkt + 2, 252);
+	/* send it! */
+	send_pkt_to_target(sendpkt, 254);
+	return(0);
+}
+
+send_to_target_plain(str)
 	char *str;
 {
 	unsigned len;
@@ -49,6 +63,21 @@
 	return(0);
 }
 
+send_to_target(str)
+	char *str;
+{
+	unsigned len;
+
+	len = strlen(str);
+	if (len <= 254)
+		send_to_target_plain(str);
+	else {
+		send_to_target_prefix(str);
+		send_to_target_plain(str + 252);
+	}
+	return(0);
+}
+
 execute_command()
 {
 	send_to_target(command);