diff options
Diffstat (limited to 'psched.h')
-rw-r--r-- | psched.h | 17 |
1 files changed, 16 insertions, 1 deletions
@@ -5,6 +5,7 @@ typedef struct _flxQueryJob flxQueryJob; typedef struct _flxResponseJob flxResponseJob; typedef struct _flxPacketScheduler flxPacketScheduler; typedef struct _flxKnownAnswer flxKnownAnswer; +typedef struct _flxProbeJob flxProbeJob; #include "timeeventq.h" #include "rr.h" @@ -28,6 +29,7 @@ struct _flxResponseJob { gboolean address_valid; gboolean done; GTimeVal delivery; + gboolean flush_cache; FLX_LLIST_FIELDS(flxResponseJob, jobs); }; @@ -38,6 +40,17 @@ struct _flxKnownAnswer { FLX_LLIST_FIELDS(flxKnownAnswer, known_answer); }; +struct _flxProbeJob { + flxPacketScheduler *scheduler; + flxTimeEvent *time_event; + flxRecord *record; + + gboolean chosen; /* Use for packet assembling */ + GTimeVal delivery; + + FLX_LLIST_FIELDS(flxProbeJob, jobs); +}; + struct _flxPacketScheduler { flxServer *server; @@ -46,13 +59,15 @@ struct _flxPacketScheduler { FLX_LLIST_HEAD(flxQueryJob, query_jobs); FLX_LLIST_HEAD(flxResponseJob, response_jobs); FLX_LLIST_HEAD(flxKnownAnswer, known_answers); + FLX_LLIST_HEAD(flxProbeJob, probe_jobs); }; flxPacketScheduler *flx_packet_scheduler_new(flxServer *server, flxInterface *i); void flx_packet_scheduler_free(flxPacketScheduler *s); void flx_packet_scheduler_post_query(flxPacketScheduler *s, flxKey *key, gboolean immediately); -void flx_packet_scheduler_post_response(flxPacketScheduler *s, const flxAddress *a, flxRecord *record, gboolean immediately); +void flx_packet_scheduler_post_response(flxPacketScheduler *s, const flxAddress *a, flxRecord *record, gboolean flush_cache, gboolean immediately); +void flx_packet_scheduler_post_probe(flxPacketScheduler *s, flxRecord *record, gboolean immediately); void flx_packet_scheduler_incoming_query(flxPacketScheduler *s, flxKey *key); void flx_packet_scheduler_incoming_response(flxPacketScheduler *s, flxRecord *record); |