aboutsummaryrefslogtreecommitdiffstats
path: root/protocols/msn/tables.c
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/msn/tables.c')
-rw-r--r--protocols/msn/tables.c166
1 files changed, 166 insertions, 0 deletions
diff --git a/protocols/msn/tables.c b/protocols/msn/tables.c
new file mode 100644
index 00000000..0cd80c01
--- /dev/null
+++ b/protocols/msn/tables.c
@@ -0,0 +1,166 @@
+ /********************************************************************\
+ * BitlBee -- An IRC to other IM-networks gateway *
+ * *
+ * Copyright 2002-2004 Wilmer van der Gaast and others *
+ \********************************************************************/
+
+/* MSN module - Some tables with useful data */
+
+/*
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License with
+ the Debian GNU/Linux distribution in /usr/share/common-licenses/GPL;
+ if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+ Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include "nogaim.h"
+#include "msn.h"
+
+struct msn_away_state msn_away_state_list[] =
+{
+ { 0, "NLN", "Available" },
+ { 1, "BSY", "Busy" },
+ { 3, "IDL", "Idle" },
+ { 5, "BRB", "Be Right Back" },
+ { 7, "AWY", "Away" },
+ { 9, "PHN", "On the Phone" },
+ { 11, "LUN", "Out to Lunch" },
+ { 13, "HDN", "Hidden" },
+ { -1, "", "" }
+};
+
+struct msn_away_state *msn_away_state_by_number( int number )
+{
+ int i;
+
+ for( i = 0; msn_away_state_list[i].number > -1; i ++ )
+ if( msn_away_state_list[i].number == number )
+ return( msn_away_state_list + i );
+
+ return( NULL );
+}
+
+struct msn_away_state *msn_away_state_by_code( char *code )
+{
+ int i;
+
+ for( i = 0; msn_away_state_list[i].number > -1; i ++ )
+ if( g_strcasecmp( msn_away_state_list[i].code, code ) == 0 )
+ return( msn_away_state_list + i );
+
+ return( NULL );
+}
+
+struct msn_away_state *msn_away_state_by_name( char *name )
+{
+ int i;
+
+ for( i = 0; msn_away_state_list[i].number > -1; i ++ )
+ if( g_strcasecmp( msn_away_state_list[i].name, name ) == 0 )
+ return( msn_away_state_list + i );
+
+ return( NULL );
+}
+
+struct msn_status_code msn_status_code_list[] =
+{
+ { 200, "Invalid syntax", 0 },
+ { 201, "Invalid parameter", 0 },
+ { 205, "Invalid (non-existent) handle", 0 },
+ { 206, "Domain name missing", 0 },
+ { 207, "Already logged in", 0 },
+ { 208, "Invalid handle", 0 },
+ { 209, "Forbidden nickname", 0 },
+ { 210, "Buddy list too long", 0 },
+ { 215, "Handle is already in list", 0 },
+ { 216, "Handle is not in list", 0 },
+ { 217, "Person is off-line or non-existent", 0 },
+ { 218, "Already in that mode", 0 },
+ { 219, "Handle is already in opposite list", 0 },
+ { 223, "Too many groups", 0 },
+ { 224, "Invalid group or already in list", 0 },
+ { 225, "Handle is not in that group", 0 },
+ { 229, "Group name too long", 0 },
+ { 230, "Cannot remove that group", 0 },
+ { 231, "Invalid group", 0 },
+ { 280, "Switchboard failed", STATUS_SB_FATAL },
+ { 281, "Transfer to switchboard failed", 0 },
+
+ { 300, "Required field missing", 0 },
+ { 302, "Not logged in", 0 },
+
+ { 500, "Internal server error/Account banned", STATUS_FATAL },
+ { 501, "Database server error", STATUS_FATAL },
+ { 502, "Command disabled", 0 },
+ { 510, "File operation failed", STATUS_FATAL },
+ { 520, "Memory allocation failed", STATUS_FATAL },
+ { 540, "Challenge response invalid", STATUS_FATAL },
+
+ { 600, "Server is busy", STATUS_FATAL },
+ { 601, "Server is unavailable", STATUS_FATAL },
+ { 602, "Peer nameserver is down", STATUS_FATAL },
+ { 603, "Database connection failed", STATUS_FATAL },
+ { 604, "Server is going down", STATUS_FATAL },
+ { 605, "Server is unavailable", STATUS_FATAL },
+
+ { 700, "Could not create connection", STATUS_FATAL },
+ { 710, "Invalid CVR parameters", STATUS_FATAL },
+ { 711, "Write is blocking", STATUS_FATAL },
+ { 712, "Session is overloaded", STATUS_FATAL },
+ { 713, "Calling too rapidly", 0 },
+ { 714, "Too many sessions", STATUS_FATAL },
+ { 715, "Not expected/Invalid argument/action", 0 },
+ { 717, "Bad friend file", STATUS_FATAL },
+ { 731, "Not expected/Invalid argument", 0 },
+
+ { 800, "Changing too rapidly", 0 },
+
+ { 910, "Server is busy", STATUS_FATAL },
+ { 911, "Authentication failed", STATUS_FATAL },
+ { 912, "Server is busy", STATUS_FATAL },
+ { 913, "Not allowed when hiding", 0 },
+ { 914, "Server is unavailable", STATUS_FATAL },
+ { 915, "Server is unavailable", STATUS_FATAL },
+ { 916, "Server is unavailable", STATUS_FATAL },
+ { 917, "Authentication failed", STATUS_FATAL },
+ { 918, "Server is busy", STATUS_FATAL },
+ { 919, "Server is busy", STATUS_FATAL },
+ { 920, "Not accepting new principals", 0 }, /* When a sb is full? */
+ { 922, "Server is busy", STATUS_FATAL },
+ { 923, "Kids Passport without parental consent", STATUS_FATAL },
+ { 924, "Passport account not yet verified", STATUS_FATAL },
+ { 928, "Bad ticket", STATUS_FATAL },
+ { -1, NULL, 0 }
+};
+
+struct msn_status_code *msn_status_by_number( int number )
+{
+ static struct msn_status_code *unknown = NULL;
+ int i;
+
+ for( i = 0; msn_status_code_list[i].number >= 0; i ++ )
+ if( msn_status_code_list[i].number == number )
+ return( msn_status_code_list + i );
+
+ if( unknown == NULL )
+ {
+ unknown = g_new0( struct msn_status_code, 1 );
+ unknown->text = g_new0( char, 128 );
+ }
+
+ unknown->number = number;
+ unknown->flags = 0;
+ g_snprintf( unknown->text, 128, "Unknown error (%d)", number );
+
+ return( unknown );
+}