# HG changeset patch # User Mikael Berthe # Date 1125158438 -7200 # Node ID 79af85f08c28abd38d92f3c17bff31c869adba89 # Parent a9dd91e08eb3cb21033b2448d12d2745fdd4c3a7 Display server error messages to the user diff -r a9dd91e08eb3 -r 79af85f08c28 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Sat Aug 27 15:38:55 2005 +0200 +++ b/mcabber/src/jabglue.c Sat Aug 27 18:00:38 2005 +0200 @@ -792,7 +792,8 @@ } } else if (!strcmp(type, "set")) { } else if (!strcmp(type, "error")) { - char *name=NULL, *desc=NULL; + char *name=NULL, *desc; + char *text=NULL; int code = 0; x = xmlnode_get_tag(packet->x, "error"); @@ -800,46 +801,54 @@ p = xmlnode_get_attrib(x, "id"); if (p) name = p; p = xmlnode_get_tag_data(packet->x, "error"); if (p) desc = p; -#if 0 + // Sometimes there is a text message + x = xmlnode_get_tag(x, "text"); + p = xmlnode_get_data(x); if (p) text = p; + switch(code) { - case 401: /* Unauthorized */ - case 302: /* Redirect */ - case 400: /* Bad request */ - case 402: /* Payment Required */ - case 403: /* Forbidden */ - case 404: /* Not Found */ - case 405: /* Not Allowed */ - case 406: /* Not Acceptable */ - case 407: /* Registration Required */ - case 408: /* Request Timeout */ - case 409: /* Conflict */ - case 500: /* Internal Server Error */ - case 501: /* Not Implemented */ - case 502: /* Remote Server Error */ - case 503: /* Service Unavailable */ - case 504: /* Remote Server Timeout */ + case 401: desc = "Unauthorized"; + break; + case 302: desc = "Redirect"; + break; + case 400: desc = "Bad request"; + break; + case 402: desc = "Payment Required"; + break; + case 403: desc = "Forbidden"; + break; + case 404: desc = "Not Found"; + break; + case 405: desc = "Not Allowed"; + break; + case 406: desc = "Not Acceptable"; + break; + case 407: desc = "Registration Required"; + break; + case 408: desc = "Request Timeout"; + break; + case 409: desc = "Conflict"; + break; + case 500: desc = "Internal Server Error"; + break; + case 501: desc = "Not Implemented"; + break; + case 502: desc = "Remote Server Error"; + break; + case 503: desc = "Service Unavailable"; + break; + case 504: desc = "Remote Server Timeout"; + break; default: - /* - if (!regmode) { - face.log(desc.empty() ? - _("+ [jab] error %d") : - _("+ [jab] error %d: %s"), - code, desc.c_str()); + desc = NULL; + } - if (!jhook.flogged && code != 501) { - close(jc->fd); - jc->fd = -1; - } + scr_LogPrint(LPRINT_LOGNORM, "Error code from server: %d %s", + code, (desc ? desc : "")); + if (text) + scr_LogPrint(LPRINT_LOGNORM, "Server message: %s", text); - } else { - jhook.regerr = desc; - - } - */ - } -#endif - scr_LogPrint(LPRINT_LOGNORM, "Error code from server (%d)", code); - + if (name) + scr_LogPrint(LPRINT_DEBUG, "Error id: %s", name); } break;