Mercurial > pidgin.yaz
diff plugins/icq/icq.h @ 1912:8ed70631ed15
[gaim-migrate @ 1922]
new icqlib
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Tue, 29 May 2001 10:32:53 +0000 |
parents | e06dcc3025a9 |
children | 7b3f1eb1ef7d |
line wrap: on
line diff
--- a/plugins/icq/icq.h Tue May 29 09:46:05 2001 +0000 +++ b/plugins/icq/icq.h Tue May 29 10:32:53 2001 +0000 @@ -1,4 +1,25 @@ /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + +/* + * Copyright (C) 1998-2001, Denis V. Dmitrienko <denis@null.net> and + * Bill Soudan <soudan@kde.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + #ifndef _ICQ_H_ #define _ICQ_H_ @@ -67,22 +88,27 @@ } icq_ArrayType; /* dummy forward declarations */ -struct icq_link_private; +typedef struct icq_LinkPrivate_s icq_LinkPrivate; typedef struct icq_TCPLink_s icq_TCPLink; typedef struct icq_FileSession_s icq_FileSession; typedef struct icq_ChatSession_s icq_ChatSession; +typedef struct icq_Link_s icq_Link; + +/* Legacy compatibility - remove for icqlib 2.0.0 */ +typedef struct icq_Link_s ICQLINK; +#define icq_ICQLINKNew icq_LinkNew +#define icq_ICQLINKDelete icq_LinkDelete /** - * The ICQLINK structure represents a single connection to the ICQ servers. + * The icq_Link structure represents a single connection to the ICQ servers. * It is returned as the result of an icq_ICQLINKNew function, and contains * connection-specific parameters such as uin, sockets, current status, etc. * * This structure should be considered read-only. Modifying it will cause * undefined results. */ -typedef struct icq_link +struct icq_Link_s { - /* General parameters */ /** User Identification Number. This is your ICQ 'account' number. */ @@ -124,7 +150,7 @@ unsigned short icq_TCPSrvPort; /** Has TCP been enabled for this connection? - * @see icq_NewICQLINK */ + * @see icq_Newicq_Link */ unsigned char icq_UseTCP; /* SOCKS5 Proxy stuff */ @@ -143,7 +169,7 @@ unsigned short icq_ProxyPort; /** What's this? :) */ - int icq_ProxyAuth; + int icq_ProxyAuth; /** Username used when logging into the proxy. */ char *icq_ProxyName; @@ -158,206 +184,216 @@ unsigned long icq_ProxyDestIP; /* HOST byteorder */ unsigned short icq_ProxyDestPort; /* HOST byteorder */ - /*** Callbacks ***/ - void (*icq_Logged)(struct icq_link *link); - void (*icq_Disconnected)(struct icq_link *link); - void (*icq_RecvMessage)(struct icq_link *link, unsigned long uin, + /* Begin Callbacks */ + void (*icq_Logged)(icq_Link *icqlink); + void (*icq_Disconnected)(icq_Link *icqlink); + void (*icq_RecvMessage)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *msg); - void (*icq_RecvURL)(struct icq_link *link, unsigned long uin, + void (*icq_RecvURL)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *url, const char *descr); - void (*icq_RecvContactList)(struct icq_link *link, unsigned long uin, - int nr, const char **contact_uin, const char **contact_nick); - void (*icq_RecvWebPager)(struct icq_link *link,unsigned char hour, + void (*icq_RecvContactList)(icq_Link *icqlink, unsigned long uin, + unsigned char hour, unsigned char minute, unsigned char day, + unsigned char month, unsigned short year, int nr, + const char **contact_uin, const char **contact_nick); + void (*icq_RecvWebPager)(icq_Link *icqlink,unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *nick, const char *email, const char *msg); - void (*icq_RecvMailExpress)(struct icq_link *link,unsigned char hour, + void (*icq_RecvMailExpress)(icq_Link *icqlink,unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *nick, const char *email, const char *msg); - void (*icq_RecvChatReq)(struct icq_link *link, unsigned long uin, + void (*icq_RecvChatReq)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *descr, unsigned long seq); - void (*icq_RecvFileReq)(struct icq_link *link, unsigned long uin, + void (*icq_RecvFileReq)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *descr, const char *filename, unsigned long filesize, unsigned long seq); - void (*icq_RecvAdded)(struct icq_link *link, unsigned long uin, + void (*icq_RecvAdded)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *nick, const char *first, const char *last, const char *email); - void (*icq_RecvAuthReq)(struct icq_link *link, unsigned long uin, + void (*icq_RecvAuthReq)(icq_Link *icqlink, unsigned long uin, unsigned char hour, unsigned char minute, unsigned char day, unsigned char month, unsigned short year, const char *nick, const char *first, const char *last, const char *email, const char *reason); - void (*icq_UserFound)(struct icq_link *link, unsigned long uin, + void (*icq_UserFound)(icq_Link *icqlink, unsigned long uin, const char *nick, const char *first, const char *last, const char *email, char auth); - void (*icq_SearchDone)(struct icq_link *link); - void (*icq_UserOnline)(struct icq_link *link, unsigned long uin, + void (*icq_SearchDone)(icq_Link *icqlink); + void (*icq_UserOnline)(icq_Link *icqlink, unsigned long uin, unsigned long status, unsigned long ip, unsigned short port, unsigned long real_ip, unsigned char tcp_flag ); - void (*icq_UserOffline)(struct icq_link *link, unsigned long uin); - void (*icq_UserStatusUpdate)(struct icq_link *link, unsigned long uin, + void (*icq_UserOffline)(icq_Link *icqlink, unsigned long uin); + void (*icq_UserStatusUpdate)(icq_Link *icqlink, unsigned long uin, unsigned long status); - void (*icq_InfoReply)(struct icq_link *link, unsigned long uin, + void (*icq_InfoReply)(icq_Link *icqlink, unsigned long uin, const char *nick, const char *first, const char *last, const char *email, char auth); - void (*icq_ExtInfoReply)(struct icq_link *link, unsigned long uin, + void (*icq_ExtInfoReply)(icq_Link *icqlink, unsigned long uin, const char *city, unsigned short country_code, char country_stat, const char *state, unsigned short age, char gender, const char *phone, const char *hp, const char *about); - void (*icq_WrongPassword)(struct icq_link *link); - void (*icq_InvalidUIN)(struct icq_link *link); - void (*icq_Log)(struct icq_link *link, time_t time, unsigned char level, + void (*icq_WrongPassword)(icq_Link *icqlink); + void (*icq_InvalidUIN)(icq_Link *icqlink); + void (*icq_Log)(icq_Link *icqlink, time_t log_time, unsigned char level, const char *str); - void (*icq_SrvAck)(struct icq_link *link, unsigned short seq); - void (*icq_RequestNotify)(struct icq_link *link, unsigned long id, + void (*icq_SrvAck)(icq_Link *icqlink, unsigned short seq); + void (*icq_RequestNotify)(icq_Link *icqlink, unsigned long id, int type, int arg, void *data); void (*icq_FileNotify)(icq_FileSession *session, int type, int arg, void *data); void (*icq_ChatNotify)(icq_ChatSession *session, int type, int arg, void *data); - void (*icq_NewUIN)(struct icq_link *link, unsigned long uin); - void (*icq_MetaUserFound)(struct icq_link *link, unsigned short seq2, + void (*icq_NewUIN)(icq_Link *icqlink, unsigned long uin); + void (*icq_MetaUserFound)(icq_Link *icqlink, unsigned short seq2, unsigned long uin, const char *nick, const char *first, const char *last, const char *email, char auth); - void (*icq_MetaUserInfo)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserInfo)(icq_Link *icqlink, unsigned short seq2, const char *nick, const char *first, const char *last, const char *pri_eml, const char *sec_eml, const char *old_eml, const char *city, const char *state, const char *phone, const char *fax, const char *street, const char *cellular, unsigned long zip, unsigned short country, unsigned char timezone, unsigned char auth, unsigned char webaware, unsigned char hideip); - void (*icq_MetaUserWork)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserWork)(icq_Link *icqlink, unsigned short seq2, const char *wcity, const char *wstate, const char *wphone, const char *wfax, const char *waddress, unsigned long wzip, unsigned short wcountry, const char *company, const char *department, const char *job, unsigned short occupation, const char *whomepage); - void (*icq_MetaUserMore)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserMore)(icq_Link *icqlink, unsigned short seq2, unsigned short age, unsigned char gender, const char *homepage, unsigned char byear, unsigned char bmonth, unsigned char bday, unsigned char lang1, unsigned char lang2, unsigned char lang3); - void (*icq_MetaUserAbout)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserAbout)(icq_Link *icqlink, unsigned short seq2, const char *about); - void (*icq_MetaUserInterests)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserInterests)(icq_Link *icqlink, unsigned short seq2, unsigned char num, unsigned short icat1, const char *int1, unsigned short icat2, const char *int2, unsigned short icat3, const char *int3, unsigned short icat4, const char *int4); - void (*icq_MetaUserAffiliations)(struct icq_link *link, unsigned short seq2, + void (*icq_MetaUserAffiliations)(icq_Link *icqlink, unsigned short seq2, unsigned char anum, unsigned short acat1, const char *aff1, unsigned short acat2, const char *aff2, unsigned short acat3, const char *aff3, unsigned short acat4, const char *aff4, unsigned char bnum, unsigned short bcat1, const char *back1, unsigned short bcat2, const char *back2, unsigned short bcat3, const char *back3, unsigned short bcat4, const char *back4); - void (*icq_MetaUserHomePageCategory)(struct icq_link *link, + void (*icq_MetaUserHomePageCategory)(icq_Link *icqlink, unsigned short seq2, unsigned char num, unsigned short hcat1, const char *htext1); + /* End Callbacks */ /** Private data pointer. */ - struct icq_link_private *d; + icq_LinkPrivate *d; /** Space for user data */ void *icq_UserData; -} ICQLINK; +}; extern int icq_Russian; extern unsigned char icq_LogLevel; extern icq_ArrayType icq_Countries[]; extern icq_ArrayType icq_Genders[]; -void icq_SetProxy(ICQLINK *link, const char *phost, unsigned short pport, - int pauth, const char *pname, const char *ppass); -void icq_UnsetProxy(ICQLINK *link); - -ICQLINK *icq_ICQLINKNew(unsigned long uin, const char *password, +icq_Link *icq_LinkNew(unsigned long uin, const char *password, + const char *nick, unsigned char useTCP); +void icq_LinkInit(icq_Link *icqlink, unsigned long uin, const char *password, const char *nick, unsigned char useTCP); -void icq_ICQLINKDelete(ICQLINK *link); - -int icq_Connect(ICQLINK *link, const char *hostname, int port); -void icq_Disconnect(ICQLINK *link); -int icq_GetSok(ICQLINK *link); -int icq_GetProxySok(ICQLINK *link); -void icq_HandleServerResponse(ICQLINK *link); -void icq_HandleProxyResponse(ICQLINK *link); -void icq_Main(ICQLINK *link); -unsigned short icq_KeepAlive(ICQLINK *link); -void icq_Login(ICQLINK *link, unsigned long status); -void icq_Logout(ICQLINK *link); -void icq_SendContactList(ICQLINK *link); -void icq_SendVisibleList(ICQLINK *link); -void icq_SendInvisibleList(ICQLINK *link); -void icq_SendNewUser(ICQLINK * link, unsigned long uin); -unsigned long icq_SendMessage(ICQLINK *link, unsigned long uin, - const char *text, unsigned char thruSrv); -unsigned long icq_SendURL(ICQLINK *link, unsigned long uin, const char *url, - const char *descr, unsigned char thruSrv); -void icq_ChangeStatus(ICQLINK *link, unsigned long status); -unsigned short icq_SendInfoReq(ICQLINK *link, unsigned long uin); -unsigned short icq_SendExtInfoReq(ICQLINK *link, unsigned long uin); -unsigned short icq_SendAuthMsg(ICQLINK *link, unsigned long uin); -void icq_SendSearchReq(ICQLINK *link, const char *email, const char *nick, - const char* first, const char* last); -void icq_SendSearchUINReq(ICQLINK *link, unsigned long uin); +void icq_LinkDestroy(icq_Link *icqlink); +void icq_LinkDelete(icq_Link *icqlink); +void icq_Main(void); const char *icq_GetCountryName(unsigned short code); const char *icq_GetMetaOccupationName(unsigned short code); const char *icq_GetMetaBackgroundName(unsigned short code); const char *icq_GetMetaAffiliationName(unsigned short code); const char *icq_GetMetaLanguageName(unsigned short code); -void icq_RegNewUser(ICQLINK *link, const char *pass); -unsigned short icq_UpdateUserInfo(ICQLINK *link, const char *nick, + +/* Begin icq_Link methods */ +void icq_SetProxy(icq_Link *icqlink, const char *phost, unsigned short pport, + int pauth, const char *pname, const char *ppass); +void icq_UnsetProxy(icq_Link *icqlink); + +int icq_Connect(icq_Link *icqlink, const char *hostname, int port); +void icq_Disconnect(icq_Link *icqlink); +int icq_GetSok(icq_Link *icqlink); +int icq_GetProxySok(icq_Link *icqlink); +void icq_HandleServerResponse(icq_Link *icqlink); +void icq_HandleProxyResponse(icq_Link *icqlink); +unsigned short icq_KeepAlive(icq_Link *icqlink); +void icq_Login(icq_Link *icqlink, unsigned long status); +void icq_Logout(icq_Link *icqlink); +void icq_SendContactList(icq_Link *icqlink); +void icq_SendVisibleList(icq_Link *icqlink); +void icq_SendInvisibleList(icq_Link *icqlink); +void icq_SendNewUser(icq_Link *icqlink, unsigned long uin); +unsigned long icq_SendMessage(icq_Link *icqlink, unsigned long uin, + const char *text, unsigned char thruSrv); +unsigned long icq_SendURL(icq_Link *icqlink, unsigned long uin, const char *url, + const char *descr, unsigned char thruSrv); +void icq_ChangeStatus(icq_Link *icqlink, unsigned long status); +unsigned short icq_SendInfoReq(icq_Link *icqlink, unsigned long uin); +unsigned short icq_SendExtInfoReq(icq_Link *icqlink, unsigned long uin); +unsigned short icq_SendAuthMsg(icq_Link *icqlink, unsigned long uin); +void icq_SendSearchReq(icq_Link *icqlink, const char *email, const char *nick, + const char* first, const char* last); +void icq_SendSearchUINReq(icq_Link *icqlink, unsigned long uin); + +void icq_RegNewUser(icq_Link *icqlink, const char *pass); +unsigned short icq_UpdateUserInfo(icq_Link *icqlink, const char *nick, const char *first, const char *last, const char *email); -unsigned short icq_UpdateAuthInfo(ICQLINK *link, unsigned long auth); -unsigned short icq_UpdateMetaInfoSet(ICQLINK *link, const char *nick, +unsigned short icq_UpdateAuthInfo(icq_Link *icqlink, unsigned long auth); +unsigned short icq_UpdateMetaInfoSet(icq_Link *icqlink, const char *nick, const char *first, const char *last, const char *email, const char *email2, const char *email3, const char *city, const char *state, const char *phone, const char *fax, const char *street, const char *cellular, unsigned long zip, unsigned short cnt_code, unsigned char cnt_stat, unsigned char emailhide); -unsigned short icq_UpdateMetaInfoHomepage(ICQLINK *link, unsigned char age, +unsigned short icq_UpdateMetaInfoHomepage(icq_Link *icqlink, unsigned char age, const char *homepage, unsigned char year, unsigned char month, unsigned char day, unsigned char lang1, unsigned char lang2, unsigned char lang3); -unsigned short icq_UpdateMetaInfoAbout(ICQLINK *link, const char *about); -unsigned short icq_UpdateMetaInfoSecurity(ICQLINK *link, unsigned char reqauth, +unsigned short icq_UpdateMetaInfoAbout(icq_Link *icqlink, const char *about); +unsigned short icq_UpdateMetaInfoSecurity(icq_Link *icqlink, unsigned char reqauth, unsigned char webpresence, unsigned char pubip); -unsigned short icq_UpdateNewUserInfo(ICQLINK *link, const char *nick, +unsigned short icq_UpdateNewUserInfo(icq_Link *icqlink, const char *nick, const char *first, const char *last, const char *email); -unsigned short icq_SendMetaInfoReq(ICQLINK *link, unsigned long uin); +unsigned short icq_SendMetaInfoReq(icq_Link *icqlink, unsigned long uin); -void icq_FmtLog(ICQLINK *link, int level, const char *fmt, ...); +void icq_FmtLog(icq_Link *icqlink, int level, const char *fmt, ...); -void icq_ContactAdd(ICQLINK *link, unsigned long cuin); -void icq_ContactRemove(ICQLINK *link, unsigned long cuin); -void icq_ContactClear(ICQLINK *link ); -void icq_ContactSetVis(ICQLINK *link, unsigned long cuin, unsigned char vu); -void icq_ContactSetInvis(ICQLINK *link, unsigned long cuin, unsigned char vu); +void icq_ContactAdd(icq_Link *icqlink, unsigned long cuin); +void icq_ContactRemove(icq_Link *icqlink, unsigned long cuin); +void icq_ContactClear(icq_Link *icqlink ); +void icq_ContactSetVis(icq_Link *icqlink, unsigned long cuin, unsigned char vu); +void icq_ContactSetInvis(icq_Link *icqlink, unsigned long cuin, unsigned char vu); /*** TCP ***/ -void icq_TCPMain(ICQLINK *link); +void icq_TCPMain(icq_Link *icqlink); -void icq_TCPProcessReceived(ICQLINK *link); +void icq_TCPProcessReceived(icq_Link *icqlink); -unsigned long icq_TCPSendMessage(ICQLINK *link, unsigned long uin, +unsigned long icq_TCPSendMessage(icq_Link *icqlink, unsigned long uin, const char *message); -unsigned long icq_TCPSendURL(ICQLINK *link, unsigned long uin, +unsigned long icq_TCPSendURL(icq_Link *icqlink, unsigned long uin, const char *message, const char *url); -unsigned long icq_SendChatRequest(ICQLINK *link, unsigned long uin, +unsigned long icq_SendChatRequest(icq_Link *icqlink, unsigned long uin, const char *message); -void icq_AcceptChatRequest(ICQLINK *link, unsigned long uin, unsigned long seq); +void icq_AcceptChatRequest(icq_Link *icqlink, unsigned long uin, unsigned long seq); -void icq_CancelChatRequest(ICQLINK *link, unsigned long uin, +void icq_CancelChatRequest(icq_Link *icqlink, unsigned long uin, unsigned long sequence); -void icq_RefuseChatRequest(ICQLINK *link, unsigned long uin, +void icq_RefuseChatRequest(icq_Link *icqlink, unsigned long uin, unsigned long sequence, const char *reason); +/* End icq_Link Methods */ + /*** TCP ***/ /** \defgroup ChatSession Chat Session Documentation @@ -509,7 +545,7 @@ int status; /** ICQLINK that spawned this chat session. */ - ICQLINK *icqlink; + icq_Link *icqlink; /** For internal icqlib use only. */ icq_TCPLink *tcplink; @@ -556,7 +592,7 @@ unsigned long id; int status; - ICQLINK *icqlink; + icq_Link *icqlink; icq_TCPLink *tcplink; int direction; @@ -582,13 +618,13 @@ void *user_data; }; -icq_FileSession *icq_AcceptFileRequest(ICQLINK *link, unsigned long uin, +icq_FileSession *icq_AcceptFileRequest(icq_Link *icqlink, unsigned long uin, unsigned long sequence); -unsigned long icq_SendFileRequest(ICQLINK *link, unsigned long uin, +unsigned long icq_SendFileRequest(icq_Link *icqlink, unsigned long uin, const char *message, char **files); -void icq_CancelFileRequest(ICQLINK *link, unsigned long uin, +void icq_CancelFileRequest(icq_Link *icqlink, unsigned long uin, unsigned long sequence); -void icq_RefuseFileRequest(ICQLINK *link, unsigned long uin, +void icq_RefuseFileRequest(icq_Link *icqlink, unsigned long uin, unsigned long sequence, const char *reason); void icq_FileSessionSetSpeed(icq_FileSession *p, int speed); @@ -602,15 +638,15 @@ #define ICQ_SOCKET_WRITE 1 #define ICQ_SOCKET_MAX 2 -extern void (*icq_SocketNotify)(int socket, int type, int status); +extern void (*icq_SocketNotify)(int socket_fd, int type, int status); -void icq_HandleReadySocket(int socket, int type); +void icq_HandleReadySocket(int socket_fd, int type); /* Timeout Manager */ extern void (*icq_SetTimeout)(long interval); -void icq_HandleTimeout(); +void icq_HandleTimeout(void); #ifdef __cplusplus }