plugins/icq/udp.c

changeset 1912
77d18e17199b
parent 1525
b4ece1a718cd
child 1977
a6bfa19d6884
--- a/plugins/icq/udp.c	Tue May 29 09:46:05 2001 +0000
+++ b/plugins/icq/udp.c	Tue May 29 10:32:53 2001 +0000
@@ -1,123 +1,24 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2  -*- */
-/*
-$Id: udp.c 1535 2001-03-03 00:26:04Z warmenhoven $
-$Log$
-Revision 1.5  2001/03/03 00:26:04  warmenhoven
-icqlib updates. beginnings of system logging.
-
-Revision 1.29  2001/03/01 05:37:15  bills
-rewrote icq_UDPEncode and icq_UDPCheckCode functions to do their work in
-a seperate buffer so original icq_Packet isn't corrupted, fixed bug where
-UDP_CMD_ACKs were being queued on the UDP packet queue
-
-Revision 1.28  2001/02/22 05:40:04  bills
-port tcp connect timeout code and UDP queue to new timeout manager
-
-Revision 1.27  2001/01/16 00:10:13  denis
-Invisible list has been finished.
-
-Revision 1.26  2000/12/19 06:00:07  bills
-moved members from ICQLINK to ICQLINK_private struct
-
-Revision 1.25  2000/11/02 07:29:07  denis
-Ability to disable TCP protocol has been added.
-
-Revision 1.24  2000/08/13 00:59:52  denis
-Patch #101057 have been applied.
-
-Revision 1.23  2000/07/09 22:19:35  bills
-added new *Close functions, use *Close functions instead of *Delete
-where correct, and misc cleanup
-
-Revision 1.22  2000/07/09 18:25:44  denis
-icq_UpdateNewUserInfo() now returns seq1 instead of seq2 since it
-isn't META function.
-
-Revision 1.21  2000/06/25 16:43:19  denis
-icq_SendMetaInfoReq() was added.
-All icq_*Meta*() functions now returns sequence number 2 because their
-replies from the server are synced with it.
-
-Revision 1.20  2000/06/15 01:50:39  bills
-removed *Seq functions
-
-Revision 1.19  2000/05/10 19:06:59  denis
-UDP outgoing packet queue was implemented.
-
-Revision 1.18  2000/05/03 18:34:43  denis
-icq_UpdateNewUserInfo() was added.
-All icq_UpdateMetaInfo*() now return their sequence number.
-
-Revision 1.17  2000/04/10 16:36:04  denis
-Some more Win32 compatibility from Guillaume Rosanis <grs@mail.com>
-
-Revision 1.16  2000/04/06 19:03:07  denis
-return sequence number
-
-Revision 1.15  2000/04/06 16:36:18  denis
-So called "Online List problem" bug with Long Contact List was fixed.
-icq_*Send*Seq() functions with specified sequence number were added.
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 
-Revision 1.14  2000/04/05 14:37:02  denis
-Applied patch from "Guillaume R." <grs@mail.com> for basic Win32
-compatibility.
-
-Revision 1.13  1999/12/27 11:12:35  denis
-icq_UpdateMetaInfoSecurity() added for setting "My authorization is
-required", "Web Aware" and "IP Publishing".
-
-Revision 1.12  1999/10/14 11:43:28  denis
-icq_UpdateMetaInfo* functions added.
-
-Revision 1.11  1999/10/07 18:36:27  denis
-proxy.h file removed.
-
-Revision 1.10  1999/10/04 13:36:17  denis
-Cleanups.
-
-Revision 1.9  1999/09/29 20:15:30  bills
-tcp port wasn't being sent properly in login packet
-
-Revision 1.8  1999/09/29 17:13:45  denis
-Webaware functions enabled without success even with UDP v5 - need more
-investigations.
-
-Revision 1.7  1999/07/18 20:22:16  bills
-changed to use new byte-order functions & contact list functions
-
-Revision 1.6  1999/07/16 15:46:00  denis
-Cleaned up.
-
-Revision 1.5  1999/07/16 12:40:53  denis
-ICQ UDP v5 implemented.
-Encription for ICQ UDP v5 implemented.
-icq_Packet* unified interface for UDP packets implemented.
-Multipacket support of ICQ UDP v5 support added.
-
-Revision 1.4  1999/07/12 15:13:43  cproch
-- added definition of ICQLINK to hold session-specific global variabled
-  applications which have more than one connection are now possible
-- changed nearly every function defintion to support ICQLINK parameter
-
-Revision 1.3  1999/04/29 09:40:52  denis
-Unsuccessful attempt to implement web presence (webaware) feature
-
-Revision 1.2  1999/04/14 15:04:13  denis
-Cleanups for "strict" compiling (-ansi -pedantic)
-Switched from icq_Log callback to icq_Fmt function.
-
-Revision 1.1  1999/03/24 11:37:38  denis
-Underscored files with TCP stuff renamed.
-TCP stuff cleaned up
-Function names changed to corresponding names.
-icqlib.c splitted to many small files by subject.
-C++ comments changed to ANSI C comments.
-
-*/
-
-#ifndef _WIN32
-#include <unistd.h>
-#endif
+/*
+ * 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.
+ *
+ */
 
 #ifdef _WIN32
 #include <winsock.h>
