#include "tis_telnet_proxy.h"
#endif
-int aim_sendconnack(struct aim_session_t *sess,
- struct aim_conn_t *conn)
+faim_export int aim_sendconnack(struct aim_session_t *sess,
+ struct aim_conn_t *conn)
{
int curbyte=0;
* a 0017/0007 comes back, which is the signal to send
* it the main login command (0017/0002).
*/
-int aim_request_login(struct aim_session_t *sess,
- struct aim_conn_t *conn,
- char *sn)
+faim_export int aim_request_login(struct aim_session_t *sess,
+ struct aim_conn_t *conn,
+ char *sn)
{
int curbyte=0;
* stupid method of doing it.
*
*/
-int aim_send_login (struct aim_session_t *sess,
- struct aim_conn_t *conn,
- char *sn, char *password, struct client_info_s *clientinfo,
- char *key)
+faim_export int aim_send_login (struct aim_session_t *sess,
+ struct aim_conn_t *conn,
+ char *sn, char *password,
+ struct client_info_s *clientinfo,
+ char *key)
{
int curbyte=0;
md5_byte_t digest[16];
curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0001, strlen(sn), sn);
aim_encode_password_md5(password, key, digest);
- curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0025, 16, digest);
+ curbyte+= aim_puttlv_str(newpacket->data+curbyte, 0x0025, 16, (char *)digest);
/* XXX is clientstring required by oscar? */
if (strlen(clientinfo->clientstring))
* its nonzero, there was an error.
*
*/
-int aim_authparse(struct aim_session_t *sess,
- struct command_rx_struct *command)
+faim_internal int aim_authparse(struct aim_session_t *sess,
+ struct command_rx_struct *command)
{
struct aim_tlvlist_t *tlvlist;
int ret = 1;
* Calls the client, which should then use the value to call aim_send_login.
*
*/
-int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command)
+faim_internal int aim_authkeyparse(struct aim_session_t *sess, struct command_rx_struct *command)
{
unsigned char *key;
int keylen;
rxcallback_t userfunc;
keylen = aimutil_get16(command->data+10);
- key = malloc(keylen);
+ if (!(key = malloc(keylen+1)))
+ return ret;
memcpy(key, command->data+12, keylen);
key[keylen] = '\0';
if ((userfunc = aim_callhandler(command->conn, 0x0017, 0x0007)))
- ret = userfunc(sess, command, key);
+ ret = userfunc(sess, command, (char *)key);
free(key);
* You probably don't want this unless you're writing an AIM server.
*
*/
-unsigned long aim_sendauthresp(struct aim_session_t *sess,
- struct aim_conn_t *conn,
- char *sn, char *bosip,
- char *cookie, char *email,
- int regstatus)
+faim_export unsigned long aim_sendauthresp(struct aim_session_t *sess,
+ struct aim_conn_t *conn,
+ char *sn, char *bosip,
+ char *cookie, char *email,
+ int regstatus)
{
struct command_tx_struct *tx;
struct aim_tlvlist_t *tlvlist = NULL;
/*
* Generate a random cookie. (Non-client use only)
*/
-int aim_gencookie(unsigned char *buf)
+faim_export int aim_gencookie(unsigned char *buf)
{
int i;
/*
* Send Server Ready. (Non-client)
*/
-int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn)
+faim_export int aim_sendserverready(struct aim_session_t *sess, struct aim_conn_t *conn)
{
struct command_tx_struct *tx;
int i = 0;
/*
* Send service redirect. (Non-Client)
*/
-unsigned long aim_sendredirect(struct aim_session_t *sess,
- struct aim_conn_t *conn,
- unsigned short servid,
- char *ip,
- char *cookie)
+faim_export unsigned long aim_sendredirect(struct aim_session_t *sess,
+ struct aim_conn_t *conn,
+ unsigned short servid,
+ char *ip,
+ char *cookie)
{
struct command_tx_struct *tx;
struct aim_tlvlist_t *tlvlist = NULL;