]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
order requests by sequence number, too
authorAlan T. DeKok <aland@freeradius.org>
Fri, 27 Aug 2021 14:57:40 +0000 (10:57 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 27 Aug 2021 15:20:19 +0000 (11:20 -0400)
src/lib/io/listen.h
src/lib/io/worker.c

index ed98640957fb714bc7b808e247c8408ec8ca7eb2..d1d42ef955ddd7f25ecd0317fb306f077af5c144 100644 (file)
@@ -62,6 +62,8 @@ struct fr_async_s {
        fr_listen_t             *listen;        //!< How we received this request,
                                                //!< and how we'll send the reply.
        uint32_t                priority;       //!< higher == higher priority
+
+       uint32_t                sequence;       //!< higher == higher priority, too
 };
 
 int fr_io_listen_free(fr_listen_t *li);
index e063a03661083f0e743ba3cf3a0220efcb93db8a..806824ca0cf9543227eb2e77db1735b314903de3 100644 (file)
@@ -829,6 +829,9 @@ static int8_t worker_runnable_cmp(void const *one, void const *two)
        ret = CMP(a->async->priority, b->async->priority);
        if (ret != 0) return ret;
 
+       ret = CMP(a->async->sequence, b->async->sequence);
+       if (ret != 0) return ret;
+
        return CMP(a->async->recv_time, b->async->recv_time);
 }