src/protocols/sametime/meanwhile/mw_message.h

changeset 12496
788b20ccec91
parent 12495
4b2c27ae504a
child 12497
a17568773be3
--- a/src/protocols/sametime/meanwhile/mw_message.h	Fri Dec 16 03:34:01 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-
-/*
-  Meanwhile - Unofficial Lotus Sametime Community Client Library
-  Copyright (C) 2004  Christopher (siege) O'Brien
-  
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Library General Public
-  License as published by the Free Software Foundation; either
-  version 2 of the License, or (at your option) any later version.
-  
-  This library 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
-  Library General Public License for more details.
-  
-  You should have received a copy of the GNU Library General Public
-  License along with this library; if not, write to the Free
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#ifndef _MW_MESSAGE_H
-#define _MW_MESSAGE_H
-
-
-#include <glib/glist.h>
-#include "mw_common.h"
-
-
-/** Cast a pointer to a message subtype (eg, mwMsgHandshake,
-    mwMsgAdmin) into a pointer to a mwMessage */
-#define MW_MESSAGE(msg) (&msg->head)
-
-
-/** Indicates the type of a message. */
-enum mwMessageType {
-  mwMessage_HANDSHAKE         = 0x0000,  /**< mwMsgHandshake */
-  mwMessage_HANDSHAKE_ACK     = 0x8000,  /**< mwMsgHandshakeAck */
-  mwMessage_LOGIN             = 0x0001,  /**< mwMsgLogin */
-  mwMessage_LOGIN_ACK         = 0x8001,  /**< mwMsgLoginAck */
-  mwMessage_LOGIN_REDIRECT    = 0x0018,  /**< mwMsgLoginRedirect */
-  mwMessage_LOGIN_CONTINUE    = 0x0016,  /**< mwMsgLoginContinue */
-
-  mwMessage_CHANNEL_CREATE    = 0x0002,  /**< mwMsgChannelCreate */
-  mwMessage_CHANNEL_DESTROY   = 0x0003,  /**< mwMsgChannelDestroy */
-  mwMessage_CHANNEL_SEND      = 0x0004,  /**< mwMsgChannelSend */
-  mwMessage_CHANNEL_ACCEPT    = 0x0006,  /**< mwMsgChannelAccept */
-
-  mwMessage_SET_USER_STATUS   = 0x0009,  /**< mwMsgSetUserStatus */
-  mwMessage_SET_PRIVACY_LIST  = 0x000b,  /**< mwMsgSetPrivacyList */
-  mwMessage_SENSE_SERVICE     = 0x0011,  /**< mwMsgSenseService */
-  mwMessage_ADMIN             = 0x0019,  /**< mwMsgAdmin */
-  mwMessage_ANNOUNCE          = 0x0022,  /**< mwMsgAnnounce */
-};
-
-
-enum mwMessageOption {
-  mwMessageOption_ENCRYPT      = 0x4000,  /**< message data is encrypted */
-  mwMessageOption_HAS_ATTRIBS  = 0x8000,  /**< message has attributes */
-};
-
-
-/** @see mwMessageOption */
-#define MW_MESSAGE_HAS_OPTION(msg, opt) \
-  ((msg)->options & (opt))
-
-
-struct mwMessage {
-  guint16 type;     /**< @see mwMessageType */
-  guint16 options;  /**< @see mwMessageOption */
-  guint32 channel;  /**< ID of channel message is intended for */
-  struct mwOpaque attribs;  /**< optional message attributes */
-};
-
-
-
-/** Allocate and initialize a new message of the specified type */
-struct mwMessage *mwMessage_new(enum mwMessageType type);
-
-
-/** build a message from its representation */
-struct mwMessage *mwMessage_get(struct mwGetBuffer *b);
-
-
-void mwMessage_put(struct mwPutBuffer *b, struct mwMessage *msg);
-
-
-void mwMessage_free(struct mwMessage *msg);
-
-
-/* 8.4 Messages */
-/* 8.4.1 Basic Community Messages */
-/* 8.4.1.1 Handshake */
-
-struct mwMsgHandshake {
-  struct mwMessage head;
-  guint16 major;          /**< client's major version number */
-  guint16 minor;          /**< client's minor version number */
-  guint32 srvrcalc_addr;  /**< 0.0.0.0 */
-  guint16 login_type;     /**< @see mwLoginType */
-  guint32 loclcalc_addr;  /**< local public IP */
-  guint16 unknown_a;      /**< normally 0x0100 */
-  guint32 unknown_b;      /**< normally 0x00000000 */
-  char *local_host;       /**< name of client host */
-};
-
-
-/* 8.4.1.2 HandshakeAck */
-
-struct mwMsgHandshakeAck {
-  struct mwMessage head;
-  guint16 major;          /**< server's major version number */
-  guint16 minor;          /**< server's minor version number */
-  guint32 srvrcalc_addr;  /**< server-calculated address */
-  guint32 magic;          /**< four bytes of something */
-  struct mwOpaque data;   /**< server's DH public key for auth */
-};
-
-
-/* 8.3.7 Authentication Types */
-
-enum mwAuthType {
-  mwAuthType_PLAIN    = 0x0000,
-  mwAuthType_TOKEN    = 0x0001,
-  mwAuthType_ENCRYPT  = 0x0002, /**< @todo remove for 1.0 */
-  mwAuthType_RC2_40   = 0x0002,
-  mwAuthType_RC2_128  = 0x0004,
-};
-
-
-/* 8.4.1.3 Login */
-
-struct mwMsgLogin {
-  struct mwMessage head;
-  guint16 login_type;         /**< @see mwLoginType */
-  char *name;                 /**< user identification */
-  guint16 auth_type;          /**< @see mwAuthType */
-  struct mwOpaque auth_data;  /**< authentication data */
-};
-
-
-/* 8.4.1.4 LoginAck */
-
-struct mwMsgLoginAck {
-  struct mwMessage head;
-  struct mwLoginInfo login;
-  struct mwPrivacyInfo privacy;
-  struct mwUserStatus status;
-};
-
-
-/* 8.4.1.5 LoginCont */
-
-struct mwMsgLoginContinue {
-  struct mwMessage head;
-};
-
-
-/* 8.4.1.6 AuthPassed */
-
-struct mwMsgLoginRedirect {
-  struct mwMessage head;
-  char *host;
-  char *server_id;
-};
-
-
-/* 8.4.1.7 CreateCnl */
-
-/** an offer of encryption items */
-struct mwEncryptOffer {
-  guint16 mode;   /**< encryption mode */
-  GList *items;   /**< list of mwEncryptItem offered */
-  guint16 extra;  /**< encryption mode again? */
-  gboolean flag;  /**< unknown flag */
-};
-
-
-struct mwMsgChannelCreate {
-  struct mwMessage head;
-  guint32 reserved;         /**< unknown reserved data */
-  guint32 channel;          /**< intended ID for new channel */
-  struct mwIdBlock target;  /**< User ID. for service use */
-  guint32 service;          /**< ID for the target service */
-  guint32 proto_type;       /**< protocol type for the service */
-  guint32 proto_ver;        /**< protocol version for the service */
-  guint32 options;          /**< options */
-  struct mwOpaque addtl;    /**< service-specific additional data */
-  gboolean creator_flag;    /**< indicate presence of creator information */
-  struct mwLoginInfo creator;
-  struct mwEncryptOffer encrypt;
-};
-
-
-/* 8.4.1.8 AcceptCnl */
-
-/** a selected encryption item from those offered */
-struct mwEncryptAccept {
-  guint16 mode;                /**< encryption mode */
-  struct mwEncryptItem *item;  /**< chosen mwEncryptItem (optional) */
-  guint16 extra;               /**< encryption mode again? */
-  gboolean flag;               /**< unknown flag */
-};
-
-
-struct mwMsgChannelAccept {
-  struct mwMessage head;
-  guint32 service;         /**< ID for the channel's service */
-  guint32 proto_type;      /**< protocol type for the service */
-  guint32 proto_ver;       /**< protocol version for the service */
-  struct mwOpaque addtl;   /**< service-specific additional data */
-  gboolean acceptor_flag;  /**< indicate presence of acceptor information */
-  struct mwLoginInfo acceptor;
-  struct mwEncryptAccept encrypt;
-};
-
-
-/* 8.4.1.9 SendOnCnl */
-
-struct mwMsgChannelSend {
-  struct mwMessage head;
-
-  /** message type. each service defines its own send types. Type IDs
-      are only necessarily unique within a given service. */
-  guint16 type;
-
-  /** protocol data to be interpreted by the handling service */
-  struct mwOpaque data;
-};
-
-
-/* 8.4.1.10 DestroyCnl */
-
-struct mwMsgChannelDestroy {
-  struct mwMessage head;
-  guint32 reason;        /**< reason for closing the channel. */
-  struct mwOpaque data;  /**< additional information */
-};
-
-
-/* 8.4.1.11 SetUserStatus */
-
-struct mwMsgSetUserStatus {
-  struct mwMessage head;
-  struct mwUserStatus status;
-};
-
-
-/* 8.4.1.12 SetPrivacyList */
-
-struct mwMsgSetPrivacyList {
-  struct mwMessage head;
-  struct mwPrivacyInfo privacy;
-};
-
-
-/* Sense Service */
-
-/** Sent to the server to request the presense of a service by its
-    ID. Sent to the client to indicate the presense of such a
-    service */
-struct mwMsgSenseService {
-  struct mwMessage head;
-  guint32 service;
-};
-
-
-/* Admin */
-
-/** An administrative broadcast message */
-struct mwMsgAdmin {
-  struct mwMessage head;
-  char *text;
-};
-
-
-/* Announce */
-
-/** An announcement between users */
-struct mwMsgAnnounce {
-  struct mwMessage head;
-  gboolean sender_present;    /**< indicates presence of sender data */
-  struct mwLoginInfo sender;  /**< who sent the announcement */
-  guint16 unknown_a;          /**< unknown A. Usually 0x00 */
-  gboolean may_reply;         /**< replies allowed */
-  char *text;                 /**< text of message */
-
-  /** list of (char *) indicating recipients. Recipient users are in
-      the format "@U username" and recipient NAB groups are in the
-      format "@G groupname" */
-  GList *recipients;
-};
-
-
-#endif
-

mercurial