view mcabber/src/events.h @ 1461:8fa24a6d1a93

Improve Remote Controlling Clients The XEP recommends adding the node to the IQ response. Some clients seem not to understand the answer when it is omitted. Problem reported by Rhaamo and js (thanks to js for spotting the node issue!).
author Mikael Berthe <mikael@lilotux.net>
date Sat, 12 Apr 2008 13:35:03 +0200
parents 4a7db2870685
children a087125d8fc8
line wrap: on
line source

#ifndef __EVENTS_H__
#define __EVENTS_H__ 1

#include "jabglue.h"


#define EVS_DEFAULT_TIMEOUT 90
#define EVS_MAX_TIMEOUT     432000

#define EVS_CONTEXT_TIMEOUT 0U
#define EVS_CONTEXT_CANCEL  1U
#define EVS_CONTEXT_USER    2U

typedef enum {
  EVS_TYPE_SUBSCRIPTION = 1,
  EVS_TYPE_INVITATION = 2
} evs_type;

/* Common structure for events (evs) and IQ requests (iqs) */
typedef struct {
  char *id;
  time_t ts_create;
  time_t ts_expire;
  guint8 type;
  gpointer data;
  int (*callback)();
  xmlnode xmldata;
  char *desc;
} eviqs;

typedef struct {
  char* to;
  char* from;
  char* passwd;
  char* reason;
} event_muc_invitation;

eviqs  *evs_new(guint8 type, time_t timeout);
int     evs_del(const char *evid);
int     evs_callback(const char *evid, guint evcontext);
void    evs_check_timeout(time_t now_t);
void    evs_display_list(void);
GSList *evs_geteventslist(int forcompl);

#endif /* __EVENTS_H__ */

/* vim: set expandtab cindent cinoptions=>2\:2(0:  For Vim users... */