comparison libpurple/protocols/oscar/oscar.h @ 25211:ea70a446dde4

First pass at adding SSL connections to OSCAR. Both AIM and ICQ can connect. Three FLAP servers seem to dislike SSL: (15:39:46) nss: Handshake failed (-5961) (15:39:46) oscar: unable to connect to FLAP server of type 0x0018 (15:39:46) nss: Handshake failed (-5961) (15:39:46) oscar: unable to connect to FLAP server of type 0x000d (15:39:46) nss: Handshake failed (-5961) (15:39:46) oscar: unable to connect to FLAP server of type 0x0010 As a consequence, neither buddy icons nor chats work currently.
author Paul Aurich <paul@darkrain42.org>
date Wed, 10 Dec 2008 23:41:28 +0000
parents 531922f4ea2a
children d3f47707e260
comparison
equal deleted inserted replaced
24678:2f84f888d3db 25211:ea70a446dde4
32 #include "circbuffer.h" 32 #include "circbuffer.h"
33 #include "debug.h" 33 #include "debug.h"
34 #include "eventloop.h" 34 #include "eventloop.h"
35 #include "internal.h" 35 #include "internal.h"
36 #include "proxy.h" 36 #include "proxy.h"
37 #include "sslconn.h"
37 38
38 #include <stdio.h> 39 #include <stdio.h>
39 #include <string.h> 40 #include <string.h>
40 #include <fcntl.h> 41 #include <fcntl.h>
41 #include <sys/types.h> 42 #include <sys/types.h>
416 guint16 cookielen; 417 guint16 cookielen;
417 guint8 *cookie; 418 guint8 *cookie;
418 gpointer new_conn_data; 419 gpointer new_conn_data;
419 420
420 int fd; 421 int fd;
422 PurpleSslConnection *gsc;
421 guint8 header[6]; 423 guint8 header[6];
422 gssize header_received; 424 gssize header_received;
423 FlapFrame buffer_incoming; 425 FlapFrame buffer_incoming;
424 PurpleCircBuffer *buffer_outgoing; 426 PurpleCircBuffer *buffer_outgoing;
425 guint watcher_incoming; 427 guint watcher_incoming;
473 475
474 GSList *oscar_chats; 476 GSList *oscar_chats;
475 GHashTable *buddyinfo; 477 GHashTable *buddyinfo;
476 GSList *requesticon; 478 GSList *requesticon;
477 479
480 gboolean use_ssl;
478 gboolean icq; 481 gboolean icq;
479 guint getblisttimer; 482 guint getblisttimer;
480 483
481 struct { 484 struct {
482 guint maxwatchers; /* max users who can watch you */ 485 guint maxwatchers; /* max users who can watch you */
613 void flap_connection_schedule_destroy(FlapConnection *conn, OscarDisconnectReason reason, const gchar *error_message); 616 void flap_connection_schedule_destroy(FlapConnection *conn, OscarDisconnectReason reason, const gchar *error_message);
614 FlapConnection *flap_connection_findbygroup(OscarData *od, guint16 group); 617 FlapConnection *flap_connection_findbygroup(OscarData *od, guint16 group);
615 FlapConnection *flap_connection_getbytype(OscarData *, int type); 618 FlapConnection *flap_connection_getbytype(OscarData *, int type);
616 FlapConnection *flap_connection_getbytype_all(OscarData *, int type); 619 FlapConnection *flap_connection_getbytype_all(OscarData *, int type);
617 void flap_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond); 620 void flap_connection_recv_cb(gpointer data, gint source, PurpleInputCondition cond);
621 void flap_connection_recv_cb_ssl(gpointer data, PurpleSslConnection *gsc, PurpleInputCondition cond);
622
618 void flap_connection_send(FlapConnection *conn, FlapFrame *frame); 623 void flap_connection_send(FlapConnection *conn, FlapFrame *frame);
619 void flap_connection_send_version(OscarData *od, FlapConnection *conn); 624 void flap_connection_send_version(OscarData *od, FlapConnection *conn);
620 void flap_connection_send_version_with_cookie(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy); 625 void flap_connection_send_version_with_cookie(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy);
621 void flap_connection_send_snac(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data); 626 void flap_connection_send_snac(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data);
622 void flap_connection_send_snac_with_priority(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data, gboolean high_priority); 627 void flap_connection_send_snac_with_priority(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data, gboolean high_priority);