]> andersk Git - libfaim.git/commitdiff
- Wed Mar 14 20:21:49 UTC 2001
authormid <mid>
Wed, 14 Mar 2001 20:40:42 +0000 (20:40 +0000)
committermid <mid>
Wed, 14 Mar 2001 20:40:42 +0000 (20:40 +0000)
  - Clean up declarations of TLV functions (ie, const)
  - Add -o and -O to faimtest (I didn't use your patch, josh)

CHANGES
include/aim.h
src/tlv.c
utils/faimtest/faimtest.c

diff --git a/CHANGES b/CHANGES
index c33b1f970d5fd0084dbb283766e70703cfed1331..353c5d1c99a10bded350b0e4775186aeb9e85099 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,10 @@
 
 No release numbers
 ------------------
+ - Wed Mar 14 20:21:49 UTC 2001
+  - Clean up declarations of TLV functions (ie, const)
+  - Add -o and -O to faimtest (I didn't use your patch, josh)
+
  - Wed Mar 14 03:11:03 UTC 2001
   - Err...I'll commit before I go home.  More faimtest crap.
 
index 263b2a655fe63d711a28a79474e622ca4d81b219..3cf4f13c243a32b972cedde59e3b31b421f985df 100644 (file)
@@ -397,28 +397,28 @@ struct aim_tlvlist_t {
 };
 
 /* TLV-handling functions */
-faim_internal struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen);
+faim_internal struct aim_tlvlist_t *aim_readtlvchain(const unsigned char *buf, const int maxlen);
 faim_internal void aim_freetlvchain(struct aim_tlvlist_t **list);
-faim_internal struct aim_tlv_t *aim_grabtlv(u_char *src);
-faim_internal struct aim_tlv_t *aim_grabtlvstr(u_char *src);
-faim_internal struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *, u_short, int);
-faim_internal char *aim_gettlv_str(struct aim_tlvlist_t *, u_short, int);
-faim_internal unsigned char aim_gettlv8(struct aim_tlvlist_t *list, unsigned short type, int num);
-faim_internal unsigned short aim_gettlv16(struct aim_tlvlist_t *list, unsigned short type, int num);
-faim_internal unsigned long aim_gettlv32(struct aim_tlvlist_t *list, unsigned short type, int num);
-faim_internal int aim_puttlv (u_char *dest, struct aim_tlv_t *newtlv);
+faim_internal struct aim_tlv_t *aim_grabtlv(const unsigned char *src);
+faim_internal struct aim_tlv_t *aim_grabtlvstr(const unsigned char *src);
+faim_internal struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *, const unsigned short, const int);
+faim_internal char *aim_gettlv_str(struct aim_tlvlist_t *, const unsigned short, const int);
+faim_internal unsigned char aim_gettlv8(struct aim_tlvlist_t *list, const unsigned short type, const int num);
+faim_internal unsigned short aim_gettlv16(struct aim_tlvlist_t *list, const unsigned short type, const int num);
+faim_internal unsigned long aim_gettlv32(struct aim_tlvlist_t *list, const unsigned short type, const int num);
+faim_internal int aim_puttlv (unsigned char *dest, struct aim_tlv_t *newtlv);
 faim_internal struct aim_tlv_t *aim_createtlv(void);
 faim_internal int aim_freetlv(struct aim_tlv_t **oldtlv);
