diff --git a/src/error.c b/src/error.c index 517fc7d671a82930fa3fb22216168ed39da09161..bf52817b66187598f656e5834b3fa55dd21d53ef 100644 --- a/src/error.c +++ b/src/error.c @@ -19,7 +19,7 @@ #include "module_support.h" #include "threads.h" -RCSID("$Id: error.c,v 1.33 1999/04/15 19:12:49 hubbe Exp $"); +RCSID("$Id: error.c,v 1.34 1999/04/17 13:47:16 grubba Exp $"); #undef ATTRIBUTE #define ATTRIBUTE(X) @@ -479,6 +479,18 @@ void resource_error( ERROR_DONE(generic); } +void permission_error( + char *func, + struct svalue *base_sp, int args, + char *permission_type, + char *desc, ...) ATTRIBUTE((noreturn, format(printf, 2, 3))) +{ + INIT_ERROR(permission); + ERROR_STRUCT(permission,o)->permission_type= + make_shared_string(permission_type); + ERROR_DONE(generic); +} + void init_error(void) { #define ERR_SETUP diff --git a/src/errors.h b/src/errors.h index daeb904cf07fa8977135954c330e1f40891957a8..fd452f147a469073ea925e200653ebb46a9d3987 100644 --- a/src/errors.h +++ b/src/errors.h @@ -92,6 +92,10 @@ DECLARE_ERROR(resource, ERR_VAR(INT_TYPE, int, T_INT, howmuch) ) +DECLARE_ERROR(permission, + ERR_INHERIT(generic), + ERR_VAR(struct pike_string *,string,T_STRING,permission_type) +) #undef DECLARE_ERROR #undef ERR_INHERIT #undef ERR_VAR