Commit 1649e680 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Curl_conncache_foreach: allow callback to break loop

... and have it take a proper 'struct connectdata *' as first argument
parent 2897ce7d
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -180,10 +180,13 @@ void Curl_conncache_remove_conn(struct conncache *connc,

/* This function iterates the entire connection cache and calls the
   function func() with the connection pointer as the first argument
   and the supplied 'param' argument as the other */
   and the supplied 'param' argument as the other,

   Return 0 from func() to continue the loop, return 1 to abort it.
 */
void Curl_conncache_foreach(struct conncache *connc,
                            void *param,
                            void (*func)(void *conn, void *param))
                            int (*func)(struct connectdata *conn, void *param))
{
  struct curl_hash_iterator iter;
  struct curl_llist_element *curr;
@@ -208,7 +211,8 @@ void Curl_conncache_foreach(struct conncache *connc,
      conn = curr->ptr;
      curr = curr->next;

      func(conn, param);
      if(1 == func(conn, param))
        return;
    }

    he = Curl_hash_next_element(&iter);
+2 −1
Original line number Diff line number Diff line
@@ -48,7 +48,8 @@ void Curl_conncache_remove_conn(struct conncache *connc,

void Curl_conncache_foreach(struct conncache *connc,
                            void *param,
                            void (*func)(void *, void *));
                            int (*func)(struct connectdata *conn,
                                        void *param));

struct connectdata *
Curl_conncache_find_first_connection(struct conncache *connc);