tSpurious checks for HTTP socket write-ready status removed - vaccinewars - be a doctor and try to vaccinate the world
(HTM) git clone git://src.adamsgaard.dk/vaccinewars
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 19ef80f5719c9b6064678a2f2f3b1312eb9c0740
(DIR) parent fd337f75410505b0b71ed3d2bb5e7531f1cd3ad1
(HTM) Author: Ben Webb <ben@salilab.org>
Date: Sun, 9 Sep 2001 22:51:44 +0000
Spurious checks for HTTP socket write-ready status removed
Diffstat:
M src/gtk_client.c | 24 +++++++++++-------------
M src/message.c | 4 ++++
M src/serverside.c | 7 +++++++
3 files changed, 22 insertions(+), 13 deletions(-)
---
(DIR) diff --git a/src/gtk_client.c b/src/gtk_client.c
t@@ -1998,14 +1998,19 @@ static void HandleMetaSock(gpointer data,gint socket,
CloseHttpConnection(widgets->MetaConn);
widgets->MetaTag=0; widgets->MetaConn=NULL;
FillMetaServerList(widgets);
+ } else if (condition&GDK_INPUT_WRITE &&
+ !widgets->MetaConn->NetBuf.WriteBuf.DataPresent) {
+/* If we've written out everything, no need to test for write-ready any more */
+ gdk_input_remove(widgets->MetaTag);
+ widgets->MetaTag=gdk_input_add(widgets->MetaConn->NetBuf.fd,
+ GDK_INPUT_READ,
+ HandleMetaSock,(gpointer)widgets);
}
}
static void UpdateMetaServerList(GtkWidget *widget,
struct StartGameStruct *widgets) {
-/* char *MetaError;
- int HttpSock;*/
-
+ GtkWidget *metaserv;
if (widgets->MetaTag) {
gdk_input_remove(widgets->MetaTag);
CloseHttpConnection(widgets->MetaConn);
t@@ -2015,20 +2020,13 @@ static void UpdateMetaServerList(GtkWidget *widget,
widgets->MetaConn = OpenMetaHttpConnection();
if (widgets->MetaConn) {
+ metaserv=widgets->metaserv;
+ gtk_clist_clear(GTK_CLIST(metaserv));
+ ClearServerList();
widgets->MetaTag = gdk_input_add(widgets->MetaConn->NetBuf.fd,
GDK_INPUT_READ|GDK_INPUT_WRITE,
HandleMetaSock,(gpointer)widgets);
}
-
-/* MetaError=OpenMetaServerConnection(&HttpSock);
-
- if (MetaError) {
- return;
- }
- ReadMetaServerData(HttpSock);
- CloseMetaServerConnection(HttpSock);
- MetaServerRead=TRUE;
- FillMetaServerList(widgets);*/
}
static void MetaServerConnect(GtkWidget *widget,
(DIR) diff --git a/src/message.c b/src/message.c
t@@ -628,6 +628,10 @@ HttpConnection *OpenHttpConnection(gchar *HostName,unsigned Port,
QueueMessageForSend(&conn->NetBuf,text->str);
if (conn->Headers) QueueMessageForSend(&conn->NetBuf,conn->Headers);
+
+ g_string_sprintf(text,"User-Agent: dopewars/%s",VERSION);
+ QueueMessageForSend(&conn->NetBuf,text->str);
+
QueueMessageForSend(&conn->NetBuf,"\n");
if (conn->Body) QueueMessageForSend(&conn->NetBuf,conn->Body);
(DIR) diff --git a/src/serverside.c b/src/serverside.c
t@@ -190,6 +190,7 @@ void RegisterWithMetaServer(gboolean Up,gboolean SendData,
MetaConn=OpenHttpConnection(MetaServer.Name,MetaServer.Port,
MetaServer.ProxyName,MetaServer.ProxyPort,
"POST",MetaServer.Path,headers->str,body->str);
+ g_print("Sending headers %s and body %s\n",headers->str,body->str);
g_string_free(headers,TRUE);
g_string_free(body,TRUE);
t@@ -1003,6 +1004,12 @@ void GuiHandleMeta(gpointer data,gint socket,GdkInputCondition condition) {
gdk_input_remove(MetaInputTag);
MetaInputTag=0;
if (IsServerShutdown()) GuiQuitServer();
+ } else if (condition&GDK_INPUT_WRITE &&
+ !MetaConn->NetBuf.WriteBuf.DataPresent) {
+/* If we've written out everything, no need to test for write-ready any more */
+ gdk_input_remove(MetaInputTag);
+ MetaInputTag=gdk_input_add(MetaConn->NetBuf.fd,
+ GDK_INPUT_READ,GuiHandleMeta,NULL);
}
}