if (!backend.ctx->read_ack(ctx)){
/* should get EOD */
DMSG0(ctx, DERROR, "Protocol error, should get EOD.\n");
+ backend.ctx->terminate(ctx);
return bRC_Error;
}
if (!backend.ctx->read_ack(ctx)){
/* should get EOD */
DMSG0(ctx, DERROR, "Protocol error, should get EOD.\n");
+ backend.ctx->terminate(ctx);
return bRC_Error;
}
readxattr = true;
if (!backend.ctx->read_ack(ctx)){
/* should get EOD */
DMSG0(ctx, DERROR, "Protocol error, should get EOD.\n");
+ backend.ctx->terminate(ctx);
return bRC_Error;
}
/* error in protocol */
DMSG(ctx, DERROR, "Protocol error, got unknown command: %s\n", cmd.c_str());
JMSG(ctx, M_FATAL, "Protocol error, got unknown command: %s\n", cmd.c_str());
+ backend.ctx->terminate(ctx);
return bRC_Error;
} else {
if (backend.ctx->is_fatal()){
/* error in protocol */
DMSG(ctx, DERROR, "Protocol error, got unknown command: %s\n", cmd.c_str());
JMSG(ctx, M_FATAL, "Protocol error, got unknown command: %s\n", cmd.c_str());
+ backend.ctx->terminate(ctx);
return bRC_Error;
} else {
if (backend.ctx->is_fatal()){
if (reqparams > 0) {
DMSG0(ctx, DERROR, "Protocol error, not enough file attributes from backend.\n");
JMSG0(ctx, M_FATAL, "Protocol error, not enough file attributes from backend.\n");
+ backend.ctx->terminate(ctx);
return bRC_Error;
}
return;
}
+ DMSG0(ctx, DINFO, "Terminating backend ...\n");
+
struct timeval _timeout;
_timeout.tv_sec = 0;
_timeout.tv_usec = 1000;
DMSG0(ctx, DERROR, "PTCOMM cannot get packet header from backend.\n");
JMSG0(ctx, M_FATAL, "PTCOMM cannot get packet header from backend.\n");
f_eod = f_error = f_fatal = true;
+ terminate(ctx);
return -1;
}
if (header.status != *cmd) {
DMSG2(ctx, DERROR, "Protocol error. Expected packet: %c got: %c\n", *cmd, header.status);
JMSG2(ctx, M_FATAL, "Protocol error. Expected packet: %c got: %c\n", *cmd, header.status);
+ terminate(ctx);
return -1;
}
} else {
continue;
default:
- DMSG1(ctx, DERROR, "Protocol error. Unknown packet: %c\n", header.status);
- JMSG1(ctx, M_FATAL, "Protocol error. Unknown packet: %c\n", header.status);
+ DMSG2(ctx, DERROR, "Protocol error. Unknown packet: %c:%s\n", header.status, header.length);
+ JMSG2(ctx, M_FATAL, "Protocol error. Unknown packet: %c:%s\n", header.status, header.length);
+ terminate(ctx);
return -1;
}
}