-faim_internal int aim_puttlv_8(unsigned char *buf, unsigned short t, unsigned char  v);
-faim_internal int aim_puttlv_16(u_char *, u_short, u_short);
-faim_internal int aim_puttlv_32(u_char *, u_short, u_long);
-faim_internal int aim_puttlv_str(u_char *buf, u_short t, int l, char *v);
-faim_internal int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list);
-faim_internal int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val);
-faim_internal int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val);
-faim_internal int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len);
-faim_internal int aim_addtlvtochain_caps(struct aim_tlvlist_t **list, unsigned short type, unsigned short caps);
-faim_internal int aim_addtlvtochain_noval(struct aim_tlvlist_t **list, unsigned short type);
+faim_internal int aim_puttlv_8(unsigned char *buf, const unsigned short t, const unsigned char  v);
+faim_internal int aim_puttlv_16(unsigned char *, const unsigned short, const unsigned short);
+faim_internal int aim_puttlv_32(unsigned char *, const unsigned short, const unsigned long);
+faim_internal int aim_puttlv_str(u_char *buf, const unsigned short t, const int l, const char *v);
+faim_internal int aim_writetlvchain(unsigned char *buf, const int buflen, struct aim_tlvlist_t **list);
+faim_internal int aim_addtlvtochain16(struct aim_tlvlist_t **list, const unsigned short type, const unsigned short val);
+faim_internal int aim_addtlvtochain32(struct aim_tlvlist_t **list, const unsigned short type, const unsigned long val);
+faim_internal int aim_addtlvtochain_str(struct aim_tlvlist_t **list, const unsigned short type, const char *str, const int len);
+faim_internal int aim_addtlvtochain_caps(struct aim_tlvlist_t **list, const unsigned short type, const unsigned short caps);
+faim_internal int aim_addtlvtochain_noval(struct aim_tlvlist_t **list, const unsigned short type);
 faim_internal int aim_counttlvchain(struct aim_tlvlist_t **list);
 #endif /* FAIM_INTERNAL */
 
index 3119a2df0c65eaad60cafe4d42fea0eb8ae5e21f..5d7deee8a3bb523c1aa1cfc8f359ebd1faf73c27 100644 (file)
--- a/src/tlv.c
+++ b/src/tlv.c
  * be called to free the dynamic substructures.
  *
  */
