diff --git a/devexec.c b/devexec.c index dbff8a20..d814d830 100644 --- a/devexec.c +++ b/devexec.c @@ -183,6 +183,8 @@ char pBueffel[132], pError[80]; pIDrivable pDrivInt = NULL; pICountable pCountInt = NULL; + static int overwriteOwner = -1; + char *overwriteOption; assert(self); assert(pDes); @@ -193,9 +195,19 @@ { if(pCon != self->pOwner) { - SCWrite(pCon, - "ERROR: somebody else is still driving, Request rejected",eError); - return 0; + /* this hack helps on rita2, when using the sendsics script + which opens a client for every command */ + if (overwriteOwner < 0) { + overwriteOption = IFindOption(pSICSOptions, "overwriteOwner"); + overwriteOwner = overwriteOption && *overwriteOption != '0'; + } + if (overwriteOwner) { + self->pOwner = pCon; + } else { + SCWrite(pCon, + "ERROR: somebody else is still driving, Request rejected",eError); + return 0; + } } } else