@@ -125,7 +26,6 @@
 
 #include <stdlib.h>
 
-#include "icqtypes.h"
 #include "icqlib.h"
 #include "udp.h"
 #include "queue.h"
@@ -133,6 +33,8 @@
 #include "stdpackets.h"
 #include "icqbyteorder.h"
 
+#include "contacts.h"
+
 static const BYTE icq_UDPTable[] = {
   0x59, 0x60, 0x37, 0x6B, 0x65, 0x62, 0x46, 0x48, 0x53, 0x61, 0x4C, 0x59, 0x60, 0x57, 0x5B, 0x3D,
   0x5E, 0x34, 0x6D, 0x36, 0x50, 0x3F, 0x6F, 0x67, 0x53, 0x61, 0x4C, 0x59, 0x40, 0x47, 0x63, 0x39,
@@ -199,7 +101,7 @@
   return a[0] + a[1] + a[2] + a[3] + a[4];
 }
 
-void icq_UDPEncode(icq_Packet *p, void *buffer)
+void icq_UDPEncode(icq_Packet *p, char *buffer)
 {
   DWORD checkcode = icq_UDPCalculateCheckCode(p);
   DWORD code1, code2, code3;
@@ -227,24 +129,24 @@
 icq_UDPSockWrite and icq_UDPSockRead are for _UDP_ packets
 proxy support for TCP sockets is different!
 *********************************************************/
-int icq_UDPSockWriteDirect(ICQLINK *link, icq_Packet *p)
+int icq_UDPSockWriteDirect(icq_Link *icqlink, icq_Packet *p)
 {
   char tmpbuf[ICQ_PACKET_DATA_SIZE+10];
 
-  if(link->icq_UDPSok <= 3)
+  if(icqlink->icq_UDPSok <= 3)
   {
-    icq_FmtLog(link, ICQ_LOG_ERROR, "Bad socket!\n");
+    icq_FmtLog(icqlink, ICQ_LOG_ERROR, "Bad socket!\n");
     return -1;
   }
 
   icq_UDPEncode(p, tmpbuf+10);
 
-  if(!link->icq_UseProxy)
+  if(!icqlink->icq_UseProxy)
   {
 #ifdef _WIN32
-    return send(link->icq_UDPSok, tmpbuf+10, p->length, 0);
+    return send(icqlink->icq_UDPSok, tmpbuf+10, p->length, 0);
 #else
-    return write(link->icq_UDPSok, tmpbuf+10, p->length);
+    return write(icqlink->icq_UDPSok, tmpbuf+10, p->length);
 #endif
   }
   else
@@ -253,34 +155,34 @@
     tmpbuf[1] = 0; /* reserved */
     tmpbuf[2] = 0; /* standalone packet */
     tmpbuf[3] = 1; /* address type IP v4 */
-    *(unsigned long*)&tmpbuf[4] = htonl(link->icq_ProxyDestIP);
-    *(unsigned short*)&tmpbuf[8] = htons(link->icq_ProxyDestPort);
+    *(unsigned long*)&tmpbuf[4] = htonl(icqlink->icq_ProxyDestIP);
+    *(unsigned short*)&tmpbuf[8] = htons(icqlink->icq_ProxyDestPort);
 #ifdef _WIN32
-    return send(link->icq_UDPSok, tmpbuf, p->length+10, 0)-10;
+    return send(icqlink->icq_UDPSok, tmpbuf, p->length+10, 0)-10;
 #else
-    return write(link->icq_UDPSok, tmpbuf, p->length+10)-10;
+    return write(icqlink->icq_UDPSok, tmpbuf, p->length+10)-10;
 #endif
   }
 }
 
