* so that it accepts next command.
* Note that this may be overkill since client may send
* it by itself. Moreover we do not need it in non-extend mode.
- * At this point we regard it harmfull since error resonse
- * will not be sent so frequently.
+ * At this point we regard it is not harmfull since error resonse
+ * will not be sent too frequently.
*/
pool_write(cp, "S", 1);
res1 = htonl(4);
ret = SimpleForwardToFrontend(k, frontend, backend);
if (ret != POOL_CONTINUE)
return ret;
+ pool_flush(frontend);
}
status = pool_read(MASTER(backend), &res1, sizeof(res1));
if (kind == 'P' || kind == 'B' || kind == 'D' || kind == 'C')
{
int i;
+ int kind1;
for (i = 0;i < backend->num;i++)
{
break;
}
- kind = pool_read_kind(backend);
- if (kind < 0)
+ if (kind == 'D' && *p == 'S')
+ {
+ kind1 = pool_read_kind(backend);
+ if (kind1 < 0)
+ {
+ pool_error("SimpleForwardToBackend: pool_read_kind error");
+ return POOL_ERROR;
+ }
+ SimpleForwardToFrontend(kind1, frontend, backend);
+ pool_flush(frontend);
+ }
+
+ kind1 = pool_read_kind(backend);
+ if (kind1 < 0)
{
pool_error("SimpleForwardToBackend: pool_read_kind error");
return POOL_ERROR;
}
- SimpleForwardToFrontend(kind, frontend, backend);
+ SimpleForwardToFrontend(kind1, frontend, backend);
return pool_flush(frontend);
}