DFC locking for protocol zero only
This commit is contained in:
23
nread.c
23
nread.c
@ -294,15 +294,25 @@ static int NetReadRead(pNetRead self, pNetItem pItem)
|
||||
*pEnd = '\0';
|
||||
/* do we have something in hold ? */
|
||||
if (strlen(pItem->pHold) > 0) {
|
||||
strlcat(pItem->pHold, pPtr,511);
|
||||
iStat = CostaTop(pItem->pCon->pStack, pItem->pHold);
|
||||
strlcat(pItem->pHold, pPtr, 511);
|
||||
/* DFC locking for protocol zero only */
|
||||
if (pItem->pCon->iProtocolID == 0 &&
|
||||
CostaLocked(pItem->pCon->pStack))
|
||||
iStat = 0;
|
||||
else
|
||||
iStat = CostaTop(pItem->pCon->pStack, pItem->pHold);
|
||||
if (!iStat) {
|
||||
SCWrite(pItem->pCon, "ERROR: Busy", eError);
|
||||
}
|
||||
pItem->pHold[0] = '\0';
|
||||
} else {
|
||||
/* no, normal command */
|
||||
iStat = CostaTop(pItem->pCon->pStack, pPtr);
|
||||
/* DFC locking for protocol zero only */
|
||||
if (pItem->pCon->iProtocolID == 0 &&
|
||||
CostaLocked(pItem->pCon->pStack))
|
||||
iStat = 0;
|
||||
else
|
||||
iStat = CostaTop(pItem->pCon->pStack, pPtr);
|
||||
if (!iStat) {
|
||||
SCWrite(pItem->pCon, "ERROR: Busy", eError);
|
||||
}
|
||||
@ -487,7 +497,12 @@ static int TelnetRead(pNetRead self, pNetItem pItem)
|
||||
break;
|
||||
case '\r':
|
||||
case '\n':
|
||||
iStat = CostaTop(pItem->pCon->pStack, pItem->pHold);
|
||||
/* DFC locking for protocol zero only */
|
||||
if (pItem->pCon->iProtocolID == 0 &&
|
||||
CostaLocked(pItem->pCon->pStack))
|
||||
iStat = 0;
|
||||
else
|
||||
iStat = CostaTop(pItem->pCon->pStack, pItem->pHold);
|
||||
/* printf("%s\n",pItem->pHold); */
|
||||
if (!iStat) {
|
||||
SCWrite(pItem->pCon, "ERROR: Busy", eError);
|
||||
|
Reference in New Issue
Block a user