-int icq_UDPSockWrite(ICQLINK *link, icq_Packet *p)
+int icq_UDPSockWrite(icq_Link *icqlink, icq_Packet *p)
 {
-  icq_UDPQueuePut(link, p);
+  icq_UDPQueuePut(icqlink, p);
 
-  return icq_UDPSockWriteDirect(link, p);
+  return icq_UDPSockWriteDirect(icqlink, p);
 }
 
-int icq_UDPSockRead(ICQLINK *link, icq_Packet *p)
+int icq_UDPSockRead(icq_Link *icqlink, icq_Packet *p)
 {
   int res;
   char tmpbuf[ICQ_PACKET_DATA_SIZE];
 
-  if(!link->icq_UseProxy)
+  if(!icqlink->icq_UseProxy)
   {
 #ifdef _WIN32
-    res = recv(link->icq_UDPSok, p->data, ICQ_PACKET_DATA_SIZE, 0);
+    res = recv(icqlink->icq_UDPSok, p->data, ICQ_PACKET_DATA_SIZE, 0);
 #else
-    res = read(link->icq_UDPSok, p->data, ICQ_PACKET_DATA_SIZE);
+    res = read(icqlink->icq_UDPSok, p->data, ICQ_PACKET_DATA_SIZE);
 #endif
     p->length = res;
     return res;
@@ -288,9 +190,9 @@
   else
   {
 #ifdef _WIN32
-    res = recv(link->icq_UDPSok, tmpbuf, ICQ_PACKET_DATA_SIZE, 0);
+    res = recv(icqlink->icq_UDPSok, tmpbuf, ICQ_PACKET_DATA_SIZE, 0);
 #else
-    res = read(link->icq_UDPSok, tmpbuf, ICQ_PACKET_DATA_SIZE);
+    res = read(icqlink->icq_UDPSok, tmpbuf, ICQ_PACKET_DATA_SIZE);
 #endif
     if(res<0)
       return res;
@@ -306,40 +208,40 @@
 JAVA client sends two different commands
 so we do also :)
 *****************************************/
-WORD icq_KeepAlive(ICQLINK *link) /* V5 */
+WORD icq_KeepAlive(icq_Link *icqlink) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdSeqPacket(link, UDP_CMD_KEEP_ALIVE, link->d->icq_UDPSeqNum1++);
+  icq_Packet *p = icq_UDPCreateStdSeqPacket(icqlink, UDP_CMD_KEEP_ALIVE, icqlink->d->icq_UDPSeqNum1++);
   icq_PacketAppend32(p, rand());
-  icq_UDPSockWriteDirect(link, p); /* don't queue keep alive packets! */
+  icq_UDPSockWriteDirect(icqlink, p); /* don't queue keep alive packets! */
   icq_PacketDelete(p);
 
-  icq_FmtLog(link, ICQ_LOG_MESSAGE, "Send Keep Alive packet to the server\n");
+  icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Send Keep Alive packet to the server\n");
 
-  return link->d->icq_UDPSeqNum1-1;
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
 /**********************************
 This must be called to remove
 messages from the server
 ***********************************/
-void icq_SendGotMessages(ICQLINK *link) /* V5 */
+void icq_SendGotMessages(icq_Link *icqlink) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_ACK_MESSAGES);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_ACK_MESSAGES);
   icq_PacketAppend32(p, rand());
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /*************************************
 this sends over the contact list
 *************************************/
-void icq_SendContactList(ICQLINK *link) /* V5 */
+void icq_SendContactList(icq_Link *icqlink) /* V5 */
 {
   char num_used;
-  icq_ContactItem *ptr = icq_ContactGetFirst(link);
+  icq_ContactItem *ptr = icq_ContactGetFirst(icqlink);
 
   while(ptr)
   {
-    icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_CONT_LIST);
+    icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_CONT_LIST);
 
     num_used = 0;
     icq_PacketAdvance(p,1);
@@ -351,15 +253,15 @@
     }
     icq_PacketGotoUDPOutData(p, 0);
     icq_PacketAppend8(p, num_used);
-    icq_UDPSockWrite(link, p);
+    icq_UDPSockWrite(icqlink, p);
   }
 }
 
