add support for error codes for CC_ERR

This commit is contained in:
Radim Kolar 2009-09-21 18:17:08 +02:00
parent 6aa153fd1e
commit 1f3e259eee
3 changed files with 30 additions and 2 deletions

View File

@ -37,6 +37,17 @@ Version NEXT
SCons now check if CC compiler works. We need SCons 1.1 or greater
for building FSP now.
Large file support on Linux is now correctly detected.
Error codes added to CC_ERR command in PROTOCOL. It was long wished
feature from ISV. Now there is standard way how to pass error codes
from server to client. No such codes are defined yet, but you can
use custom error codes in range 0xF000 - 0xFFFF. because no such
codes are defined fspd do not sends them in error message, but it
now correctly zeroes bb_pos field in CC_ERR reply to indicate
that extended error code status is not attached to message. Old
fspd versions left this field untouched - it will contain request
bb_pos in most, but not all cases. Because we indicate size of
extra data to be received, this extended error handling is
compatible with "plain FSP over serial" standard.
Version 2.8.1b25 - 10 Sep 2009
GNU autotools build system was entirely replaced by SCons

View File

@ -252,9 +252,25 @@ CC_VERSION is recommended.
xtra data: not used
reply
file position: not used
file position: size of extra data
data: ASCIIZ Error string
xtra data: not used
xtra data: not required
word - error status code
Error status codes are not currently standardised. If you
wish to participate in standardization process join FSP-devel
mailing list. For use in your own software use vendor-specific
error codes which have reserved range 0xF000 - 0xFFFF.
Compatibility
Support for sizing of extra data in reply was added
in fsp 2.8.1b26. Previous versions left this field
unchanged. In old versions it will most likely contain
file position used by requests but not always. In some
code paths in fspd it will be just uninitialized memory.
Its recommended to check if file position in reply is 2
otherwise it should be processed as containing zero.
CC_GET_DIR 0x41 - get a directory listing

View File

@ -146,6 +146,7 @@ static void send_error (struct sockaddr_in * from, UBUF * ub, const char * msg)
sz=strlen(msg)+1;
memcpy(ub->buf,msg,sz);
ub->cmd = CC_ERR;
BB_WRITE4(ub->bb_pos,0);
server_reply(from,ub,sz,0);
}