Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Jun 2007 07:46:20 GMT
From:      Andrew Turner <andrew@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 121251 for review
Message-ID:  <200706090746.l597kKv2014292@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=121251

Change 121251 by andrew@andrew_hermies on 2007/06/09 07:45:46

	- Listen for a close of element signal from libbsdxml
	- Send a server close message when the connection is being closed by the client
	- Comment out the returning the send data element

Affected files ...

.. //depot/projects/soc2007/andrew-update/lib/facund_server.c#3 edit

Differences ...

==== //depot/projects/soc2007/andrew-update/lib/facund_server.c#3 (text+ko) ====

@@ -35,6 +35,7 @@
 #define BUF_SIZE	128
 
 static void facund_server_start_tag(void *, const XML_Char *, const XML_Char**);
+static void facund_server_end_tag(void *, const XML_Char *);
 
 /*
  * Waits for a client to connect and send the start message
@@ -54,6 +55,7 @@
 
 	XML_SetUserData(conn->parser, conn);
 	XML_SetStartElementHandler(conn->parser, facund_server_start_tag);
+	XML_SetEndElementHandler(conn->parser, facund_server_end_tag);
 
 	str = "<facund-server version=\"0\">";
 	facund_send(conn, str, strlen(str));
@@ -106,11 +108,29 @@
     const XML_Char **attrs __unused)
 {
 	struct facund_conn *conn;
+	//char str[1024];
+
+	printf("> %s\n", name);
+	conn = data;
+
+	//snprintf(str, 1024, "<data val=\"%s\"/>", name);
+	//facund_send(conn, str, strlen(str));
+}
+
+static void
+facund_server_end_tag(void *data, const XML_Char *name)
+{
+	struct facund_conn *conn;
 	char str[1024];
 
-	printf("> %s\n", name);
+	printf("< %s\n", name);
 	conn = data;
 
-	snprintf(str, 1024, "<data val=\"%s\"/>", name);
-	facund_send(conn, str, strlen(str));
+	if (strcmp(name, "facund-client") == 0) {
+		snprintf(str, 1024, "</facund-server>");
+		facund_send(conn, str, strlen(str));
+	} else {
+		snprintf(str, 1024, "<data val=\"%s\"/>", name);
+		facund_send(conn, str, strlen(str));
+	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200706090746.l597kKv2014292>