Index: libfaim/service.c
===================================================================
--- libfaim/service.c	(revision cf02dd64c267036375fdf872c3528766fe980d54)
+++ libfaim/service.c	(revision 7869e4801e577613b7db987d11bddb0a31fe755c)
@@ -29,5 +29,5 @@
 	/*
 	 * Send only the tool versions that the server cares about (that it
-	 * marked as supporting in the server ready SNAC).  
+	 * marked as supporting in the server ready SNAC).
 	 */
 	for (sg = ins->groups; sg; sg = sg->next) {
@@ -50,5 +50,5 @@
 /*
  * Subtype 0x0003 - Host Online
- * 
+ *
  * See comments in conn.c about how the group associations are supposed
  * to work, and how they really work.
@@ -58,7 +58,7 @@
  * We don't actually call the client here.  This starts off the connection
  * initialization routine required by all AIM connections.  The next time
- * the client is called is the CONNINITDONE callback, which should be 
+ * the client is called is the CONNINITDONE callback, which should be
  * shortly after the rate information is acknowledged.
- * 
+ *
  */
 static int hostonline(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
@@ -89,5 +89,5 @@
 	aim_setversions(sess, rx->conn);
 
-	return 1; 
+	return 1;
 }
 
@@ -161,5 +161,5 @@
  * it.  The rate classes, their limiting properties, and the definitions
  * of which SNACs are belong to which class, are defined in the
- * Rate Response packet at login to each host.  
+ * Rate Response packet at login to each host.
  *
  * Logically, all rate offenses within one class count against further
@@ -194,5 +194,5 @@
  *
  * The only other thing of note is that class 5 (chat) has slightly looser
- * limiting properties than class 3 (normal messages).  But thats just a 
+ * limiting properties than class 3 (normal messages).  But thats just a
  * small bit of trivia for you.
  *
@@ -200,5 +200,5 @@
  * system is how the actual numbers relate to the passing of time.  This
  * seems to be a big mystery.
- * 
+ *
  */
 
@@ -289,6 +289,6 @@
 		 * depending on the version we advertised in 1/17.  If we
 		 * didn't send 1/17 (evil!), then this will crash and you
-		 * die, as it will default to the old version but we have 
-		 * the new version hardcoded here. 
+		 * die, as it will default to the old version but we have
+		 * the new version hardcoded here.
 		 */
 		if (mod->version >= 3)
@@ -350,10 +350,10 @@
 {
 	aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside;
-	aim_frame_t *fr;	
+	aim_frame_t *fr;
 	aim_snacid_t snacid;
 	struct rateclass *rc;
 
 	if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 512)))
-		return -ENOMEM; 
+		return -ENOMEM;
 
 	snacid = aim_cachesnac(sess, 0x0001, 0x0008, 0x0000, NULL, 0);
@@ -372,10 +372,10 @@
 {
 	aim_conn_inside_t *ins = (aim_conn_inside_t *)conn->inside;
-	aim_frame_t *fr;	
+	aim_frame_t *fr;
 	aim_snacid_t snacid;
 	struct rateclass *rc;
 
 	if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 512)))
-		return -ENOMEM; 
+		return -ENOMEM;
 
 	snacid = aim_cachesnac(sess, 0x0001, 0x0009, 0x0000, NULL, 0);
@@ -400,5 +400,5 @@
 	code = aimbs_get16(bs);
 	rateclass = aimbs_get16(bs);
-	
+
 	windowsize = aimbs_get32(bs);
 	clear = aimbs_get32(bs);
@@ -418,8 +418,8 @@
  * How Migrations work.
  *
- * The server sends a Server Pause message, which the client should respond to 
- * with a Server Pause Ack, which contains the families it needs on this 
- * connection. The server will send a Migration Notice with an IP address, and 
- * then disconnect. Next the client should open the connection and send the 
+ * The server sends a Server Pause message, which the client should respond to
+ * with a Server Pause Ack, which contains the families it needs on this
+ * connection. The server will send a Migration Notice with an IP address, and
+ * then disconnect. Next the client should open the connection and send the
  * cookie.  Repeat the normal login process and pretend this never happened.
  *
@@ -465,6 +465,6 @@
 
 	/*
-	 * This list should have all the groups that the original 
-	 * Host Online / Server Ready said this host supports.  And 
+	 * This list should have all the groups that the original
+	 * Host Online / Server Ready said this host supports.  And
 	 * we want them all back after the migration.
 	 */
@@ -521,5 +521,5 @@
 
 	memset(&userinfo, 0, sizeof(aim_userinfo_t));
-	
+
 	newevil = aimbs_get16(bs);
 
@@ -558,5 +558,5 @@
  *
  * This is the final SNAC sent on the original connection during a migration.
- * It contains the IP and cookie used to connect to the new server, and 
+ * It contains the IP and cookie used to connect to the new server, and
  * optionally a list of the SNAC groups being migrated.
  *
@@ -576,5 +576,5 @@
 	 * moves to the new server.  When not all the groups for a connection
 	 * are migrated, or they are all migrated but some groups are moved
-	 * to a different server than others, it is called a bifurcated 
+	 * to a different server than others, it is called a bifurcated
 	 * migration.
 	 *
@@ -624,11 +624,11 @@
 	 *   3 System bulletin
 	 *   4 Nothing's wrong ("top o the world" -- normal)
-	 *   5 Lets-break-something. 
+	 *   5 Lets-break-something.
 	 *
 	 */
 	id = aimbs_get16(bs);
 
-	/* 
-	 * TLVs follow 
+	/*
+	 * TLVs follow
 	 */
 	tlvlist = aim_tlvlist_read(bs);
