]> andersk Git - libfaim.git/commitdiff
- Fri Jun 15 17:51:27 EDT 2001
authormid <mid>
Sat, 16 Jun 2001 05:14:36 +0000 (05:14 +0000)
committermid <mid>
Sat, 16 Jun 2001 05:14:36 +0000 (05:14 +0000)
  - Make faimtest compile on RH7.1 (new gcc).
  - Add aim_conn_getsess()
  - Add aim_getconn_type_all() and aim_getconn_fd().
  - Make aim_connrst() and aim_conn_getnext() static to conn.c.
  - Why does arcanejill think she is in EDT? Oh well.

CHANGES
include/aim.h
include/aim_internal.h
src/conn.c
utils/faimtest/faimtest.c

diff --git a/CHANGES b/CHANGES
index 2b73234255c0cd00e5441a61af37d5b371697e12..7cd54c6ddafc62446ef0ea95158413e8424c6daa 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,13 @@
 
 No release numbers
 ------------------
+ - Fri Jun 15 17:51:27 EDT 2001
+  - Make faimtest compile on RH7.1 (new gcc).
+  - Add aim_conn_getsess()
+  - Add aim_getconn_type_all() and aim_getconn_fd().
+  - Make aim_connrst() and aim_conn_getnext() static to conn.c.
+  - Why does arcanejill think she is in EDT? Oh well.
+
  - Thu Jun 14 17:37:47 PDT 2001
   - Rearrange aim_setprofile().  It will now let you _not_ send a profile,
       if you really want to (pass NULL).  Note that this is quite different
index b2fd37bdfbd7f9e6de5b63fc2e5675c50aa9c20b..e7a2440089b106e149a11ddab10cc8577998aa26 100644 (file)
@@ -260,6 +260,7 @@ struct aim_conn_t {
   struct aim_rxcblist_t *handlerlist;
   faim_mutex_t active; /* lock around read/writes */
   faim_mutex_t seqnum_lock; /* lock around ->seqnum changes */
+  void *sessv;
   struct aim_conn_t *next;
 };
 
@@ -514,6 +515,7 @@ faim_export int aim_conn_setlatency(struct aim_conn_t *conn, int newval);
 faim_export int aim_conn_addhandler(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short type, aim_rxcallback_t newhandler, u_short flags);
 faim_export int aim_clearhandlers(struct aim_conn_t *conn);
 
+faim_export struct aim_session_t *aim_conn_getsess(struct aim_conn_t *conn);
 faim_export void aim_conn_close(struct aim_conn_t *deadconn);
 faim_export struct aim_conn_t *aim_newconn(struct aim_session_t *, int type, char *dest);
 faim_export int aim_conngetmaxfd(struct aim_session_t *);
