- Currently disabled attempts at logging commands

- Added a warning for excessive data rates on monitors
- Added statistics to devser and thus to scriptcontext
- Added byte concatenation to dynstring
- Added aborting for reflection generation to fourmess.c
- Added data checksum testing to hipadaba, use for update tests
- Fixed interrupt discovery in network.c, caused invalid interrupt
  codes which in turn confused sicscron which had to be fixed too.
- Renamed ubcalc into ubcalcint in order to reclaim the ubcalc for Jurg
- Added an a3offset to tasub in order to fix what I perceive an IS problem
- Added support for the newer version of the Siemens SPS, the S7
- Added a not yet fully working sinqhttpopt driver which talks to
  http HM without libghttp


SKIPPED:
	psi/delcam.c
	psi/make_gen
	psi/psi.c
	psi/sinq.c
	psi/sinq.h
	psi/sinqhttpopt.c
	psi/slsvme.c
	psi/spss7.c
This commit is contained in:
koennecke
2010-12-20 10:18:01 +00:00
parent 3e89d559ef
commit 045029dfd3
45 changed files with 732 additions and 202 deletions

20
ascon.c
View File

@ -218,15 +218,22 @@ int AsconConnectSuccess(int fd)
FD_SET(fd, &rmask);
ret = uselect(fd + 1, &rmask, &wmask, NULL, &tmo);
if (ret > 0) {
assert(FD_ISSET(fd, &wmask));
/**
* This assertion triggered for some reason: as writing is only done later
* I moved the test for ISSET(wmask) down there
* assert(FD_ISSET(fd, &wmask));
*/
if (FD_ISSET(fd, &rmask)) { /* there may already be data for read */
if (recv(fd, NULL, 0, 0) < 0) { /* zero length, check only return value */
ret = ASCON_RECV_ERROR; /* first recv failed */
}
} else {
if (send(fd, NULL, 0, 0) < 0) { /* zero length, check only return value */
ret = ASCON_SEND_ERROR; /* first send failed */
}
if(FD_ISSET(fd,&wmask)){
if (send(fd, NULL, 0, 0) < 0) { /* zero length, check only return value */
ret = ASCON_SEND_ERROR; /* first send failed */
}
}
}
}
fcntl(fd, F_SETFL, oldopts & ~O_NONBLOCK); /* reset to blocking mode */
@ -698,3 +705,8 @@ char *AsconGetError(Ascon *a)
{
return GetCharArray(a->errmsg);
}
int AsconLastState(Ascon *a)
{
return (int)a->state;
}