-void icq_SendNewUser(ICQLINK *link, unsigned long uin) /* V5 */
+void icq_SendNewUser(icq_Link *icqlink, unsigned long uin) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_ADD_TO_LIST);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_ADD_TO_LIST);
   icq_PacketAppend32(p, uin);
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /*************************************
@@ -367,11 +269,11 @@
 that allows certain users to see you
 if you're invisible.
 *************************************/
-void icq_SendVisibleList(ICQLINK *link) /* V5 */
+void icq_SendVisibleList(icq_Link *icqlink) /* V5 */
 {
   char num_used;
-  icq_ContactItem *ptr = icq_ContactGetFirst(link);
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_VIS_LIST);
+  icq_ContactItem *ptr = icq_ContactGetFirst(icqlink);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_VIS_LIST);
 
   num_used = 0;
   icq_PacketAdvance(p,1);
@@ -388,16 +290,17 @@
   {
     icq_PacketGotoUDPOutData(p, 0);
     icq_PacketAppend8(p, num_used);
-    icq_UDPSockWrite(link, p);
-  } else
+    icq_UDPSockWrite(icqlink, p);
+  }
+  else
     icq_PacketDelete(p);
 }
 
-void icq_SendInvisibleList(ICQLINK *link) /* V5 */
+void icq_SendInvisibleList(icq_Link *icqlink) /* V5 */
 {
   char num_used;
-  icq_ContactItem *ptr = icq_ContactGetFirst(link);
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_INVIS_LIST);
+  icq_ContactItem *ptr = icq_ContactGetFirst(icqlink);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_INVIS_LIST);
 
   num_used = 0;
   icq_PacketAdvance(p,1);
@@ -414,8 +317,9 @@
   {
     icq_PacketGotoUDPOutData(p, 0);
     icq_PacketAppend8(p, num_used);
-    icq_UDPSockWrite(link, p);
-  } else
+    icq_UDPSockWrite(icqlink, p);
+  }
+  else
     icq_PacketDelete(p);
 }
 
@@ -423,11 +327,11 @@
 This sends the second login command
 this is necessary to finish logging in.
 ***************************************/
-void icq_SendLogin1(ICQLINK *link) /* V5 */
+void icq_SendLogin1(icq_Link *icqlink) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_LOGIN_1);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_LOGIN_1);
   icq_PacketAppend32(p, rand());
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /************************************
@@ -435,38 +339,38 @@
 on the socket icq_Sok and gives our ip and port.
 It does NOT wait for any kind of a response.
 *************************************/
-void icq_Login(ICQLINK *link, DWORD status) /* V5 */
+void icq_Login(icq_Link *icqlink, DWORD status) /* V5 */
 {
   icq_Packet *p;
 
-  memset(link->d->icq_UDPServMess, FALSE, sizeof(link->d->icq_UDPServMess));
-  link->d->icq_UDPSession = rand() & 0x3FFFFFFF;
-  link->d->icq_UDPSeqNum1 = rand() & 0x7FFF;
-  link->d->icq_UDPSeqNum2 = 1;
+  memset(icqlink->d->icq_UDPServMess, FALSE, sizeof(icqlink->d->icq_UDPServMess));
+  icqlink->d->icq_UDPSession = rand() & 0x3FFFFFFF;
+  icqlink->d->icq_UDPSeqNum1 = rand() & 0x7FFF;
+  icqlink->d->icq_UDPSeqNum2 = 1;
 
-  p = icq_UDPCreateStdPacket(link, UDP_CMD_LOGIN);
+  p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_LOGIN);
   icq_PacketAppend32(p, time(0L));
-  icq_PacketAppend32n(p, link->icq_TCPSrvPort);
+  icq_PacketAppend32n(p, icqlink->icq_TCPSrvPort);
   /*icq_PacketAppend16(p, 0);
-  icq_PacketAppend16n(p, htons(link->icq_OurPort));*/
-  icq_PacketAppendString(p, link->icq_Password);
+  icq_PacketAppend16n(p, htons(icqlink->icq_OurPort));*/
+  icq_PacketAppendString(p, icqlink->icq_Password);
   icq_PacketAppend32(p, LOGIN_X1_DEF);