@@ -529,6 +531,8 @@ faim_export void aim_session_init(struct aim_session_t *, unsigned long flags, i
 faim_export void aim_session_kill(struct aim_session_t *);
 faim_export void aim_setupproxy(struct aim_session_t *sess, char *server, char *username, char *password);
 faim_export struct aim_conn_t *aim_getconn_type(struct aim_session_t *, int type);
+faim_export struct aim_conn_t *aim_getconn_type_all(struct aim_session_t *, int type);
+faim_export struct aim_conn_t *aim_getconn_fd(struct aim_session_t *, int fd);
 
 /* aim_misc.c */
 
index 975a702240242f17059bf890b165feed541a206b..fff1e52014466050c7282cac054ebe91c949d657 100644 (file)
@@ -83,8 +83,6 @@ faim_internal struct aim_snac_t *aim_remsnac(struct aim_session_t *, u_long id);
 faim_internal int aim_cleansnacs(struct aim_session_t *, int maxage);
 faim_internal int aim_putsnac(u_char *, int, int, int, u_long);
 
-faim_internal void aim_connrst(struct aim_session_t *);
-faim_internal struct aim_conn_t *aim_conn_getnext(struct aim_session_t *);
 faim_internal struct aim_conn_t *aim_cloneconn(struct aim_session_t *sess, struct aim_conn_t *src);
 
 faim_internal int aim_oft_buildheader(unsigned char *,struct aim_fileheader_t *);
index 0b5644b48f6ca97c9abeb15a5dc029a712cc6ca5..517cb0c933ed55fd28dac2caf60caec0323ff1b6 100644 (file)
@@ -22,7 +22,7 @@
  * Clears out the connection list and kills any connections left.
  *
  */
-faim_internal void aim_connrst(struct aim_session_t *sess)
+static void aim_connrst(struct aim_session_t *sess)
 {
   faim_mutex_init(&sess->connlistlock);
   if (sess->connlist) {
@@ -72,7 +72,7 @@ static void aim_conn_init(struct aim_conn_t *deadconn)
  * Allocate a new empty connection structure.
  *
  */
-faim_internal struct aim_conn_t *aim_conn_getnext(struct aim_session_t *sess)
+static struct aim_conn_t *aim_conn_getnext(struct aim_session_t *sess)
 {
   struct aim_conn_t *newconn, *cur;
 
@@ -191,6 +191,38 @@ faim_export struct aim_conn_t *aim_getconn_type(struct aim_session_t *sess,
       break;
   }
   faim_mutex_unlock(&sess->connlistlock);
+
+  return cur;
+}
+
+faim_export struct aim_conn_t *aim_getconn_type_all(struct aim_session_t *sess,
+                                                   int type)
+{
+  struct aim_conn_t *cur;
+
+  faim_mutex_lock(&sess->connlistlock);
+  for (cur = sess->connlist; cur; cur = cur->next) {
+    if (cur->type == type)
+      break;
+  }
+  faim_mutex_unlock(&sess->connlistlock);
+
+  return cur;
+}
+
+/* If you pass -1 for the fd, you'll get what you ask for.  Gibberish. */
+faim_export struct aim_conn_t *aim_getconn_fd(struct aim_session_t *sess,
+                                             int fd)
+{
+  struct aim_conn_t *cur;
+
+  faim_mutex_lock(&sess->connlistlock);
+  for (cur = sess->connlist; cur; cur = cur->next) {
+    if (cur->fd == fd)
+      break;
+  }
+  faim_mutex_unlock(&sess->connlistlock);
+
   return cur;
 }
 
@@ -393,6 +425,7 @@ faim_internal struct aim_conn_t *aim_cloneconn(struct aim_session_t *sess,
   conn->priv = src->priv;
   conn->lastactivity = src->lastactivity;
   conn->forcedlatency = src->forcedlatency;
+  conn->sessv = src->sessv;
 
   /* clone handler list */
   for (cur = src->handlerlist; cur; cur = cur->next) {
@@ -432,7 +465,8 @@ faim_export struct aim_conn_t *aim_newconn(struct aim_session_t *sess,
     return NULL;
 
   faim_mutex_lock(&connstruct->active);
-  
+
+  connstruct->sessv = (void *)sess;
   connstruct->type = type;
 
   if (!dest) { /* just allocate a struct */
@@ -899,6 +933,15 @@ faim_export int aim_conn_completeconnect(struct aim_session_t *sess, struct aim_
   return 0;
 }
 
+faim_export struct aim_session_t *aim_conn_getsess(struct aim_conn_t *conn)
+{
+
+  if (!conn)
+    return NULL;
+
+  return (struct aim_session_t *)conn->sessv;
+}
+
 /*
  * aim_logoff()
  *
index 89b9857ae0b07231cbad369edb7cac6c1daa030d..ee76337d83c82dd7305afc432cbb462c070f1876 100644 (file)
@@ -552,11 +552,11 @@ static int faimtest_icbmparaminfo(struct aim_session_t *sess, struct command_rx_
   va_list ap;
 
   va_start(ap, command);
-  maxchannel = va_arg(ap, unsigned short);
+  maxchannel = va_arg(ap, unsigned int);
   defflags = va_arg(ap, unsigned long);
-  maxicbmlen = va_arg(ap, unsigned short);
-  maxsenderwarn = va_arg(ap, unsigned short);
-  maxrecverwarn = va_arg(ap, unsigned short);
+  maxicbmlen = va_arg(ap, unsigned int);
+  maxsenderwarn = va_arg(ap, unsigned int);
+  maxrecverwarn = va_arg(ap, unsigned int);
   minmsginterval = va_arg(ap, unsigned long);
   va_end(ap);
 
This page took 0.067557 seconds and 5 git commands to generate.