/* * aim_logoff() * * Closes -ALL- open connections. * */ faim_export int aim_logoff(aim_session_t *sess) { aim_connrst(sess); /* in case we want to connect again */ return 0; }
/** * aim_session_init - Initializes a session structure * @sess: Session to initialize * @flags: Flags to use. Any of %AIM_SESS_FLAGS %OR'd together. * @debuglevel: Level of debugging output (zero is least) * * Sets up the initial values for a session. * */ faim_export void aim_session_init(aim_session_t *sess, fu32_t flags, int debuglevel) { if (!sess) return; memset(sess, 0, sizeof(aim_session_t)); aim_connrst(sess); sess->queue_outgoing = NULL; sess->queue_incoming = NULL; aim_initsnachash(sess); sess->msgcookies = NULL; sess->icq_info = NULL; sess->oft_info = NULL; sess->snacid_next = 0x00000001; sess->flags = 0; sess->debug = debuglevel; sess->debugcb = defaultdebugcb; sess->modlistv = NULL; sess->ssi.received_data = 0; sess->ssi.numitems = 0; sess->ssi.official = NULL; sess->ssi.local = NULL; sess->ssi.pending = NULL; sess->ssi.timestamp = (time_t)0; sess->ssi.waiting_for_ack = 0; sess->authinfo = NULL; sess->emailinfo = NULL; /* * Default to SNAC login unless XORLOGIN is explicitly set. */ if (!(flags & AIM_SESS_FLAGS_XORLOGIN)) sess->flags |= AIM_SESS_FLAGS_SNACLOGIN; sess->flags |= flags; /* * This must always be set. Default to the queue-based * version for back-compatibility. */ aim_tx_setenqueue(sess, AIM_TX_QUEUED, NULL); /* * Register all the modules for this session... */ aim__registermodule(sess, misc_modfirst); /* load the catch-all first */ aim__registermodule(sess, general_modfirst); aim__registermodule(sess, locate_modfirst); aim__registermodule(sess, buddylist_modfirst); aim__registermodule(sess, msg_modfirst); aim__registermodule(sess, adverts_modfirst); aim__registermodule(sess, invite_modfirst); aim__registermodule(sess, admin_modfirst); aim__registermodule(sess, popups_modfirst); aim__registermodule(sess, bos_modfirst); aim__registermodule(sess, search_modfirst); aim__registermodule(sess, stats_modfirst); aim__registermodule(sess, translate_modfirst); aim__registermodule(sess, chatnav_modfirst); aim__registermodule(sess, chat_modfirst); aim__registermodule(sess, odir_modfirst); aim__registermodule(sess, bart_modfirst); /* missing 0x11 - 0x12 */ aim__registermodule(sess, ssi_modfirst); /* missing 0x14 */ aim__registermodule(sess, icq_modfirst); /* XXX - Make sure this isn't sent for AIM */ /* missing 0x16 */ aim__registermodule(sess, auth_modfirst); aim__registermodule(sess, email_modfirst); return; }
/** * Initializes a session structure by setting the initial values * stuff in the aim_session_t struct. * * @param sess Session to initialize. * @param nonblocking Set to true if you want connections to be non-blocking. * @param debuglevel Level of debugging output (zero is least). */ faim_export void aim_session_init(aim_session_t *sess, int nonblocking, int debuglevel) { if (!sess) return; memset(sess, 0, sizeof(aim_session_t)); aim_connrst(sess); sess->queue_outgoing = NULL; sess->queue_incoming = NULL; aim_initsnachash(sess); sess->msgcookies = NULL; sess->nonblocking = nonblocking; sess->debug = debuglevel; sess->debugcb = defaultdebugcb; sess->modlistv = NULL; sess->snacid_next = 0x00000001; sess->locate.userinfo = NULL; sess->locate.torequest = NULL; sess->locate.requested = NULL; sess->locate.waiting_for_response = FALSE; sess->ssi.received_data = 0; sess->ssi.numitems = 0; sess->ssi.official = NULL; sess->ssi.local = NULL; sess->ssi.pending = NULL; sess->ssi.timestamp = (time_t)0; sess->ssi.waiting_for_ack = 0; sess->icq_info = NULL; sess->authinfo = NULL; sess->emailinfo = NULL; sess->oft_info = NULL; /* * This must always be set. Default to the queue-based * version for back-compatibility. */ aim_tx_setenqueue(sess, AIM_TX_QUEUED, NULL); /* * Register all the modules for this session... */ aim__registermodule(sess, misc_modfirst); /* load the catch-all first */ aim__registermodule(sess, service_modfirst); aim__registermodule(sess, locate_modfirst); aim__registermodule(sess, buddylist_modfirst); aim__registermodule(sess, msg_modfirst); aim__registermodule(sess, adverts_modfirst); aim__registermodule(sess, invite_modfirst); aim__registermodule(sess, admin_modfirst); aim__registermodule(sess, popups_modfirst); aim__registermodule(sess, bos_modfirst); aim__registermodule(sess, search_modfirst); aim__registermodule(sess, stats_modfirst); aim__registermodule(sess, translate_modfirst); aim__registermodule(sess, chatnav_modfirst); aim__registermodule(sess, chat_modfirst); aim__registermodule(sess, odir_modfirst); aim__registermodule(sess, bart_modfirst); /* missing 0x11 - 0x12 */ aim__registermodule(sess, ssi_modfirst); /* missing 0x14 */ aim__registermodule(sess, icq_modfirst); /* XXX - Make sure this isn't sent for AIM */ /* missing 0x16 */ aim__registermodule(sess, auth_modfirst); aim__registermodule(sess, email_modfirst); return; }
/** * aim_session_init - Initializes a session structure * @sess: Session to initialize * @flags: Flags to use. Any of %AIM_SESS_FLAGS %OR'd together. * @debuglevel: Level of debugging output (zero is least) * * Sets up the initial values for a session. * */ void aim_session_init(aim_session_t *sess, guint32 flags, int debuglevel) { if (!sess) return; memset(sess, 0, sizeof(aim_session_t)); aim_connrst(sess); sess->queue_outgoing = NULL; sess->queue_incoming = NULL; aim_initsnachash(sess); sess->msgcookies = NULL; sess->snacid_next = 0x00000001; sess->flags = 0; sess->modlistv = NULL; sess->ssi.received_data = 0; sess->ssi.waiting_for_ack = 0; sess->ssi.holding_queue = NULL; sess->ssi.revision = 0; sess->ssi.items = NULL; sess->ssi.timestamp = (time_t)0; sess->locate.userinfo = NULL; sess->locate.torequest = NULL; sess->locate.requested = NULL; sess->locate.waiting_for_response = FALSE; sess->icq_info = NULL; sess->authinfo = NULL; sess->emailinfo = NULL; sess->oft_info = NULL; /* * Default to SNAC login unless XORLOGIN is explicitly set. */ if (!(flags & AIM_SESS_FLAGS_XORLOGIN)) sess->flags |= AIM_SESS_FLAGS_SNACLOGIN; sess->flags |= flags; /* * This must always be set. Default to the queue-based * version for back-compatibility. */ aim_tx_setenqueue(sess, AIM_TX_QUEUED, NULL); /* * Register all the modules for this session... */ aim__registermodule(sess, misc_modfirst); /* load the catch-all first */ aim__registermodule(sess, general_modfirst); aim__registermodule(sess, locate_modfirst); aim__registermodule(sess, buddylist_modfirst); aim__registermodule(sess, msg_modfirst); aim__registermodule(sess, admin_modfirst); aim__registermodule(sess, bos_modfirst); aim__registermodule(sess, search_modfirst); aim__registermodule(sess, stats_modfirst); aim__registermodule(sess, chatnav_modfirst); aim__registermodule(sess, chat_modfirst); /* missing 0x0f - 0x12 */ aim__registermodule(sess, ssi_modfirst); /* missing 0x14 */ aim__registermodule(sess, icq_modfirst); /* missing 0x16 */ aim__registermodule(sess, auth_modfirst); return; }