|
|
|
/*
|
|
|
|
gwerror.h - Kopete Groupwise Protocol
|
|
|
|
|
|
|
|
Copyright (c) 2004-2007 Novell, Inc http://www.novell.com/linux
|
|
|
|
|
|
|
|
Kopete (c) 2002-2007 by the Kopete developers <kopete-devel@kde.org>
|
|
|
|
|
|
|
|
*************************************************************************
|
|
|
|
* *
|
|
|
|
* This library is free software; you can redistribute it and/or *
|
|
|
|
* modify it under the terms of the GNU Lesser General Public *
|
|
|
|
* License as published by the Free Software Foundation; either *
|
|
|
|
* version 2 of the License, or (at your option) any later version. *
|
|
|
|
* *
|
|
|
|
*************************************************************************
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef GW_ERROR_H
|
|
|
|
#define GW_ERROR_H
|
|
|
|
|
|
|
|
#include <tqdatetime.h>
|
|
|
|
#include <tqglobal.h>
|
|
|
|
#include <tqmap.h>
|
|
|
|
#include <tqstring.h>
|
|
|
|
|
|
|
|
typedef TQ_UINT16 NMERR_T;
|
|
|
|
#define GROUPWISE_DEBUG_GLOBAL 14190
|
|
|
|
#define GROUPWISE_DEBUG_LIBGW 14191
|
|
|
|
#define GROUPWISE_DEBUG_RAW 14192
|
|
|
|
|
|
|
|
#define BLANK_GUID "[00000000-00000000-00000000-0000-0000]"
|
|
|
|
#define CONF_GUID_END 27
|
|
|
|
|
|
|
|
//#define LIBGW_DEBUG 1
|
|
|
|
#define LIBGW_USE_KDEBUG 1
|
|
|
|
|
|
|
|
namespace GroupWise
|
|
|
|
{
|
|
|
|
enum Status { Unknown = 0,
|
|
|
|
Offline = 1,
|
|
|
|
Available = 2,
|
|
|
|
Busy = 3,
|
|
|
|
Away = 4,
|
|
|
|
AwayIdle = 5,
|
|
|
|
Invalid = 6
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Error { None = 0,
|
|
|
|
ErrorBase = 0x2000L,
|
|
|
|
BadParm,
|
|
|
|
TCPWrite,
|
|
|
|
TCPRead,
|
|
|
|
Protocol,
|
|
|
|
ServerRedirect,
|
|
|
|
ConferenceNotFound,
|
|
|
|
ConferenceNotInstantiated,
|
|
|
|
FolderExists
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Event { InvalidRecipient = 101,
|
|
|
|
UndeliverableStatus = 102,
|
|
|
|
StatusChange = 103,
|
|
|
|
ContactAdd = 104,
|
|
|
|
ConferenceClosed = 105,
|
|
|
|
ConferenceJoined = 106,
|
|
|
|
ConferenceLeft = 107,
|
|
|
|
ReceiveMessage = 108,
|
|
|
|
ReceiveFile = 109,
|
|
|
|
UserTyping = 112,
|
|
|
|
UserNotTyping = 113,
|
|
|
|
UserDisconnect = 114,
|
|
|
|
ServerDisconnect = 115,
|
|
|
|
ConferenceRename = 116,
|
|
|
|
ConferenceInvite = 117,
|
|
|
|
ConferenceInviteNotify = 118,
|
|
|
|
ConferenceReject = 119,
|
|
|
|
ReceiveAutoReply = 121,
|
|
|
|
Start = InvalidRecipient,
|
|
|
|
/* Event codes >= 122 are new in GW7 protocol */
|
|
|
|
ReceivedBroadcast = 122,
|
|
|
|
ReceivedSystemBroadcast = 123,
|
|
|
|
ConferenceAttribUpdate = 128,
|
|
|
|
ConferenceTopicChanged = 129,
|
|
|
|
ChatroomNameChanged = 130,
|
|
|
|
ConferenceRightsChanged = 131,
|
|
|
|
ConferenceRemoved = 132, /* you were kicked */
|
|
|
|
ChatOwnerChanged = 133,
|
|
|
|
Stop = ChatOwnerChanged
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
enum ConferenceFlags { Logging = 0x00000001,
|
|
|
|
Secure = 0x00000002,
|
|
|
|
Closed = 0x10000000
|
|
|
|
};
|
|
|
|
|
|
|
|
TQString errorCodeToString( int errorCode );
|
|
|
|
|
|
|
|
// helpful structs used to pass data between the client library and the application using it
|
|
|
|
class ConferenceGuid : public TQString
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ConferenceGuid();
|
|
|
|
ConferenceGuid( const TQString & string );
|
|
|
|
~ConferenceGuid();
|
|
|
|
};
|
|
|
|
|
|
|
|
bool operator==( const ConferenceGuid & g1, const ConferenceGuid & g2 );
|
|
|
|
bool operator==( const TQString & s, const ConferenceGuid & g );
|
|
|
|
bool operator==( const ConferenceGuid & g, const TQString & s );
|
|
|
|
|
|
|
|
struct ConferenceEvent
|
|
|
|
{
|
|
|
|
Event type;
|
|
|
|
ConferenceGuid guid;
|
|
|
|
TQString user;
|
|
|
|
TQDateTime timeStamp;
|
|
|
|
TQ_UINT32 flags;
|
|
|
|
TQString message;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct FolderItem
|
|
|
|
{
|
|
|
|
uint id;
|
|
|
|
uint sequence;
|
|
|
|
uint parentId;
|
|
|
|
TQString name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ContactItem
|
|
|
|
{
|
|
|
|
uint id;
|
|
|
|
uint parentId;
|
|
|
|
uint sequence;
|
|
|
|
TQString dn;
|
|
|
|
TQString displayName;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct ContactDetails
|
|
|
|
{
|
|
|
|
TQString cn,
|
|
|
|
dn,
|
|
|
|
givenName,
|
|
|
|
surname,
|
|
|
|
fullName,
|
|
|
|
awayMessage,
|
|
|
|
authAttribute;
|
|
|
|
int status;
|
|
|
|
bool archive;
|
|
|
|
TQMap< TQString, TQString > properties;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct OutgoingMessage
|
|
|
|
{
|
|
|
|
ConferenceGuid guid;
|
|
|
|
TQString message;
|
|
|
|
TQString rtfMessage;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct UserSearchQueryTerm
|
|
|
|
{
|
|
|
|
TQString field;
|
|
|
|
TQString argument;
|
|
|
|
int operation;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct CustomStatus
|
|
|
|
{
|
|
|
|
GroupWise::Status status;
|
|
|
|
TQString name;
|
|
|
|
TQString autoReply;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
// temporary typedef pending implementation
|
|
|
|
|
|
|
|
// #define NMERR_BASE 0x2000L
|
|
|
|
// #define NM_OK 0L
|
|
|
|
// #define NMERR_BAD_PARM (NMERR_BASE + 0x0001)
|
|
|
|
// #define NMERR_TCP_WRITE (NMERR_BASE + 0x0002)
|
|
|
|
// #define NMERR_TCP_READ (NMERR_BASE + 0x0003)
|
|
|
|
// #define NMERR_PROTOCOL (NMERR_BASE + 0x0004)
|
|
|
|
// #define NMERR_SERVER_REDIRECT (NMERR_BASE + 0x0005)
|
|
|
|
// #define NMERR_CONFERENCE_NOT_FOUND (NMERR_BASE + 0x0006)
|
|
|
|
// #define NMERR_CONFERENCE_NOT_INSTANTIATED (NMERR_BASE + 0x0007)
|
|
|
|
// #define NMERR_FOLDER_EXISTS (NMERR_BASE + 0x0008)
|
|
|
|
|
|
|
|
/* Errors that are returned from the server */
|
|
|
|
#define NMERR_SERVER_BASE 0xD100L
|
|
|
|
#define NMERR_ACCESS_DENIED (NMERR_SERVER_BASE + 0x0006)
|
|
|
|
#define NMERR_NOT_SUPPORTED (NMERR_SERVER_BASE + 0x000A)
|
|
|
|
#define NMERR_PASSWORD_EXPIRED (NMERR_SERVER_BASE + 0x000B)
|
|
|
|
#define NMERR_PASSWORD_INVALID (NMERR_SERVER_BASE + 0x000C)
|
|
|
|
#define NMERR_USER_NOT_FOUND (NMERR_SERVER_BASE + 0x000D)
|
|
|
|
#define NMERR_ATTRIBUTE_NOT_FOUND (NMERR_SERVER_BASE + 0x000E)
|
|
|
|
#define NMERR_USER_DISABLED (NMERR_SERVER_BASE + 0x0010)
|
|
|
|
#define NMERR_DIRECTORY_FAILURE (NMERR_SERVER_BASE + 0x0011)
|
|
|
|
#define NMERR_HOST_NOT_FOUND (NMERR_SERVER_BASE + 0x0019)
|
|
|
|
#define NMERR_ADMIN_LOCKED (NMERR_SERVER_BASE + 0x001C)
|
|
|
|
#define NMERR_DUPLICATE_PARTICIPANT (NMERR_SERVER_BASE + 0x001F)
|
|
|
|
#define NMERR_SERVER_BUSY (NMERR_SERVER_BASE + 0x0023)
|
|
|
|
#define NMERR_OBJECT_NOT_FOUND (NMERR_SERVER_BASE + 0x0024)
|
|
|
|
#define NMERR_DIRECTORY_UPDATE (NMERR_SERVER_BASE + 0x0025)
|
|
|
|
#define NMERR_DUPLICATE_FOLDER (NMERR_SERVER_BASE + 0x0026)
|
|
|
|
#define NMERR_DUPLICATE_CONTACT (NMERR_SERVER_BASE + 0x0027)
|
|
|
|
#define NMERR_USER_NOT_ALLOWED (NMERR_SERVER_BASE + 0x0028)
|
|
|
|
#define NMERR_TOO_MANY_CONTACTS (NMERR_SERVER_BASE + 0x0029)
|
|
|
|
#define NMERR_CONFERENCE_NOT_FOUND_2 (NMERR_SERVER_BASE + 0x002B)
|
|
|
|
#define NMERR_TOO_MANY_FOLDERS (NMERR_SERVER_BASE + 0x002C)
|
|
|
|
#define NMERR_SERVER_PROTOCOL (NMERR_SERVER_BASE + 0x0030)
|
|
|
|
#define NMERR_CONVERSATION_INVITE (NMERR_SERVER_BASE + 0x0035)
|
|
|
|
#define NMERR_USER_BLOCKED (NMERR_SERVER_BASE + 0x0039)
|
|
|
|
#define NMERR_MASTER_ARCHIVE_MISSING (NMERR_SERVER_BASE + 0x003A)
|
|
|
|
#define NMERR_PASSWORD_EXPIRED_2 (NMERR_SERVER_BASE + 0x0042)
|
|
|
|
#define NMERR_CREDENTIALS_MISSING (NMERR_SERVER_BASE + 0x0046)
|
|
|
|
#define NMERR_AUTHENTICATION_FAILED (NMERR_SERVER_BASE + 0x0049)
|
|
|
|
#define NMERR_EVAL_CONNECTION_LIMIT (NMERR_SERVER_BASE + 0x004A)
|
|
|
|
|
|
|
|
/* Error codes that are new in GW7 */
|
|
|
|
#define MSGPRES_ERR_UNSUPPORTED_CLIENT_VERSION (NMERR_SERVER_BASE + 0x004B) // This version of the client is not supported.
|
|
|
|
#define MSGPRES_ERR_DUPLICATE_CHAT (NMERR_SERVER_BASE + 0x0051) // A duplicate chat was found.
|
|
|
|
#define MSGPRES_ERR_CHAT_NOT_FOUND (NMERR_SERVER_BASE + 0x0052) // The chat was not found.
|
|
|
|
#define MSGPRES_ERR_INVALID_NAME (NMERR_SERVER_BASE + 0x0053) // The chat name is not valid.
|
|
|
|
#define MSGPRES_ERR_CHAT_ACTIVE (NMERR_SERVER_BASE + 0x0054) // Cannot delete an active chat.
|
|
|
|
#define MSGPRES_ERR_INSUF_CONV_RIGHTS (NMERR_SERVER_BASE + 0x0055) // Insufficient conversation rights to perform an action.
|
|
|
|
#define MSGPRES_ERR_CHAT_BUSY (NMERR_SERVER_BASE + 0x0056) // Chat is busy; try again.
|
|
|
|
#define MSGPRES_ERR_REQUEST_TOO_SOON (NMERR_SERVER_BASE + 0x0057) // Tried a request too soon after another one; try again.
|
|
|
|
#define MSGPRES_INFO_NO_LIST_CHANGE (NMERR_SERVER_BASE + 0x0058) // The chat list has not changed since the last search.
|
|
|
|
#define MSGPRES_ERR_CHAT_NOT_ACTIVE (NMERR_SERVER_BASE + 0x0059) // The chat subsystem is not active!
|
|
|
|
#define MSGPRES_ERR_INVALID_CHAT_UPDATE (NMERR_SERVER_BASE + 0x005A) // The chat update request is invalid.
|
|
|
|
#define MSGPRES_ERR_DIRECTORY_MISMATCH (NMERR_SERVER_BASE + 0x005B) // Write failed due to directory mismatch.
|
|
|
|
#define MSGPRES_ERR_RECIPIENT_TOO_OLD (NMERR_SERVER_BASE + 0x005C) // The recipient's client version is too old.
|
|
|
|
#define MSGPRES_ERR_CHAT_NO_LONGER_VALID (NMERR_SERVER_BASE + 0x005D) // The chat has been removed from the server.
|
|
|
|
|
|
|
|
/* protocol version capabilities */
|
|
|
|
#define CMSGPRES_GW_6_5 2
|
|
|
|
#define CMSGPRES_SUPPORTS_NO_DETAILS_ON_LOGIN 3
|
|
|
|
#define CMSGPRES_SUPPORTS_BROADCAST 4
|
|
|
|
#define CMSGPRES_SUPPORTS_CHAT 5
|
|
|
|
|
|
|
|
#endif
|