
--- include/pconn/dlp_cmd.h.orig	Sat Oct  6 20:04:35 2001
+++ include/pconn/dlp_cmd.h	Sun Jul 18 00:24:28 2004
@@ -199,6 +199,9 @@
 #define DLPCMD_MODUIFLAG_VIEWERID	0x08	/* Viewer ID */
 
 /** ReadSysInfo **/
+#define DLPARG_ReadSysInfo_Ver		DLPARG_BASE
+#define DLPARGLEN_ReadSysInfo_Ver	4
+
 #define DLPRET_ReadSysInfo_Info		DLPRET_BASE
 #define DLPRETLEN_ReadSysInfo_Info	14
 
--- libpconn/dlp_cmd.c.orig	Thu Oct 18 03:35:03 2001
+++ libpconn/dlp_cmd.c	Sun Jul 18 00:24:28 2004
@@ -343,7 +343,10 @@
 	int err;
 	struct dlp_req_header header;		/* Request header */
 	struct dlp_resp_header resp_header;	/* Response header */
+	struct dlp_arg argv[1];			/* Request argument list */
 	const struct dlp_arg *ret_argv;	/* Response argument list */
+	static ubyte outbuf[DLPARGLEN_ReadSysInfo_Ver]; 
+						/* Buffer holding outgoing arg */
 	const ubyte *rptr;	/* Pointer into buffers (for reading) */
 
 	DLPC_TRACE(1)
@@ -351,10 +354,21 @@
 
 	/* Fill in the header values */
 	header.id = (ubyte) DLPCMD_ReadSysInfo;
-	header.argc = 0;
+	header.argc = 1;
+
+	/* Fill in the argument */
+	
+	outbuf[0] = 0x00; /* We are telling our peer we support */
+	outbuf[1] = 0x01; /* DLP 1.3. Old PDAs will discard the argument. */
+	outbuf[2] = 0x00; 
+	outbuf[3] = 0x03;
+	
+	argv[0].id	= DLPARG_ReadSysInfo_Ver;
+	argv[0].size	= DLPARGLEN_ReadSysInfo_Ver;
+	argv[0].data	= outbuf;
 
 	/* Send the DLP request */
-	err = dlp_send_req(pconn, &header, NULL);
+	err = dlp_send_req(pconn, &header, argv);
 	if (err < 0)
 		return err;
 

