comparison mcabber/src/jabglue.c @ 407:79af85f08c28

Display server error messages to the user
author Mikael Berthe <mikael@lilotux.net>
date Sat, 27 Aug 2005 18:00:38 +0200
parents a9dd91e08eb3
children 73433860665c
comparison
equal deleted inserted replaced
406:a9dd91e08eb3 407:79af85f08c28
790 790
791 } 791 }
792 } 792 }
793 } else if (!strcmp(type, "set")) { 793 } else if (!strcmp(type, "set")) {
794 } else if (!strcmp(type, "error")) { 794 } else if (!strcmp(type, "error")) {
795 char *name=NULL, *desc=NULL; 795 char *name=NULL, *desc;
796 char *text=NULL;
796 int code = 0; 797 int code = 0;
797 798
798 x = xmlnode_get_tag(packet->x, "error"); 799 x = xmlnode_get_tag(packet->x, "error");
799 p = xmlnode_get_attrib(x, "code"); if (p) code = atoi(p); 800 p = xmlnode_get_attrib(x, "code"); if (p) code = atoi(p);
800 p = xmlnode_get_attrib(x, "id"); if (p) name = p; 801 p = xmlnode_get_attrib(x, "id"); if (p) name = p;
801 p = xmlnode_get_tag_data(packet->x, "error"); if (p) desc = p; 802 p = xmlnode_get_tag_data(packet->x, "error"); if (p) desc = p;
802 803
803 #if 0 804 // Sometimes there is a text message
805 x = xmlnode_get_tag(x, "text");
806 p = xmlnode_get_data(x); if (p) text = p;
807
804 switch(code) { 808 switch(code) {
805 case 401: /* Unauthorized */ 809 case 401: desc = "Unauthorized";
806 case 302: /* Redirect */ 810 break;
807 case 400: /* Bad request */ 811 case 302: desc = "Redirect";
808 case 402: /* Payment Required */ 812 break;
809 case 403: /* Forbidden */ 813 case 400: desc = "Bad request";
810 case 404: /* Not Found */ 814 break;
811 case 405: /* Not Allowed */ 815 case 402: desc = "Payment Required";
812 case 406: /* Not Acceptable */ 816 break;
813 case 407: /* Registration Required */ 817 case 403: desc = "Forbidden";
814 case 408: /* Request Timeout */ 818 break;
815 case 409: /* Conflict */ 819 case 404: desc = "Not Found";
816 case 500: /* Internal Server Error */ 820 break;
817 case 501: /* Not Implemented */ 821 case 405: desc = "Not Allowed";
818 case 502: /* Remote Server Error */ 822 break;
819 case 503: /* Service Unavailable */ 823 case 406: desc = "Not Acceptable";
820 case 504: /* Remote Server Timeout */ 824 break;
825 case 407: desc = "Registration Required";
826 break;
827 case 408: desc = "Request Timeout";
828 break;
829 case 409: desc = "Conflict";
830 break;
831 case 500: desc = "Internal Server Error";
832 break;
833 case 501: desc = "Not Implemented";
834 break;
835 case 502: desc = "Remote Server Error";
836 break;
837 case 503: desc = "Service Unavailable";
838 break;
839 case 504: desc = "Remote Server Timeout";
840 break;
821 default: 841 default:
822 /* 842 desc = NULL;
823 if (!regmode) {
824 face.log(desc.empty() ?
825 _("+ [jab] error %d") :
826 _("+ [jab] error %d: %s"),
827 code, desc.c_str());
828
829 if (!jhook.flogged && code != 501) {
830 close(jc->fd);
831 jc->fd = -1;
832 }
833
834 } else {
835 jhook.regerr = desc;
836
837 }
838 */
839 } 843 }
840 #endif 844
841 scr_LogPrint(LPRINT_LOGNORM, "Error code from server (%d)", code); 845 scr_LogPrint(LPRINT_LOGNORM, "Error code from server: %d %s",
842 846 code, (desc ? desc : ""));
847 if (text)
848 scr_LogPrint(LPRINT_LOGNORM, "Server message: %s", text);
849
850 if (name)
851 scr_LogPrint(LPRINT_DEBUG, "Error id: %s", name);
843 } 852 }
844 break; 853 break;
845 854
846 case JPACKET_PRESENCE: 855 case JPACKET_PRESENCE:
847 x = xmlnode_get_tag(packet->x, "show"); 856 x = xmlnode_get_tag(packet->x, "show");