"Operation not supported" error code

Ken Raeburn raeburn at MIT.EDU
Wed Jun 14 14:52:44 EDT 2006


On Jun 14, 2006, at 11:34, Jeffrey Hutzelman wrote:
> EOPNOTSUPP is "Operation not supported on transport endpoint"; it  
> appears to be part of the sockets API, and so besides not really  
> being right, I doubt it is portable.

Agreed.

> My FC3 system has no ENOTSUP or anything else like that.

That's a bit surprising, given that it's part of the current POSIX  
specs.

On my RHEL4 system it's set up to be the same as EOPNOTSUPP.  I  
haven't looked at the associated error text, but since ENOTSUP is  
specified for some non-socket operations (e.g., for mprotect, "The  
implementation dose not support the combination of accesses required  
in the prot argument.", http://www.opengroup.org/onlinepubs/000095399/ 
functions/mprotect.html), the message had better not be specific to  
sockets.

> It would seem to make sense in this case to define an error code  
> for "operation not supported by plugin" or even "database operation  
> not supported".

Sure.  I had already added an error code KRB5_PLUGIN_NO_HANDLE,  
"Supplied data not handled by this plugin", for cases like a service- 
location plugin that doesn't handle a specific realm, but we could  
generalize the message a little, if no one minds using the same  
message for database types.  (And the new error-message interface  
could be used to store a message that actually talks about database  
types.)

> Note that the values of error codes are determined by the order in  
> which they appear in the .et file, and these values are not only  
> part of the Kerberos ABI, but also are frequently quoted out of  
> context.  Take care not to inadvertently change the values of  
> existing error codes.

Like I said, new ones go at the end... (Well, unless they're  
specifically added to the krb5 protocol itself, in which case they  
use one of the placeholder values in krb5_err.et.)

Ken



More information about the krbdev mailing list