diff --git a/asynnet.c b/asynnet.c index 8aa349b1..b9e688d5 100644 --- a/asynnet.c +++ b/asynnet.c @@ -247,6 +247,7 @@ int ANETconnect(char *name, int iPort) status = connect(socke, (struct sockaddr *) &addresse, sizeof(struct sockaddr_in)); if (status < 0) { + close(socke); anetLog(ANETERROR, "Failed to open socket to %s:%d", name, iPort); return ANETOPENFAIL; } diff --git a/interface.c b/interface.c index 1fe00113..c10fe697 100644 --- a/interface.c +++ b/interface.c @@ -235,9 +235,11 @@ static int DriveTaskFunc(void *data) DevexecLog("STOP",taskData->name); if(status == HWIdle || status == OKOK){ ExeInterest(pServ->pExecutor,taskData->name, "finished"); + } else { ExeInterest(pServ->pExecutor,taskData->name, "finished with problem"); } + SetStatus(eEager); return 0; } /*--------------------------------------------------------------------------*/ diff --git a/motorsec.c b/motorsec.c index 28e77685..51853b70 100644 --- a/motorsec.c +++ b/motorsec.c @@ -509,6 +509,7 @@ static hdbCallbackReturn SecMotorCallback(pHdb node, void *userData, self->name); SCWrite(pCon, pBueffel, eWarning); self->errorCount = 0; + self->pDrivInt->iErrorCount = 0; } /* diff --git a/multicountersec.c b/multicountersec.c index 00dda9d8..2b4bbc1e 100644 --- a/multicountersec.c +++ b/multicountersec.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "sicshipadaba.h" /*---------------------------------------------------------------------------*/ typedef struct { @@ -313,14 +314,20 @@ static int isMultiMasterRunning(pCounter self, SConnection *pCon, int *status) UpdateHipadabaPar(stopTime,MakeHdbInt(time(NULL)),pCon); SecCounterSetError(self,"Master counter errror"); *status = HWBusy; + ClearFixedStatus(eCounting); break; case HWPause: UpdateHipadabaPar(myStatus,MakeHdbText("paused"),pCon); + *status = HWPause; + SetStatusFixed(ePaused); break; case HWNoBeam: UpdateHipadabaPar(myStatus,MakeHdbText("nobeam"),pCon); + *status = HWNoBeam; + SetStatusFixed(eOutOfBeam); break; default: + SetStatusFixed(eCounting); *status = HWBusy; UpdateHipadabaPar(myStatus,MakeHdbText("run"),pCon); if (self->iCallbackCounter > 20) { @@ -403,6 +410,7 @@ static void multiEndCounting(pCounter self, SConnection *pCon) InvokeCallBack(self->pCall, COUNTEND, NULL); ReleaseCountLock(self->pCountInt); MultiSecTransfer(self,pCon); + ClearFixedStatus(eEager); } /*-------------------------------------------------------------------------------------*/ @@ -420,11 +428,12 @@ static int MultiSecStatus(void *pData, SConnection * pCon) } if(areSlavesRunning(self,pCon, &status)){ + SetStatusFixed(eCounting); return status; } multiEndCounting(self,pCon); - + return HWIdle; } /*--------------------------------------------------------------------------- diff --git a/network.c b/network.c index 4e2d2031..3fcc6a66 100644 --- a/network.c +++ b/network.c @@ -288,6 +288,7 @@ mkChannel *NETConnectWithFlags(char *name, int port, int flags) iRet = connect(pRes->sockid, (struct sockaddr *) &(pRes->adresse), sizeof(struct sockaddr_in)); if (iRet < 0) { + close(pRes->sockid); if (errno != EINPROGRESS) { free(pRes); return NULL; diff --git a/sllinux_def b/sllinux_def index 0ebae7a9..0e22a767 100644 --- a/sllinux_def +++ b/sllinux_def @@ -12,4 +12,4 @@ MFLAGS=-f makefile_linux$(DUMMY) HDFROOT=/afs/psi.ch/project/sinq/sl6 TCLINC=. -DBG= -g -fstack-protector-all +DBG= -g