Jabber WindowGram Client (JWGC)

Introduction Screenshots Installation Downloads
Documentation Browse Source Resources Project Site

Stable Version
-none-

Latest Version
beta5



Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

jpacket.c File Reference

#include "libjabber.h"
#include "libxode.h"

Go to the source code of this file.

Functions

jabpacket jabpacket_new (xode x)
jabpacket jabpacket_reset (jabpacket p)
int jabpacket_subtype (jabpacket p)


Function Documentation

jabpacket jabpacket_new xode  x  ) 
 

Definition at line 48 of file jpacket.c.

References _jabpacket, jabpacket, jabpacket_reset(), jabpacket_struct::x, xode, xode_get_pool(), and xode_pool_malloc().

00049 {
00050         jabpacket p;
00051 
00052         if (x == NULL)
00053                 return NULL;
00054 
00055         p = xode_pool_malloc(xode_get_pool(x), sizeof(_jabpacket));
00056         p->x = x;
00057 
00058         return jabpacket_reset(p);
00059 }

jabpacket jabpacket_reset jabpacket  p  ) 
 

Definition at line 62 of file jpacket.c.

References _jabpacket, jabpacket_struct::from, jabpacket_struct::iq, jabpacket_struct::iqns, jabpacket, jabpacket_subtype(), jid_new(), jabpacket_struct::p, jabpacket_struct::subtype, jabpacket_struct::to, jabpacket_struct::type, jabpacket_struct::x, xode, xode_get_attrib(), xode_get_name(), xode_get_pool(), and xode_get_tag().

Referenced by jab_on_packet_handler(), and jabpacket_new().

00063 {
00064         char *val;
00065         xode x;
00066 
00067         x = p->x;
00068         memset(p, 0, sizeof(_jabpacket));
00069         p->x = x;
00070         p->p = xode_get_pool(x);
00071 
00072         if (strncmp(xode_get_name(x), "message", 7) == 0) {
00073                 p->type = JABPACKET_MESSAGE;
00074         }
00075         else if (strncmp(xode_get_name(x), "presence", 8) == 0) {
00076                 p->type = JABPACKET_PRESENCE;
00077         }
00078         else if (strncmp(xode_get_name(x), "iq", 2) == 0) {
00079                 p->type = JABPACKET_IQ;
00080                 p->iq = xode_get_tag(x, "?xmlns");
00081                 p->iqns = xode_get_attrib(p->iq, "xmlns");
00082         }
00083 
00084         val = xode_get_attrib(x, "to");
00085         if (val != NULL)
00086                 if ((p->to = jid_new(p->p, val)) == NULL)
00087                         p->type = JABPACKET_UNKNOWN;
00088         val = xode_get_attrib(x, "from");
00089         if (val != NULL)
00090                 if ((p->from = jid_new(p->p, val)) == NULL)
00091                         p->type = JABPACKET_UNKNOWN;
00092 
00093         p->subtype = JABPACKET__UNKNOWN;
00094         p->subtype = jabpacket_subtype(p);
00095 
00096         return p;
00097 }

int jabpacket_subtype jabpacket  p  ) 
 

Definition at line 101 of file jpacket.c.

References j_strcmp(), jabpacket, JABPACKET_IQ, JABPACKET_MESSAGE, JABPACKET_PRESENCE, jabpacket_struct::subtype, jabpacket_struct::type, jabpacket_struct::x, and xode_get_attrib().

Referenced by jabpacket_reset().

00102 {
00103         char *type;
00104         int ret = p->subtype;
00105 
00106         if (ret != JABPACKET__UNKNOWN)
00107                 return ret;
00108 
00109         ret = JABPACKET__NONE;
00110         type = xode_get_attrib(p->x, "type");
00111         if (j_strcmp(type, "error") == 0)
00112                 ret = JABPACKET__ERROR;
00113         else
00114                 switch (p->type) {
00115                         case JABPACKET_MESSAGE:
00116                                 if (j_strcmp(type, "chat") == 0)
00117                                         ret = JABPACKET__CHAT;
00118                                 else if (j_strcmp(type, "groupchat") == 0)
00119                                         ret = JABPACKET__GROUPCHAT;
00120                                 else if (j_strcmp(type, "headline") == 0)
00121                                         ret = JABPACKET__HEADLINE;
00122                                 else if (j_strcmp(type, "internal") == 0)
00123                                         ret = JABPACKET__INTERNAL;
00124                                 else
00125                                         ret = JABPACKET__UNKNOWN;
00126                                 break;
00127 
00128                         case JABPACKET_PRESENCE:
00129                                 if (type == NULL)
00130                                         ret = JABPACKET__AVAILABLE;
00131                                 else if (j_strcmp(type, "unavailable") == 0)
00132                                         ret = JABPACKET__UNAVAILABLE;
00133                                 else if (j_strcmp(type, "probe") == 0)
00134                                         ret = JABPACKET__PROBE;
00135                                 else if (j_strcmp(type, "error") == 0)
00136                                         ret = JABPACKET__ERROR;
00137                                 else if (j_strcmp(type, "invisible") == 0)
00138                                         ret = JABPACKET__INVISIBLE;
00139                                 else if (j_strcmp(type, "available") == 0)
00140                                         ret = JABPACKET__AVAILABLE;
00141                                 else if (j_strcmp(type, "online") == 0)
00142                                         ret = JABPACKET__AVAILABLE;
00143                                 else if (j_strcmp(type, "subscribe") == 0)
00144                                         ret = JABPACKET__SUBSCRIBE;
00145                                 else if (j_strcmp(type, "subscribed") == 0)
00146                                         ret = JABPACKET__SUBSCRIBED;
00147                                 else if (j_strcmp(type, "unsubscribe") == 0)
00148                                         ret = JABPACKET__UNSUBSCRIBE;
00149                                 else if (j_strcmp(type, "unsubscribed") == 0)
00150                                         ret = JABPACKET__UNSUBSCRIBED;
00151                                 else
00152                                         ret = JABPACKET__UNKNOWN;
00153                                 break;
00154 
00155                         case JABPACKET_IQ:
00156                                 if (j_strcmp(type, "get") == 0)
00157                                         ret = JABPACKET__GET;
00158                                 else if (j_strcmp(type, "set") == 0)
00159                                         ret = JABPACKET__SET;
00160                                 else if (j_strcmp(type, "result") == 0)
00161                                         ret = JABPACKET__RESULT;
00162                                 else
00163                                         ret = JABPACKET__UNKNOWN;
00164                                 break;
00165                 }
00166 
00167         return ret;
00168 }



Last updated at Tue Dec 18 21:07:42 PST 2007. This site and project hosted by...SourceForge.net Logo

Source Perspective by Fisheye