-  if(link->icq_UseTCP)
+  if(icqlink->icq_UseTCP)
   {
-    if(link->icq_UseProxy)
+    if(icqlink->icq_UseProxy)
     {
-      icq_PacketAppend32n(p, htonl(link->icq_ProxyIP));
+      icq_PacketAppend32n(p, htonl(icqlink->icq_ProxyIP));
       icq_PacketAppend8(p, LOGIN_SNDONLY_TCP);
     }
     else
     {
-      icq_PacketAppend32n(p, htonl(link->icq_OurIP));
+      icq_PacketAppend32n(p, htonl(icqlink->icq_OurIP));
       icq_PacketAppend8(p, LOGIN_SNDRCV_TCP);
     }
   }
   else
   {
-    icq_PacketAppend32n(p, htonl(link->icq_ProxyIP));
+    icq_PacketAppend32n(p, htonl(icqlink->icq_ProxyIP));
     icq_PacketAppend8(p, LOGIN_NO_TCP);
   }
   icq_PacketAppend32(p, status);
@@ -474,19 +378,19 @@
   icq_PacketAppend32(p, LOGIN_X4_DEF);
   icq_PacketAppend32(p, LOGIN_X5_DEF);
 
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /**********************
 Logs off ICQ
 ***********************/
-void icq_Logout(ICQLINK *link) /* V5 */
+void icq_Logout(icq_Link *icqlink) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdSeqPacket(link, UDP_CMD_SEND_TEXT_CODE, link->d->icq_UDPSeqNum1++);
+  icq_Packet *p = icq_UDPCreateStdSeqPacket(icqlink, UDP_CMD_SEND_TEXT_CODE, icqlink->d->icq_UDPSeqNum1++);
   icq_PacketAppendString(p, "B_USER_DISCONNECTED");
   icq_PacketAppend8(p, 5);
   icq_PacketAppend8(p, 0);
-  icq_UDPSockWriteDirect(link, p); /* don't queue */
+  icq_UDPSockWriteDirect(icqlink, p); /* don't queue */
   icq_PacketDelete(p);
 }
 
@@ -495,20 +399,21 @@
 server it appears that this must be done after
 everything the server sends us
 *******************************/
-void icq_UDPAck(ICQLINK *link, int seq) /* V5 */
+void icq_UDPAck(icq_Link *icqlink, int seq) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdSeqPacket(link, UDP_CMD_ACK, seq);
+  icq_Packet *p = icq_UDPCreateStdSeqPacket(icqlink, UDP_CMD_ACK, seq);
   icq_PacketAppend32(p, rand());
 
-  icq_FmtLog(link, ICQ_LOG_MESSAGE, "Acking\n");
-  icq_UDPSockWriteDirect(link, p);
+  icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Acking\n");
+  icq_UDPSockWriteDirect(icqlink, p);
+  icq_PacketDelete(p);
 }
 
 /***************************************************
 Sends a message thru the server to uin.  Text is the
 message to send.
 ***************************************************/
-WORD icq_UDPSendMessage(ICQLINK *link, DWORD uin, const char *text) /* V5 */
+WORD icq_UDPSendMessage(icq_Link *icqlink, DWORD uin, const char *text) /* V5 */
 {
   char buf[512]; /* message may be only 450 bytes long */
   icq_Packet *p;
@@ -516,16 +421,16 @@
   strncpy(buf, text, 512);
   icq_RusConv("kw", buf);
 
-  p = icq_UDPCreateStdPacket(link, UDP_CMD_SEND_THRU_SRV);
+  p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_SEND_THRU_SRV);
   icq_PacketAppend32(p, uin);
   icq_PacketAppend16(p, TYPE_MSG);
   icq_PacketAppendString(p, buf);
 
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
-WORD icq_UDPSendURL(ICQLINK *link, DWORD uin, const char *url, const char *descr) /* V5 */
+WORD icq_UDPSendURL(icq_Link *icqlink, DWORD uin, const char *url, const char *descr) /* V5 */
 {
   char buf1[512], buf2[512];
   icq_Packet *p;
@@ -534,96 +439,96 @@
   icq_RusConv("kw", buf1);
   strncpy(buf2, url, 512);
 
-  p = icq_UDPCreateStdPacket(link, UDP_CMD_SEND_THRU_SRV);
+  p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_SEND_THRU_SRV);
   icq_PacketAppend32(p, uin);
   icq_PacketAppend16(p, TYPE_URL);
   icq_PacketAppend16(p, strlen(buf1)+strlen(buf2)+2); /* length + the NULL + 0xFE delimiter */
   icq_PacketAppendStringFE(p, buf1);
   icq_PacketAppendString0(p, buf2);
 
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
 /**************************************************
 Sends a authorization to the server so the Mirabilis
 client can add the user.
 ***************************************************/
