Cleaned up ANSTO code to merge with sinqdev.sics
This is our new RELEASE-4_0 branch which was taken from ansto/93d9a7c Conflicts: .gitignore SICSmain.c asynnet.c confvirtualmot.c counter.c devexec.c drive.c event.h exebuf.c exeman.c histmem.c interface.h motor.c motorlist.c motorsec.c multicounter.c napi.c napi.h napi4.c network.c nwatch.c nxscript.c nxxml.c nxxml.h ofac.c reflist.c scan.c sicshipadaba.c sicsobj.c site_ansto/docs/Copyright.txt site_ansto/instrument/lyrebird/config/tasmad/sicscommon/nxsupport.tcl site_ansto/instrument/lyrebird/config/tasmad/taspub_sics/tasscript.tcl statusfile.c tasdrive.c tasub.c tasub.h tasublib.c tasublib.h
This commit is contained in:
24
ascon.c
24
ascon.c
@@ -47,7 +47,7 @@ static int CreateSocketAdress(struct sockaddr_in *sockaddrPtr, /* Socket addres
|
||||
}
|
||||
/*
|
||||
* There is a rumor that this assignment may require care on
|
||||
* some 64 bit machines.
|
||||
* some 64 bit machines, we do not believe it.
|
||||
*/
|
||||
sockaddrPtr->sin_addr.s_addr = addr.s_addr;
|
||||
return 1;
|
||||
@@ -134,7 +134,11 @@ static void AsconConnect(Ascon * a)
|
||||
}
|
||||
colon = strchr(a->hostport, ':');
|
||||
if (colon == NULL) {
|
||||
AsconError(a, "expected 'host:port' or 'unconnected'", 0);
|
||||
if (strcmp(a->hostport, "unconnected") == 0) {
|
||||
AsconError(a, "offline", 0);
|
||||
} else {
|
||||
AsconError(a, "expected 'host:port' or 'unconnected'", 0);
|
||||
}
|
||||
return;
|
||||
}
|
||||
port = atoi(colon + 1);
|
||||
@@ -672,7 +676,7 @@ Ascon *AsconMake(SConnection * con, int argc, char *argv[])
|
||||
free(args);
|
||||
return NULL;
|
||||
}
|
||||
a->rdBuffer = CreateDynString(60, 63);
|
||||
a->rdBuffer = CreateDynString(60, 65536);
|
||||
a->wrBuffer = CreateDynString(60, 63);
|
||||
a->errmsg = CreateDynString(60, 63);
|
||||
|
||||
@@ -765,6 +769,11 @@ AsconStatus AsconTask(Ascon * a)
|
||||
a->responseValid = 1;
|
||||
DynStringClear(a->errmsg);
|
||||
return AsconReady;
|
||||
case AsconReadDoneReconnect:
|
||||
a->responseValid = 1;
|
||||
DynStringClear(a->errmsg);
|
||||
AsconReconnect(a,NULL);
|
||||
return AsconReady;
|
||||
case AsconIdle:
|
||||
return AsconReady;
|
||||
case AsconTimeout:
|
||||
@@ -777,7 +786,7 @@ AsconStatus AsconTask(Ascon * a)
|
||||
lastClose = now;
|
||||
a->fd = -1;
|
||||
}
|
||||
if (now > a->lastReconnect + a->reconnectInterval) {
|
||||
if (a->reconnectInterval > 0 && now > a->lastReconnect + a->reconnectInterval) {
|
||||
a->lastReconnect = now;
|
||||
a->state = AsconConnectStart;
|
||||
}
|
||||
@@ -844,3 +853,10 @@ double AsconGetSetTimeout(Ascon *a, double timeout, int setmode) {
|
||||
}
|
||||
return a->timeout;
|
||||
}
|
||||
|
||||
int AsconReconnectInterval(Ascon *a, int interval) {
|
||||
if (interval >= 0) {
|
||||
a->reconnectInterval = interval;
|
||||
}
|
||||
return a->reconnectInterval;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user