M.Z.
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocConnect(CocConn *conn) {
|
||||
int CocConnect(CocConn *conn) { /* connect, but do not start */
|
||||
int i;
|
||||
struct sockaddr_in sadr;
|
||||
|
||||
@@ -43,15 +43,15 @@ int CocConnect(CocConn *conn) {
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
int CocOpen(CocConn *conn)
|
||||
{
|
||||
int i, try, tmo, iret=-1;
|
||||
int CocOpen(CocConn *conn) { /* connect and start, if not succsessful */
|
||||
int i, try, tmo;
|
||||
|
||||
ERR_I(i=CocConnect(conn));
|
||||
if (i==0) return(0);
|
||||
/* connection refused */
|
||||
if (conn->startcmd[0]=='\0') {
|
||||
CocDelay(500);
|
||||
ErrTxt("connect",1); return(-2);
|
||||
ErrTxt("connect",1); return(1);
|
||||
}
|
||||
|
||||
printf("Starting TecsServer ...\n\n%s\n", conn->startcmd);
|
||||
@@ -69,12 +69,13 @@ int CocOpen(CocConn *conn)
|
||||
}
|
||||
}
|
||||
ERR_MSG("can not start TECS, too many retries");
|
||||
OnError: return(iret);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
int CocInitClient(CocConn *conn, char *host, int port, char *magic, int bufsize, char *startcmd) {
|
||||
int iret;
|
||||
assert(conn!=NULL);
|
||||
if (bufsize==0) bufsize=1024;
|
||||
StrLink(&conn->cmdbuf, conn->cmdbuf_);
|
||||
@@ -84,9 +85,15 @@ int CocInitClient(CocConn *conn, char *host, int port, char *magic, int bufsize,
|
||||
ERR_I(str_copy(conn->magic, magic));
|
||||
ERR_I(str_copy(conn->startcmd, startcmd));
|
||||
conn->fd=-1;
|
||||
ERR_I(CocOpen(conn));
|
||||
ERR_I(CocSendMagic(conn, conn->magic));
|
||||
return(0);
|
||||
ERR_I(iret=CocOpen(conn));
|
||||
if (iret==0) {
|
||||
iret=CocSendMagic(conn, conn->magic);
|
||||
if (iret<0) {
|
||||
CocCloseClient(conn);
|
||||
iret=1;
|
||||
}
|
||||
}
|
||||
return(iret);
|
||||
OnError: return(-1);
|
||||
}
|
||||
|
||||
@@ -129,10 +136,7 @@ int CocTryCmd(CocConn *conn) {
|
||||
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
if (conn->fd<0) {
|
||||
/*
|
||||
ERR_I(iret=CocOpen(conn));
|
||||
*/
|
||||
ERR_I(iret=CocConnect(conn));
|
||||
ERR_I(iret=CocConnect(conn)); /* was CocOpen earlier */
|
||||
if (iret == 1) {
|
||||
CocDelay(500);
|
||||
ErrTxt("connect",1); return (-1);
|
||||
@@ -467,6 +471,7 @@ int CocShowLog(CocConn *conn, char *loglist, int start, int lines) {
|
||||
void CocCloseClient(CocConn *conn) {
|
||||
assert(conn!=NULL);
|
||||
close(conn->fd);
|
||||
conn->fd=-1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user