-faim_export struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen)
+faim_export struct aim_tlvlist_t *aim_readtlvchain(const unsigned char *buf, const int maxlen)
 {
   int pos;
   struct aim_tlvlist_t *list;
   struct aim_tlvlist_t *cur;
   
-  u_short type;
-  u_short length;
+  unsigned short type, length;
 
   if (!buf)
     return NULL;
@@ -156,7 +155,7 @@ faim_export int aim_sizetlvchain(struct aim_tlvlist_t **list)
  * to the TLV chain.
  *
  */
-faim_export int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned short type, char *str, int len)
+faim_export int aim_addtlvtochain_str(struct aim_tlvlist_t **list, const unsigned short type, const char *str, const int len)
 {
   struct aim_tlvlist_t *newtlv;
   struct aim_tlvlist_t *cur;
@@ -196,7 +195,7 @@ faim_export int aim_addtlvtochain_str(struct aim_tlvlist_t **list, unsigned shor
  * Adds a two-byte unsigned integer to a TLV chain.
  *
  */
-faim_export int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short type, unsigned short val)
+faim_export int aim_addtlvtochain16(struct aim_tlvlist_t **list, const unsigned short type, const unsigned short val)
 {
   struct aim_tlvlist_t *newtl;
   struct aim_tlvlist_t *cur;
@@ -236,7 +235,7 @@ faim_export int aim_addtlvtochain16(struct aim_tlvlist_t **list, unsigned short
  * Adds a four-byte unsigned integer to a TLV chain.
  *
  */
-faim_export int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short type, unsigned long val)
+faim_export int aim_addtlvtochain32(struct aim_tlvlist_t **list, const unsigned short type, const unsigned long val)
 {
   struct aim_tlvlist_t *newtl;
   struct aim_tlvlist_t *cur;
@@ -289,7 +288,7 @@ faim_export int aim_addtlvtochain32(struct aim_tlvlist_t **list, unsigned short
  *      %AIM_CAPS_SENDFILE    Supports Send File functions
  *
  */
-faim_export int aim_addtlvtochain_caps(struct aim_tlvlist_t **list, unsigned short type, unsigned short caps)
+faim_export int aim_addtlvtochain_caps(struct aim_tlvlist_t **list, const unsigned short type, const unsigned short caps)
 {
   unsigned char buf[128]; /* icky fixed length buffer */
   struct aim_tlvlist_t *newtl;
@@ -330,7 +329,7 @@ faim_export int aim_addtlvtochain_caps(struct aim_tlvlist_t **list, unsigned sho
  * Adds a TLV with a zero length to a TLV chain.
  *
  */
-faim_internal int aim_addtlvtochain_noval(struct aim_tlvlist_t **list, unsigned short type)
+faim_internal int aim_addtlvtochain_noval(struct aim_tlvlist_t **list, const unsigned short type)
 {
   struct aim_tlvlist_t *newtlv;
   struct aim_tlvlist_t *cur;
@@ -369,7 +368,7 @@ faim_internal int aim_addtlvtochain_noval(struct aim_tlvlist_t **list, unsigned
  * by the chain structures.
  *
  */
-faim_export int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t **list)
+faim_export int aim_writetlvchain(unsigned char *buf, int buflen, struct aim_tlvlist_t **list)
 {
   int goodbuflen = 0;
   int i = 0;
@@ -411,7 +410,7 @@ faim_export int aim_writetlvchain(u_char *buf, int buflen, struct aim_tlvlist_t
  * in a chain.
  *
  */
-faim_export struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, u_short type, int nth)
+faim_export struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, const unsigned short type, const int nth)
 {
   int i;
   struct aim_tlvlist_t *cur;
@@ -441,7 +440,7 @@ faim_export struct aim_tlv_t *aim_gettlv(struct aim_tlvlist_t *list, u_short typ
  * dynamic buffer and must be freed by the caller.
  *
  */
-faim_export char *aim_gettlv_str(struct aim_tlvlist_t *list, u_short type, int nth)
+faim_export char *aim_gettlv_str(struct aim_tlvlist_t *list, const unsigned short type, const int nth)
 {
   struct aim_tlv_t *tlv;
   char *newstr;
@@ -466,7 +465,7 @@ faim_export char *aim_gettlv_str(struct aim_tlvlist_t *list, u_short type, int n
  * 8bit integer instead of an aim_tlv_t. 
  *
  */
-faim_internal unsigned char aim_gettlv8(struct aim_tlvlist_t *list, unsigned short type, int num)
+faim_internal unsigned char aim_gettlv8(struct aim_tlvlist_t *list, const unsigned short type, const int num)
 {
   struct aim_tlv_t *tlv;
 
@@ -485,7 +484,7 @@ faim_internal unsigned char aim_gettlv8(struct aim_tlvlist_t *list, unsigned sho
  * 16bit integer instead of an aim_tlv_t. 
  *
  */
-faim_internal unsigned short aim_gettlv16(struct aim_tlvlist_t *list, unsigned short type, int num)
+faim_internal unsigned short aim_gettlv16(struct aim_tlvlist_t *list, const unsigned short type, const int num)
 {
   struct aim_tlv_t *tlv;
 
@@ -504,7 +503,7 @@ faim_internal unsigned short aim_gettlv16(struct aim_tlvlist_t *list, unsigned s
  * 32bit integer instead of an aim_tlv_t. 
  *
  */
-faim_internal unsigned long aim_gettlv32(struct aim_tlvlist_t *list, unsigned short type, int num)
+faim_internal unsigned long aim_gettlv32(struct aim_tlvlist_t *list, const unsigned short type, const int num)
 {
   struct aim_tlv_t *tlv;
 
@@ -525,7 +524,7 @@ faim_internal unsigned long aim_gettlv32(struct aim_tlvlist_t *list, unsigned sh
  * must be freed by the caller if non-%NULL.
  *
  */
-faim_export struct aim_tlv_t *aim_grabtlv(u_char *src)
+faim_export struct aim_tlv_t *aim_grabtlv(const unsigned char *src)
 {
   struct aim_tlv_t *dest = NULL;
 
@@ -537,10 +536,10 @@ faim_export struct aim_tlv_t *aim_grabtlv(u_char *src)
   dest->length = src[2] << 8;
   dest->length += src[3];
 
-  dest->value = (u_char *) malloc(dest->length*sizeof(u_char));
-  memset(dest->value, 0, dest->length*sizeof(u_char));
+  dest->value = (unsigned char *) malloc(dest->length);
+  memset(dest->value, 0, dest->length);
 
-  memcpy(dest->value, &(src[4]), dest->length*sizeof(u_char));
+  memcpy(dest->value, &(src[4]), dest->length);
   
   return dest;
 }
@@ -558,7 +557,7 @@ faim_export struct aim_tlv_t *aim_grabtlv(u_char *src)
  * must be freed by the caller if non-%NULL.
  *
  */
-faim_export struct aim_tlv_t *aim_grabtlvstr(u_char *src)
+faim_export struct aim_tlv_t *aim_grabtlvstr(const unsigned char *src)
 {
   struct aim_tlv_t *dest = NULL;
 
@@ -570,10 +569,10 @@ faim_export struct aim_tlv_t *aim_grabtlvstr(u_char *src)
   dest->length = src[2] << 8;
   dest->length += src[3];
 
-  dest->value = (u_char *) malloc((dest->length+1)*sizeof(u_char));
-  memset(dest->value, 0, (dest->length+1)*sizeof(u_char));
+  dest->value = (unsigned char *) malloc(dest->length+1);
+  memset(dest->value, 0, dest->length+1);
 
-  memcpy(dest->value, &(src[4]), dest->length*sizeof(u_char));
+  memcpy(dest->value, src+4, dest->length);
   dest->value[dest->length] = '\0';
 
   return dest;
@@ -591,7 +590,7 @@ faim_export struct aim_tlv_t *aim_grabtlvstr(u_char *src)
  * still be called by the caller to free the structure.
  *
  */
-faim_export int aim_puttlv(u_char *dest, struct aim_tlv_t *newtlv)
+faim_export int aim_puttlv(unsigned char *dest, struct aim_tlv_t *newtlv)
 {
   int i=0;
 
@@ -651,7 +650,7 @@ faim_export int aim_freetlv(struct aim_tlv_t **oldtlv)
  * Writes a TLV with a one-byte integer value portion.
  *
  */
-faim_export int aim_puttlv_8(unsigned char *buf, unsigned short t, unsigned char  v)
+faim_export int aim_puttlv_8(unsigned char *buf, const unsigned short t, const unsigned char  v)
 {
   int curbyte=0;
 
@@ -671,12 +670,12 @@ faim_export int aim_puttlv_8(unsigned char *buf, unsigned short t, unsigned char
  * Writes a TLV with a two-byte integer value portion.
  *
  */
-faim_export int aim_puttlv_16(u_char *buf, u_short t, u_short v)
+faim_export int aim_puttlv_16(unsigned char *buf, const unsigned short t, const unsigned short v)
 {
   int curbyte=0;
-  curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff));
-  curbyte += aimutil_put16(buf+curbyte, (u_short)0x0002);
-  curbyte += aimutil_put16(buf+curbyte, (u_short)(v&0xffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)(t&0xffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)0x0002);
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)(v&0xffff));
   return curbyte;
 }
 
@@ -689,12 +688,12 @@ faim_export int aim_puttlv_16(u_char *buf, u_short t, u_short v)
  * Writes a TLV with a four-byte integer value portion.
  *
  */
-faim_export int aim_puttlv_32(u_char *buf, u_short t, u_long v)
+faim_export int aim_puttlv_32(unsigned char *buf, const unsigned short t, const unsigned long v)
 {
   int curbyte=0;
-  curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff));
-  curbyte += aimutil_put16(buf+curbyte, (u_short)0x0004);
-  curbyte += aimutil_put32(buf+curbyte, (u_long)(v&0xffffffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)(t&0xffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)0x0004);
+  curbyte += aimutil_put32(buf+curbyte, (unsigned long)(v&0xffffffff));
   return curbyte;
 }
 
@@ -710,13 +709,13 @@ faim_export int aim_puttlv_32(u_char *buf, u_short t, u_long v)
  * include the terminating NULL.)
  *
  */
-faim_export int aim_puttlv_str(u_char *buf, u_short t, int l, char *v)
+faim_export int aim_puttlv_str(unsigned char *buf, const unsigned short t, const int l, const char *v)
 {
   int curbyte;
   
   curbyte  = 0;
-  curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff));
-  curbyte += aimutil_put16(buf+curbyte, (u_short)(l&0xffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)(t&0xffff));
+  curbyte += aimutil_put16(buf+curbyte, (unsigned short)(l&0xffff));
   if (v)
     memcpy(buf+curbyte, (unsigned char *)v, l);
   curbyte += l;
index e10d4940b88d3c675e33a35810271079a1d02dc0..b43cb23d4c0379bb0c60dc4801be92568d449028 100644 (file)
@@ -313,6 +313,7 @@ int main(int argc, char **argv)
   struct aim_conn_t *waitingconn = NULL;
   int i;
   int selstat = 0;
+  static int faimtest_mode = 0;
 
   screenname = getenv("SCREENNAME");
   password = getenv("PASSWORD");
@@ -323,7 +324,7 @@ int main(int argc, char **argv)
 
   listingpath = getenv("LISTINGPATH");
 
-  while ((i = getopt(argc, argv, "u:p:a:U:P:A:l:c:h")) != EOF) {
+  while ((i = getopt(argc, argv, "u:p:a:U:P:A:l:c:hoO")) != EOF) {
     switch (i) {
     case 'u': screenname = optarg; break;
     case 'p': password = optarg; break;
@@ -333,6 +334,8 @@ int main(int argc, char **argv)
     case 'A': proxy = optarg; break;
     case 'l': listingpath = optarg; break;
     case 'c': ohcaptainmycaptain = optarg; break;
+    case 'o': faimtest_mode = 1; break; /* half old interface */
+    case 'O': faimtest_mode = 2; break; /* full old interface */
     case 'h':
     default:
       printf("faimtest\n");
@@ -345,6 +348,8 @@ int main(int argc, char **argv)
       printf("    -A host:port  Proxy host ($SOCKSPASS)\n");
       printf("    -l path       Path to listing file ($LISTINGPATH)\n");
       printf("    -c name       Screen name of owner\n");
+      printf("    -o            Login at startup, then prompt\n");
+      printf("    -O            Login, never give prompt\n");
       exit(0);
     }
   }
@@ -368,8 +373,7 @@ int main(int argc, char **argv)
     }
     sprintf(listingname, "%s/listing.txt", listingpath);
     if( (listingfile = fopen(listingname, "r")) == NULL) {
-      dvprintf("Couldn't open %s... bombing.\n", listingname);
-      exit(-1);
+      dvprintf("Couldn't open %s... disabling that shit.\n", listingname);
     }
 
     free(listingname);
@@ -377,7 +381,16 @@ int main(int argc, char **argv)
 
   faimtest_init();
 
-  cmd_init();
+  if (faimtest_mode < 2)
+    cmd_init();
+
+  if (faimtest_mode >= 1) {
+    if (login(screenname, password) == -1) {
+      if (faimtest_mode < 2)
+       cmd_uninit();
+      exit(-1);
+    }
+  }
 
   while (keepgoing) {
     waitingconn = aim_select(&aimsess, NULL, &selstat);
@@ -389,7 +402,7 @@ int main(int argc, char **argv)
     } else if (selstat == 1) { /* outgoing data pending */
       aim_tx_flushqueue(&aimsess);
     } else if (selstat == 2) { /* incoming data pending */
-      if (waitingconn->fd == STDIN_FILENO) {
+      if ((faimtest_mode < 2) && (waitingconn->fd == STDIN_FILENO)) {
        cmd_gotkey();
       } else {
        if (waitingconn->type == AIM_CONN_TYPE_RENDEZVOUS_OUT) {
@@ -410,6 +423,8 @@ int main(int argc, char **argv)
              aim_conn_kill(&aimsess, &waitingconn);
            if (!aim_getconn_type(&aimsess, AIM_CONN_TYPE_BOS)) {
              dprintf("major connection error\n");
+             if (faimtest_mode == 2)
+               break;
            }
          }
        }
@@ -420,8 +435,10 @@ int main(int argc, char **argv)
   /* close up all connections, dead or no */
   aim_logoff(&aimsess); 
 
-  printf("\n");
-  cmd_uninit();
+  if (faimtest_mode < 2) {
+    printf("\n");
+    cmd_uninit();
+  }
 
   /* Get out */
   exit(0);
@@ -793,7 +810,7 @@ int faimtest_parse_authresp(struct aim_session_t *sess, struct command_rx_struct
   if (errorcode || !bosip || !cookie) {
     dvprintf("Login Error Code 0x%04x\n", errorcode);
     dvprintf("Error URL: %s\n", errurl);
-    aim_conn_kill(sess, &command->conn); 
+    aim_conn_kill(sess, &command->conn);
     return 1;
   }
 
This page took 0.080774 seconds and 5 git commands to generate.