#include <aim.h>
extern int keepgoing;
-extern struct aim_session_t aimsess;
+extern aim_session_t aimsess;
-int login(const char *sn, const char *passwd);
-int logout(void);
+/* This is kept in the aim_session_t and accessible by handlers. */
+struct faimtest_priv {
+ char *aimbinarypath;
+ char *screenname;
+ char *password;
+ char *server;
+ char *proxy;
+ char *proxyusername;
+ char *proxypass;
+ char *ohcaptainmycaptain;
+ int connected;
+ FILE *listingfile;
+ char *listingpath;
+
+ fu8_t *buddyicon;
+ int buddyiconlen;
+ time_t buddyiconstamp;
+ fu16_t buddyiconsum;
+};
+
+/* login.c */
+int login(aim_session_t *sess, const char *sn, const char *passwd);
+int logout(aim_session_t *sess);
+
+/* commands.c */
void cmd_init(void);
void cmd_gotkey(void);
void cmd_uninit(void);
+/* faimtest.c */
+int faimtest_parse_connerr(aim_session_t *sess, aim_frame_t *fr, ...);
+int faimtest_handleredirect(aim_session_t *sess, aim_frame_t *fr, ...);
+int faimtest_serverready(aim_session_t *sess, aim_frame_t *fr, ...);
+int faimtest_conncomplete(aim_session_t *sess, aim_frame_t *fr, ...);
+int faimtest_flapversion(aim_session_t *sess, aim_frame_t *fr, ...);
+int faimtest_init(void);
+char *dprintf_ctime(void);
+void addcb_bos(aim_session_t *sess, aim_conn_t *bosconn);
+
+/* ft.c */
+void getfile_start(aim_session_t *sess, aim_conn_t *conn, const char *sn);
+void getfile_requested(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch2_args *args);
+void directim_start(aim_session_t *sess, aim_conn_t *conn, const char *sn);
+void directim_requested(aim_session_t *sess, aim_conn_t *conn, struct aim_userinfo_s *userinfo, struct aim_incomingim_ch2_args *args);
+
+/* chat.c */
+void chatnav_redirect(aim_session_t *sess, const char *ip, const fu8_t *cookie);
+void chat_redirect(aim_session_t *sess, const char *ip, const fu8_t *cookie, const char *roomname, fu16_t exchange);
+
+#define DPRINTF_OUTSTREAM stdout
+#define dprintf(x) { \
+ fprintf(DPRINTF_OUTSTREAM, "%s %s: " x, dprintf_ctime(), "faimtest"); \
+ fflush(DPRINTF_OUTSTREAM); \
+}
+#define dvprintf(x, y...) { \
+ fprintf(DPRINTF_OUTSTREAM, "%s %s: " x, dprintf_ctime(), "faimtest", y); \
+ fflush(DPRINTF_OUTSTREAM); \
+}
+#define dinlineprintf(x) { \
+ fprintf(DPRINTF_OUTSTREAM, x); \
+ fflush(DPRINTF_OUTSTREAM); \
+}
+#define dvinlineprintf(x, y...) { \
+ fprintf(DPRINTF_OUTSTREAM, x, y); \
+ fflush(DPRINTF_OUTSTREAM); \
+}
+#define dperror(x) dvprintf("%s: %s\n", x, strerror(errno));
+
+
#endif /* __FAIMTEST_H__ */