diff plugins/icq/icqlib.c @ 1309:0a766047b4fd

[gaim-migrate @ 1319] Yay, new icqlib committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 19 Dec 2000 10:08:29 +0000
parents 201ec77f3a60
children 4c510ca3563f
line wrap: on
line diff
--- a/plugins/icq/icqlib.c	Tue Dec 19 08:37:12 2000 +0000
+++ b/plugins/icq/icqlib.c	Tue Dec 19 10:08:29 2000 +0000
@@ -1,9 +1,15 @@
 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 /*
-$Id: icqlib.c 1162 2000-11-28 02:22:42Z warmenhoven $
+$Id: icqlib.c 1319 2000-12-19 10:08:29Z warmenhoven $
 $Log$
-Revision 1.1  2000/11/28 02:22:42  warmenhoven
-icq. whoop de doo
+Revision 1.2  2000/12/19 10:08:29  warmenhoven
+Yay, new icqlib
+
+Revision 1.46  2000/12/19 06:00:07  bills
+moved members from ICQLINK to ICQLINK_private struct
+
+Revision 1.45  2000/11/02 07:29:07  denis
+Ability to disable TCP protocol has been added.
 
 Revision 1.44  2000/07/24 03:10:08  bills
 added support for real nickname during TCP transactions like file and
@@ -209,10 +215,14 @@
   return 0;
 }
 
-void icq_Init(ICQLINK *link, DWORD uin, const char *password,
-  const char *nick)
+ICQLINK *icq_ICQLINKNew(DWORD uin, const char *password, const char *nick,
+  unsigned char useTCP)
 {
+  ICQLINK *link = (ICQLINK *)malloc(sizeof(ICQLINK));
+  link->d = (ICQLINK_private *)malloc(sizeof(ICQLINK_private));
+
   srand(time(0L));
+
 /*   memset(link, 0, sizeof(ICQLINK)); */
 
   /* Initialize all callbacks */
@@ -255,18 +265,19 @@
   link->icq_Nick = strdup(nick);
   link->icq_OurIP = -1;
   link->icq_OurPort = 0;
-  link->icq_ContactList = list_new();
+  link->d->icq_ContactList = list_new();
   link->icq_Status = -1;
 
   /* UDP stuff */
   link->icq_UDPSok = -1;
-  memset(link->icq_UDPServMess, FALSE, sizeof(link->icq_UDPServMess));
-  link->icq_UDPSeqNum1 = 0;
-  link->icq_UDPSeqNum2 = 0;
-  link->icq_UDPSession = 0;
+  memset(link->d->icq_UDPServMess, FALSE, sizeof(link->d->icq_UDPServMess));
+  link->d->icq_UDPSeqNum1 = 0;
+  link->d->icq_UDPSeqNum2 = 0;
+  link->d->icq_UDPSession = 0;
   icq_UDPQueueNew(link);
 
   icq_TCPInit(link);
+  link->icq_UseTCP = useTCP;
 
   /* Proxy stuff */
   link->icq_UseProxy = 0;
@@ -280,18 +291,22 @@
   link->icq_ProxyOurPort = 0;
   link->icq_ProxyDestIP = -1;
   link->icq_ProxyDestPort = 0;
+
+  return link;
 }
 
-void icq_Done(ICQLINK *link)
+void icq_ICQLINKDelete(ICQLINK *link)
 {
   icq_TCPDone(link);
   if(link->icq_Password)
     free(link->icq_Password);
   if(link->icq_Nick)
     free(link->icq_Nick);
-  if(link->icq_ContactList)
-    list_delete(link->icq_ContactList, icq_ContactDelete);
+  if(link->d->icq_ContactList)
+    list_delete(link->d->icq_ContactList, icq_ContactDelete);
   icq_UDPQueueDelete(link);
+  free(link->d);
+  free(link);
 }
 
 /******************************
@@ -607,12 +622,12 @@
 *************************/
 BOOL icq_GetServMess(ICQLINK *link, WORD num)
 {
-  return ((link->icq_UDPServMess[num/8] & (1 << (num%8))) >> (num%8));
+  return ((link->d->icq_UDPServMess[num/8] & (1 << (num%8))) >> (num%8));
 }
 
 void icq_SetServMess(ICQLINK *link, WORD num)
 {
-  link->icq_UDPServMess[num/8] |= (1 << (num%8));
+  link->d->icq_UDPServMess[num/8] |= (1 << (num%8));
 }
 
 int icq_GetSok(ICQLINK *link)