12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* $Id: error.c,v 1.2 2001/04/29 17:35:17 kilobug Exp $ */
- #include "net_private.h"
- static net_error_hdlr_t *gl_net_error_handler = net_error_abort;
- static void *gl_net_error_data = NULL;
- const char *net_type_name(net_type_t t)
- {
- switch (t)
- {
- case net_type_str:
- return "string";
- case net_type_int:
- return "integer";
- case net_type_float:
- return "float";
- case net_type_char:
- return "char";
- case net_type_none:
- return "(none)";
- default:
- return "(unkown)";
- }
- }
- void net_set_error_handler(net_error_hdlr_t *hdlr, void *data)
- {
- if (hdlr != NULL)
- gl_net_error_handler = hdlr;
- else
- gl_net_error_handler = net_error_ignore;
- gl_net_error_data = data;
- }
- void net_error_abort(net_type_t get, net_type_t wanted, void *data)
- {
- fprintf(stderr,
- "Fatal protocol error (was %s, excepted %s). Aborting.\n",
- net_type_name(get), net_type_name(wanted));
- exit(2);
- }
- void net_error_ignore(net_type_t get, net_type_t wanted, void *data)
- {
- }
- void net_error(net_type_t get, net_type_t wanted)
- {
- #ifdef __DEBUG_NETLIB__
- fprintf(stderr, "Type error: got %#.2x (%s), wanted %#.2x (%s)\n",
- get, net_type_name(get), wanted, net_type_name(wanted));
- #endif
- gl_net_error_handler(get, wanted, gl_net_error_data);
- }
|