-WORD icq_SendAuthMsg(ICQLINK *link, DWORD uin) /* V5 */
+WORD icq_SendAuthMsg(icq_Link *icqlink, DWORD uin) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_SEND_THRU_SRV);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_SEND_THRU_SRV);
   icq_PacketAppend32(p, uin);
   icq_PacketAppend32(p, TYPE_AUTH);
   icq_PacketAppend16(p, 0);
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 
-  return link->d->icq_UDPSeqNum1-1;
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
 /**************************************************
 Changes the users status on the server
 ***************************************************/
-void icq_ChangeStatus(ICQLINK *link, DWORD status) /* V5 */
+void icq_ChangeStatus(icq_Link *icqlink, DWORD status) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_STATUS_CHANGE);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_STATUS_CHANGE);
   icq_PacketAppend32(p, status);
-  link->icq_Status = status;
-  icq_UDPSockWrite(link, p);
+  icqlink->icq_Status = status;
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /********************************************************
 Sends a request to the server for info on a specific user
 *********************************************************/
-WORD icq_SendInfoReq(ICQLINK *link, DWORD uin) /* V5 */
+WORD icq_SendInfoReq(icq_Link *icqlink, DWORD uin) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_INFO_REQ);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_INFO_REQ);
   icq_PacketAppend32(p, uin);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
 /********************************************************
 Sends a request to the server for info on a specific user
 *********************************************************/
-WORD icq_SendExtInfoReq(ICQLINK *link, DWORD uin) /* V5 */
+WORD icq_SendExtInfoReq(icq_Link *icqlink, DWORD uin) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_EXT_INFO_REQ);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_EXT_INFO_REQ);
   icq_PacketAppend32(p, uin);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
 /**************************************************************
 Initializes a server search for the information specified
 ***************************************************************/
-void icq_SendSearchReq(ICQLINK *link, const char *email, const char *nick, const char *first,
+void icq_SendSearchReq(icq_Link *icqlink, const char *email, const char *nick, const char *first,
                        const char *last) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_SEARCH_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_SEARCH_USER);
   icq_PacketAppendString(p, nick);
   icq_PacketAppendString(p, first);
   icq_PacketAppendString(p, last);
   icq_PacketAppendString(p, email);
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /**************************************************************
 Initializes a server search for the information specified
 ***************************************************************/
-void icq_SendSearchUINReq(ICQLINK *link, DWORD uin) /* V5 */
+void icq_SendSearchUINReq(icq_Link *icqlink, DWORD uin) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_SEARCH_UIN);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_SEARCH_UIN);
   icq_PacketAppend32(p, uin);
-  icq_UDPSockWrite(link, p);
+  icq_UDPSockWrite(icqlink, p);
 }
 
 /**************************************************
 Registers a new uin in the ICQ network
 ***************************************************/
-void icq_RegNewUser(ICQLINK *link, const char *pass) /* V5 */
+void icq_RegNewUser(icq_Link *icqlink, const char *pass) /* V5 */
 {
   char pass8[9];
-  icq_Packet *p = icq_UDPCreateStdSeqPacket(link, UDP_CMD_REG_NEW_USER, link->d->icq_UDPSeqNum1++);
+  icq_Packet *p = icq_UDPCreateStdSeqPacket(icqlink, UDP_CMD_REG_NEW_USER, icqlink->d->icq_UDPSeqNum1++);
   strncpy(pass8, pass, 8);
   icq_PacketAppendString(p, pass8);
   icq_PacketAppend32(p, 0xA0);
@@ -633,38 +538,38 @@
   icq_PacketGoto(p, 6);
   icq_PacketAppend32(p, 0);
   icq_PacketAppend32(p, rand());
-  icq_UDPSockWrite(link, p);
-  icq_FmtLog(link, ICQ_LOG_MESSAGE, "Send RegNewUser packet to the server\n");
+  icq_UDPSockWrite(icqlink, p);
+  icq_FmtLog(icqlink, ICQ_LOG_MESSAGE, "Send RegNewUser packet to the server\n");
 }
 
