Yes, basically correct, but not all services return values in this way. For example NDS, NMAS, etc... All return values in the form of 0xffffxxxx. Only the NetWare NCP engine returns the simplified error value. In the packet trace you only see the last 2 digits of the return value. The client mechanism would then OR 0x8900 with the value to map to proper operating system error codes. The actual client application would then display the error to the user in the fashion of 0x89xx. If anyone attempts to lookup the actual error code value without the 0x89 they will not be able to locate the correct information. This change was to improve the ability of Ethereal to point people in the correct direction if an error is found within a packet's return code. I am also working on looking up error codes on the internet as part of the combined expert values. Trying to lookup a incomplete error code via the internet is a nightmare.
Note that each NCP may have it's own definition of the 0x89xx return value. For example the 0x89ff return value has 19 different definitions. The ncp2222.py file does it's best at mapping each NCP return value to the correct definition.
Also note that the Novell return values for NCP are always referred as the Hex value. Other applications like NDS will be referred to by both their Hex value and the compilation of the decimal value. For example with NDS, 0xfffffda5 = -603. You calculate the decimal equivalent with the following algorithm, 0x10000 - 0xfda5 = 0x25b or 603 decimal. This is the same calculation used by AFP and other protocols.
Greg
>>> gharris@xxxxxxxxx 10/20/2005 9:46:38 AM >>>
Greg Morris wrote: > Yes, this is intentional. All NetWare NCP return values from the server > are 0x89xx error codes. Instead of forcing people to know this when > attempting to lookup Novell return values, I decided to just display the > complete/correct code instead of just the value in the packet. You can > refer to the following site for more information... > http://www.novell.com/documentation/nwec/index.htmlSo the decimal value is the completion code sent over the wire, and the hex code is the value as returned from some API (with the NW client taking the code from over the wire and ORing it with 0x8900)? _______________________________________________ Ethereal-dev mailing list Ethereal-dev@xxxxxxxxxxxx http://www.ethereal.com/mailman/listinfo/ethereal-dev
|