* USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $Log: wcgi.c,v $
- * Revision 1.5 1995/11/06 10:51:15 adam
+ * Revision 1.6 1995/11/06 17:44:22 adam
+ * State reestablised when shell restarts. History of previous
+ * result sets.
+ *
+ * Revision 1.5 1995/11/06 10:51:15 adam
* End of response marker in response from wsh/wproto to wcgi.
* Shells are respawned when necessary.
*
gw_log (GW_LOG_DEBUG, prog, "Synchronizing with client");
if ((linein = open(serverp, O_RDONLY)) < 0)
{
- gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open server %s", serverp);
+ gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open %s", serverp);
fatal("Internal error in server.");
}
if (read(linein, combuf, 2) < 2 || strcmp(combuf, "OK"))
{
- gw_log (GW_LOG_FATAL, prog, "Failed to synchronize with client.");
+ gw_log (GW_LOG_FATAL, prog, "Failed to synchronize with client");
fatal("Internal error in server");
}
- gw_log (GW_LOG_DEBUG, prog, "Synchronized.");
+ gw_log (GW_LOG_DEBUG, prog, "Synchronized");
}
sprintf(clientp, "%s/clt%d", tmp, gw_id);
gw_log (GW_LOG_DEBUG, prog, "Opening %s", clientp);
gw_log (GW_LOG_DEBUG, prog, "Synchronizing with client");
if ((linein = open(serverp, O_RDONLY)) < 0)
{
- gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open server %s", serverp);
+ gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open %s", serverp);
fatal("Internal error in server");
}
if (read(linein, combuf, 2) < 2 || strcmp(combuf, "OK"))
if ((lineout = open(clientp, O_WRONLY)) < 0)
{
gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "%s", clientp);
- gw_db_close (gw_db);
- exit (1);
+ fatal("Internal error in server");
}
}
gw_db_close (gw_db);
- gw_log (GW_LOG_DEBUG, prog, "Decoding user data.");
+ gw_log (GW_LOG_DEBUG, prog, "Decoding user data");
p = combuf + sizeof(data);
strcpy(p, serverp);
p += strlen(p) + 1;
{
if (read(0, p, data) < data)
{
- gw_log (GW_LOG_FATAL, prog, "Failed to read input.");
- fatal("Internal error in server.");
+ gw_log (GW_LOG_FATAL, prog, "Failed to read input");
+ fatal("Internal error in server");
}
}
p += data;
*(p++) = '\0';
data = (p - combuf);
memcpy(combuf, &data, sizeof(data));
- gw_log (GW_LOG_DEBUG, prog, "Writing data.");
+ gw_log (GW_LOG_DEBUG, prog, "Writing data");
if (write(lineout, combuf, data) < data)
{
gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "write");
- fatal("Internal server error.");
+ fatal("Internal server error");
}
if (linein < 0 && (linein = open(serverp, O_RDONLY)) < 0)
{
- gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open server %s", serverp);
- fatal("Internal error in server.");
+ gw_log (GW_LOG_FATAL|GW_LOG_ERRNO, prog, "open %s", serverp);
+ fatal("Internal error in server");
}
- gw_log (GW_LOG_DEBUG, prog, "Reading response.");
+ gw_log (GW_LOG_DEBUG, prog, "Reading response");
#if 0
while ((data = read(linein, combuf, COMBUF)) > 0)
break;
if (r > 0 && FD_ISSET (1, &s_input))
{
- gw_log (GW_LOG_DEBUG, prog, "stdout closed");
- break;
+ data = read (1, combuf, COMBUF);
+ if (data == -1)
+ {
+ gw_log (GW_LOG_DEBUG|GW_LOG_ERRNO, prog, "stdout closed");
+ break;
+ }
+ if (data == 0)
+ {
+ gw_log (GW_LOG_DEBUG, prog, "stdout closed");
+ break;
+ }
+ gw_log (GW_LOG_DEBUG, prog, "stdout got %d bytes", data);
}
}
#endif