-WORD icq_UpdateUserInfo(ICQLINK *link, const char *nick, const char *first, const char *last,
+WORD icq_UpdateUserInfo(icq_Link *icqlink, const char *nick, const char *first, const char *last,
                         const char *email) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_UPDATE_INFO);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_UPDATE_INFO);
   icq_PacketAppendString(p, nick);
   icq_PacketAppendString(p, first);
   icq_PacketAppendString(p, last);
   icq_PacketAppendString(p, email);
 /* auth (byte)? */
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
-WORD icq_UpdateAuthInfo(ICQLINK *link, DWORD auth) /* V5 */
+WORD icq_UpdateAuthInfo(icq_Link *icqlink, DWORD auth) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_UPDATE_AUTH);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_UPDATE_AUTH);
   icq_PacketAppend32(p, auth); /* NOT auth? */
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
-WORD icq_UpdateMetaInfoSet(ICQLINK *link, const char *nick, const char *first, const char *last,
+WORD 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)
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_META_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_META_USER);
   icq_PacketAppend16(p, META_CMD_SET_INFO);
   icq_PacketAppendString(p, nick);
   icq_PacketAppendString(p, first);
@@ -682,15 +587,18 @@
   icq_PacketAppend16(p, cnt_code);
   icq_PacketAppend8(p, cnt_stat);
   icq_PacketAppend8(p, emailhide);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum2-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum2-1;
 }
 
-WORD icq_UpdateMetaInfoHomepage(ICQLINK *link, unsigned char age, const char *homepage,
+WORD 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)
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_META_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_META_USER);
+  (void)lang1;
+  (void)lang2;
+  (void)lang3;
   icq_PacketAppend16(p, META_CMD_SET_HOMEPAGE);
   icq_PacketAppend8(p, age);
   icq_PacketAppend16(p, 0x0200);
@@ -701,35 +609,35 @@
   icq_PacketAppend8(p, 0xFF /* lang1 */);
   icq_PacketAppend8(p, 0xFF /* lang2 */);
   icq_PacketAppend8(p, 0xFF /* lang3 */);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum2-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum2-1;
 }
 
-WORD icq_UpdateMetaInfoAbout(ICQLINK *link, const char *about)
+WORD icq_UpdateMetaInfoAbout(icq_Link *icqlink, const char *about)
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_META_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_META_USER);
   icq_PacketAppend16(p, META_CMD_SET_ABOUT);
   icq_PacketAppendString(p, about);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum2-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum2-1;
 }
 
-WORD icq_UpdateMetaInfoSecurity(ICQLINK *link, unsigned char reqauth, unsigned char webpresence,
+WORD icq_UpdateMetaInfoSecurity(icq_Link *icqlink, unsigned char reqauth, unsigned char webpresence,
                                 unsigned char pubip)
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_META_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_META_USER);
   icq_PacketAppend16(p, META_CMD_SET_SECURE);
   icq_PacketAppend8(p, !reqauth);
   icq_PacketAppend8(p, webpresence);
   icq_PacketAppend8(p, pubip);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum2-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum2-1;
 }
 
-WORD icq_UpdateNewUserInfo(ICQLINK *link, const char *nick, const char *first, const char *last,
+WORD icq_UpdateNewUserInfo(icq_Link *icqlink, const char *nick, const char *first, const char *last,
                            const char *email) /* V5 */
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_NEW_USER_INFO);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_NEW_USER_INFO);
   icq_PacketAppendString(p, nick);
   icq_PacketAppendString(p, first);
   icq_PacketAppendString(p, last);
@@ -737,15 +645,15 @@
   icq_PacketAppend8(p, 1);
   icq_PacketAppend8(p, 1);
   icq_PacketAppend8(p, 1);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum1-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum1-1;
 }
 
-WORD icq_SendMetaInfoReq(ICQLINK *link, unsigned long uin)
+WORD icq_SendMetaInfoReq(icq_Link *icqlink, unsigned long uin)
 {
-  icq_Packet *p = icq_UDPCreateStdPacket(link, UDP_CMD_META_USER);
+  icq_Packet *p = icq_UDPCreateStdPacket(icqlink, UDP_CMD_META_USER);
   icq_PacketAppend16(p, META_CMD_REQ_INFO);
   icq_PacketAppend32(p, uin);
-  icq_UDPSockWrite(link, p);
-  return link->d->icq_UDPSeqNum2-1;
+  icq_UDPSockWrite(icqlink, p);
+  return icqlink->d->icq_UDPSeqNum2-1;
 }

mercurial