This commit is contained in:
cvs
2002-08-22 11:06:28 +00:00
parent b7f5cd8d24
commit ac002aca73
7 changed files with 103 additions and 41 deletions

View File

@@ -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;
}