@@ -646,5 +646,5 @@
 }
 
-/* 
+/*
  * Subtype 0x0014 - Set privacy flags
  *
@@ -663,8 +663,8 @@
  * Subtype 0x0016 - No-op
  *
- * WinAIM sends these every 4min or so to keep the connection alive.  Its not 
+ * WinAIM sends these every 4min or so to keep the connection alive.  Its not
  * really necessary.
  *
- * Wha?  No?  Since when?  I think WinAIM sends an empty channel 3 
+ * Wha?  No?  Since when?  I think WinAIM sends an empty channel 3
  * SNAC as a no-op...
  */
@@ -674,12 +674,12 @@
 }
 
-/* 
+/*
  * Subtype 0x0017 - Set client versions
  *
- * If you've seen the clientonline/clientready SNAC you're probably 
+ * If you've seen the clientonline/clientready SNAC you're probably
  * wondering what the point of this one is.  And that point seems to be
  * that the versions in the client online SNAC are sent too late for the
  * server to be able to use them to change the protocol for the earlier
- * login packets (client versions are sent right after Host Online is 
+ * login packets (client versions are sent right after Host Online is
  * received, but client online versions aren't sent until quite a bit later).
  * We can see them already making use of this by changing the format of
@@ -705,5 +705,5 @@
 	/*
 	 * Send only the versions that the server cares about (that it
-	 * marked as supporting in the server ready SNAC).  
+	 * marked as supporting in the server ready SNAC).
 	 */
 	for (sg = ins->groups; sg; sg = sg->next) {
@@ -741,10 +741,10 @@
 }
 
-/* 
+/*
  * Subtype 0x001e - Extended Status
  *
  * Sets your ICQ status (available, away, do not disturb, etc.)
  *
- * These are the same TLVs seen in user info.  You can 
+ * These are the same TLVs seen in user info.  You can
  * also set 0x0008 and 0x000c.
  */
@@ -767,9 +767,9 @@
 	snacid = aim_cachesnac(sess, 0x0001, 0x001e, 0x0000, NULL, 0);
 	aim_putsnac(&fr->data, 0x0001, 0x001e, 0x0000, snacid);
-	
+
 	aim_tlvlist_add_32(&tl, 0x0006, data);
 	aim_tlvlist_write(&fr->data, &tl);
 	aim_tlvlist_free(&tl);
-	
+
 	aim_tx_enqueue(sess, fr);
 
@@ -777,11 +777,11 @@
 }
 
-/* 
+/*
  * Subtype 0x001e - Extended Status.
  *
- * Sets your "available" message.  This is currently only supported by iChat 
+ * Sets your "available" message.  This is currently only supported by iChat
  * and Gaim.
  *
- * These are the same TLVs seen in user info.  You can 
+ * These are the same TLVs seen in user info.  You can
  * also set 0x0008 and 0x000c.
  */
@@ -851,12 +851,12 @@
  * the data that the specific client should have, the client will get the
  * following message from "AOL Instant Messenger":
- *    "You have been disconnected from the AOL Instant Message Service (SM) 
+ *    "You have been disconnected from the AOL Instant Message Service (SM)
  *     for accessing the AOL network using unauthorized software.  You can
- *     download a FREE, fully featured, and authorized client, here 
+ *     download a FREE, fully featured, and authorized client, here
  *     http://www.aol.com/aim/download2.html"
  * The connection is then closed, recieving disconnect code 1, URL
- * http://www.aim.aol.com/errors/USER_LOGGED_OFF_NEW_LOGIN.html.  
- *
- * Note, however, that numerous inconsistencies can cause the above error, 
+ * http://www.aim.aol.com/errors/USER_LOGGED_OFF_NEW_LOGIN.html.
+ *
+ * Note, however, that numerous inconsistencies can cause the above error,
  * not just sending back a bad hash.  Do not immediatly suspect this code
  * if you get disconnected.  AOL and the open/free software community have
@@ -935,5 +935,5 @@
 	if ((flag == AIM_SENDMEMBLOCK_FLAG_ISHASH) && buf && (len == 0x10)) { /* we're getting a hash */
 
-		aimbs_putraw(&fr->data, buf, 0x10); 
+		aimbs_putraw(&fr->data, buf, 0x10);
 
 	} else if (buf && (len > 0)) { /* use input buffer */
@@ -941,5 +941,5 @@
 		md5_byte_t digest[0x10];
 
-		md5_init(&state);	
+		md5_init(&state);
 		md5_append(&state, (const md5_byte_t *)buf, len);
 		md5_finish(&state, digest);
@@ -954,5 +954,5 @@
 		/*
 		 * These MD5 routines are stupid in that you have to have
-		 * at least one append.  So thats why this doesn't look 
+		 * at least one append.  So thats why this doesn't look
 		 * real logical.
 		 */
@@ -965,5 +965,5 @@
 	} else {
 
-		/* 
+		/*
 		 * This data is correct for AIM 3.5.1670.
 		 *
@@ -1006,6 +1006,6 @@
  * Subtype 0x0021 - Receive our extended status
  *
- * This is used for iChat's "available" messages, and maybe ICQ extended 
- * status messages?  It's also used to tell the client whether or not it 
+ * This is used for iChat's "available" messages, and maybe ICQ extended
+ * status messages?  It's also used to tell the client whether or not it
  * needs to upload an SSI buddy icon... who engineers this stuff, anyway?
  */
@@ -1017,5 +1017,5 @@
 	fu8_t flags, length;
 
-	type = aimbs_get16(bs); 
+	type = aimbs_get16(bs);
 	flags = aimbs_get8(bs);
 	length = aimbs_get8(bs);
