Lines Matching refs:src
403 static errno_t nstat_client_send_counts(nstat_client *client, nstat_src *src, unsigned long lo…
404 static int nstat_client_send_description(nstat_client *client, nstat_src *src, u_int64_t c…
405 static int nstat_client_send_update(nstat_client *client, nstat_src *src, u_int64_t contex…
406 static errno_t nstat_client_send_removed(nstat_client *client, nstat_src *src, u_int16_t hdr_f…
407 static errno_t nstat_client_send_goodbye(nstat_client *client, nstat_src *src);
408 static void nstat_client_cleanup_source(nstat_client *client, nstat_src *src, boolean_t);
409 static bool nstat_client_reporting_allowed(nstat_client *client, nstat_src *src, u_int64_t …
415 static errno_t nstat_client_send_event(nstat_client *client, nstat_src *src, u_int64_t event);
464 #define NSTAT_NOTE_SRC(field, client, src) \ argument
466 NSTAT_TRACE(field, client, (src != NULL)? src->nts_srcref: 0); \
489 static errno_t nstat_client_send_counts(nstat_client *client, nstat_src *src, unsigned long lo…
490 static int nstat_client_send_description(nstat_client *client, nstat_src *src, u_int64_t c…
491 static int nstat_client_send_update(nstat_client *client, nstat_src *src, u_int64_t contex…
492 static errno_t nstat_client_send_removed(nstat_client *client, nstat_src *src, u_int16_t hdr_f…
493 static errno_t nstat_client_send_goodbye(nstat_client *client, nstat_src *src);
494 static void nstat_client_cleanup_source(nstat_client *client, nstat_src *src, boolean_t);
495 static bool nstat_client_reporting_allowed(nstat_client *client, nstat_src *src, u_int64_t …
501 static errno_t nstat_client_send_event(nstat_client *client, nstat_src *src, u_int64_t event);
625 const struct sockaddr *src, in nstat_copy_sa_out() argument
629 if (src->sa_len > maxlen) { in nstat_copy_sa_out()
633 SOCKADDR_COPY(src, dst, src->sa_len); in nstat_copy_sa_out()
634 if (src->sa_family == AF_INET6 && in nstat_copy_sa_out()
635 src->sa_len >= sizeof(struct sockaddr_in6)) { in nstat_copy_sa_out()
638 sin6->sin6_scope_id = (SIN6(src))->sin6_scope_id; in nstat_copy_sa_out()
843 nstat_src *src = NULL; in nstat_client_sanitize_cookie() local
847 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_client_sanitize_cookie()
849 nstat_provider *sp = src->nts_provider; in nstat_client_sanitize_cookie()
852 sp->nstat_cookie_equal(src->nts_cookie, cookie)) { in nstat_client_sanitize_cookie()
856 if (src) { in nstat_client_sanitize_cookie()
857 nstat_client_send_goodbye(client, src); in nstat_client_sanitize_cookie()
858 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_client_sanitize_cookie()
862 if (src) { in nstat_client_sanitize_cookie()
863 nstat_client_cleanup_source(NULL, src, TRUE); in nstat_client_sanitize_cookie()
1859 nstat_src *src; in nstat_pcb_detach() local
1871 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_pcb_detach()
1873 nstat_provider_id_t provider_id = src->nts_provider->nstat_provider_id; in nstat_pcb_detach()
1875 tucookie = (struct nstat_tucookie *)src->nts_cookie; in nstat_pcb_detach()
1882 if (src) { in nstat_pcb_detach()
1883 result = nstat_client_send_goodbye(client, src); in nstat_pcb_detach()
1885 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_pcb_detach()
1886 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstat_pcb_detach()
1891 while ((src = TAILQ_FIRST(&dead_list))) { in nstat_pcb_detach()
1892 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstat_pcb_detach()
1893 nstat_client_cleanup_source(NULL, src, TRUE); in nstat_pcb_detach()
1901 nstat_src *src; in nstat_pcb_event() local
1921 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_pcb_event()
1923 provider_id = src->nts_provider->nstat_provider_id; in nstat_pcb_event()
1925 tucookie = (struct nstat_tucookie *)src->nts_cookie; in nstat_pcb_event()
1932 if (src && ((client->ntc_provider_filters[provider_id].npf_events & event) != 0)) { in nstat_pcb_event()
1933 result = nstat_client_send_event(client, src, event); in nstat_pcb_event()
1944 nstat_src *src; in nstat_pcb_cache() local
1954 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_pcb_cache()
1956 tucookie = (struct nstat_tucookie *)src->nts_cookie; in nstat_pcb_cache()
1997 nstat_src *src; in nstat_pcb_invalidate_cache() local
2007 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_pcb_invalidate_cache()
2009 tucookie = (struct nstat_tucookie *)src->nts_cookie; in nstat_pcb_invalidate_cache()
3102 nstat_src *src; in ntstat_userland_stats_close() local
3119 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in ntstat_userland_stats_close()
3121 if (shad == (struct nstat_tu_shadow *)src->nts_cookie) { in ntstat_userland_stats_close()
3122 nstat_provider_id_t provider_id = src->nts_provider->nstat_provider_id; in ntstat_userland_stats_close()
3131 if (src) { in ntstat_userland_stats_close()
3132 result = nstat_client_send_goodbye(client, src); in ntstat_userland_stats_close()
3134 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in ntstat_userland_stats_close()
3135 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in ntstat_userland_stats_close()
3153 while ((src = TAILQ_FIRST(&dead_list))) { in ntstat_userland_stats_close()
3154 TAILQ_REMOVE(&dead_list, src, nts_client_link); in ntstat_userland_stats_close()
3155 nstat_client_cleanup_source(NULL, src, TRUE); in ntstat_userland_stats_close()
3169 nstat_src *src; in ntstat_userland_stats_event_locked() local
3182 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) { in ntstat_userland_stats_event_locked()
3183 provider_id = src->nts_provider->nstat_provider_id; in ntstat_userland_stats_event_locked()
3186 if (shad == (struct nstat_tu_shadow *)src->nts_cookie) { in ntstat_userland_stats_event_locked()
3191 if (src && ((client->ntc_provider_filters[provider_id].npf_events & event) != 0)) { in ntstat_userland_stats_event_locked()
3192 result = nstat_client_send_event(client, src, event); in ntstat_userland_stats_event_locked()
3209 nstat_src *src; in ntstat_userland_stats_event() local
3228 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in ntstat_userland_stats_event()
3230 if (shad == (struct nstat_tu_shadow *)src->nts_cookie) { in ntstat_userland_stats_event()
3235 if (src) { in ntstat_userland_stats_event()
3236 if (!(src->nts_filter & NSTAT_FILTER_TCP_NO_EARLY_CLOSE)) { in ntstat_userland_stats_event()
3237 result = nstat_client_send_goodbye(client, src); in ntstat_userland_stats_event()
3239 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in ntstat_userland_stats_event()
3240 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in ntstat_userland_stats_event()
3247 while ((src = TAILQ_FIRST(&dead_list))) { in ntstat_userland_stats_event()
3248 TAILQ_REMOVE(&dead_list, src, nts_client_link); in ntstat_userland_stats_event()
3249 nstat_client_cleanup_source(NULL, src, TRUE); in ntstat_userland_stats_event()
3259 nstat_src *src, *tmpsrc; in nstats_userland_stats_defunct_for_process() local
3273 TAILQ_FOREACH_SAFE(src, &client->ntc_src_queue, nts_client_link, tmpsrc) in nstats_userland_stats_defunct_for_process()
3275 nstat_provider_id_t provider_id = src->nts_provider->nstat_provider_id; in nstats_userland_stats_defunct_for_process()
3279 shad = (struct nstat_tu_shadow *)src->nts_cookie; in nstats_userland_stats_defunct_for_process()
3281 result = nstat_client_send_goodbye(client, src); in nstats_userland_stats_defunct_for_process()
3283 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstats_userland_stats_defunct_for_process()
3284 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstats_userland_stats_defunct_for_process()
3310 while ((src = TAILQ_FIRST(&dead_list))) { in nstats_userland_stats_defunct_for_process()
3311 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstats_userland_stats_defunct_for_process()
3312 nstat_client_cleanup_source(NULL, src, TRUE); in nstats_userland_stats_defunct_for_process()
3763 nstat_src *src; in nstat_provider_stats_close() local
3791 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_provider_stats_close()
3793 if ((gshad == (struct nstat_generic_shadow *)src->nts_cookie) && in nstat_provider_stats_close()
3794 (gshad->gshad_provider == src->nts_provider->nstat_provider_id)) { in nstat_provider_stats_close()
3798 if (src) { in nstat_provider_stats_close()
3799 result = nstat_client_send_goodbye(client, src); in nstat_provider_stats_close()
3804 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_provider_stats_close()
3805 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstat_provider_stats_close()
3818 while ((src = TAILQ_FIRST(&dead_list))) { in nstat_provider_stats_close()
3819 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstat_provider_stats_close()
3820 nstat_client_cleanup_source(NULL, src, TRUE); in nstat_provider_stats_close()
3829 nstat_src *src; in nstat_provider_stats_event() local
3856 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_provider_stats_event()
3858 if (gshad == (struct nstat_generic_shadow *)src->nts_cookie) { in nstat_provider_stats_event()
3863 if (src) { in nstat_provider_stats_event()
3864 src->nts_reported = false; in nstat_provider_stats_event()
3866 result = nstat_client_send_event(client, src, event); in nstat_provider_stats_event()
3904 nstat_src *src; in nstat_ifnet_lookup() local
3955 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_ifnet_lookup()
3957 if (src->nts_provider != &nstat_ifnet_provider) { in nstat_ifnet_lookup()
3960 nstat_client_send_description(client, src, 0, 0); in nstat_ifnet_lookup()
4031 nstat_src *src; in nstat_ifnet_release() local
4040 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_ifnet_release()
4043 if (src->nts_provider != &nstat_ifnet_provider || in nstat_ifnet_release()
4044 src->nts_cookie == cookie) { in nstat_ifnet_release()
4047 ifcookie = (struct nstat_ifnet_cookie *)src->nts_cookie; in nstat_ifnet_release()
4489 nstat_src *src; in nstat_ifnet_threshold_reached() local
4495 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_ifnet_threshold_reached()
4497 if (src->nts_provider != &nstat_ifnet_provider) { in nstat_ifnet_threshold_reached()
4500 ifcookie = (struct nstat_ifnet_cookie *)src->nts_cookie; in nstat_ifnet_threshold_reached()
4505 nstat_client_send_counts(client, src, 0, 0, NULL); in nstat_ifnet_threshold_reached()
5186 nstat_src *src, in nstat_client_send_event() argument
5192 if (nstat_client_reporting_allowed(client, src, 0)) { in nstat_client_send_event()
5194 result = nstat_client_send_update(client, src, 0, event, 0, NULL); in nstat_client_send_event()
5213 nstat_src *src) in nstat_client_send_goodbye() argument
5219 …if (nstat_client_reporting_allowed(client, src, (src->nts_reported)? NSTAT_FILTER_SUPPRESS_BORING_… in nstat_client_send_goodbye()
5222 result = nstat_client_send_update(client, src, 0, 0, NSTAT_MSG_HDR_FLAG_CLOSING, NULL); in nstat_client_send_goodbye()
5232 result = nstat_client_send_counts(client, src, 0, NSTAT_MSG_HDR_FLAG_CLOSING, NULL); in nstat_client_send_goodbye()
5242 result = nstat_client_send_description(client, src, 0, NSTAT_MSG_HDR_FLAG_CLOSING); in nstat_client_send_goodbye()
5254 result = nstat_client_send_removed(client, src, hdr_flags); in nstat_client_send_goodbye()
5343 nstat_src *src, *tmpsrc; in nstat_idle_check() local
5352 TAILQ_FOREACH_SAFE(src, &client->ntc_src_queue, nts_client_link, tmpsrc) in nstat_idle_check()
5354 if (src->nts_provider->nstat_gone(src->nts_cookie)) { in nstat_idle_check()
5358 NSTAT_NOTE_SRC(nstat_src_gone_idlecheck, client, src); in nstat_idle_check()
5359 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_idle_check()
5361 result = nstat_client_send_goodbye(client, src); in nstat_idle_check()
5364 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstat_idle_check()
5380 while ((src = TAILQ_FIRST(&dead_list))) { in nstat_idle_check()
5381 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstat_idle_check()
5383 nstat_client_cleanup_source(NULL, src, FALSE); in nstat_idle_check()
5409 struct nstat_src *src, in nstat_client_cleanup_source() argument
5415 result = nstat_client_send_removed(client, src, 0); in nstat_client_cleanup_source()
5424 src->nts_provider->nstat_release(src->nts_cookie, locked); in nstat_client_cleanup_source()
5426 kfree_type(struct nstat_src, src); in nstat_client_cleanup_source()
5432 nstat_src *src, in nstat_client_reporting_allowed() argument
5435 if (src->nts_provider->nstat_reporting_allowed == NULL) { in nstat_client_reporting_allowed()
5439 return src->nts_provider->nstat_reporting_allowed(src->nts_cookie, in nstat_client_reporting_allowed()
5440 &client->ntc_provider_filters[src->nts_provider->nstat_provider_id], suppression_flags); in nstat_client_reporting_allowed()
5492 nstat_src *src; in nstat_client_disconnect() local
5531 while ((src = TAILQ_FIRST(&cleanup_list))) { in nstat_client_disconnect()
5532 TAILQ_REMOVE(&cleanup_list, src, nts_client_link); in nstat_client_disconnect()
5533 nstat_client_cleanup_source(NULL, src, FALSE); in nstat_client_disconnect()
5560 nstat_src *src, in nstat_client_send_counts() argument
5569 if (src->nts_provider->nstat_counts == NULL) { in nstat_client_send_counts()
5578 counts.srcref = src->nts_srcref; in nstat_client_send_counts()
5581 if (src->nts_provider->nstat_counts(src->nts_cookie, &counts.counts, gone) == 0) { in nstat_client_send_counts()
5582 if ((src->nts_filter & NSTAT_FILTER_NOZEROBYTES) && in nstat_client_send_counts()
5601 nstat_src *src, in nstat_client_append_counts() argument
5605 if (!src->nts_provider->nstat_counts) { in nstat_client_append_counts()
5613 counts.srcref = src->nts_srcref; in nstat_client_append_counts()
5617 result = src->nts_provider->nstat_counts(src->nts_cookie, &counts.counts, gone); in nstat_client_append_counts()
5622 if ((src->nts_filter & NSTAT_FILTER_NOZEROBYTES) == NSTAT_FILTER_NOZEROBYTES && in nstat_client_append_counts()
5633 nstat_src *src, in nstat_client_send_description() argument
5638 if (src->nts_provider->nstat_descriptor_length == 0 || in nstat_client_send_description()
5639 src->nts_provider->nstat_copy_descriptor == NULL) { in nstat_client_send_description()
5646 …size_t size = offsetof(nstat_msg_src_description, data) + src->nts_provider->nstat_descri… in nstat_client_send_description()
5664 desc->srcref = src->nts_srcref; in nstat_client_send_description()
5666 desc->provider = src->nts_provider->nstat_provider_id; in nstat_client_send_description()
5669 …errno_t result = src->nts_provider->nstat_copy_descriptor(src->nts_cookie, desc_data_ptr, src->nts… in nstat_client_send_description()
5688 nstat_src *src) in nstat_client_append_description() argument
5690 …size_t size = offsetof(nstat_msg_src_description, data) + src->nts_provider->nstat_descriptor_len… in nstat_client_append_description()
5691 if (size > 512 || src->nts_provider->nstat_descriptor_length == 0 || in nstat_client_append_description()
5692 src->nts_provider->nstat_copy_descriptor == NULL) { in nstat_client_append_description()
5703 desc->srcref = src->nts_srcref; in nstat_client_append_description()
5705 desc->provider = src->nts_provider->nstat_provider_id; in nstat_client_append_description()
5711 result = src->nts_provider->nstat_copy_descriptor(src->nts_cookie, desc_data_ptr, in nstat_client_append_description()
5712 src->nts_provider->nstat_descriptor_length); in nstat_client_append_description()
5723 nstat_src *src) in nstat_extension_flags_for_source() argument
5725 VERIFY(client != NULL & src != NULL); in nstat_extension_flags_for_source()
5726 nstat_provider_id_t provider_id = src->nts_provider->nstat_provider_id; in nstat_extension_flags_for_source()
5734 nstat_src *src, in nstat_client_send_update() argument
5741 if ((src->nts_provider->nstat_descriptor_length == 0 || in nstat_client_send_update()
5742 src->nts_provider->nstat_copy_descriptor == NULL) && in nstat_client_send_update()
5743 src->nts_provider->nstat_counts == NULL) { in nstat_client_send_update()
5751 src->nts_provider->nstat_descriptor_length; in nstat_client_send_update()
5754 u_int64_t extension_mask = nstat_extension_flags_for_source(client, src); in nstat_client_send_update()
5756 if ((extension_mask != 0) && (src->nts_provider->nstat_copy_extension != NULL)) { in nstat_client_send_update()
5760 …size_t extension_size = src->nts_provider->nstat_copy_extension(src->nts_cookie, extension_id, NUL… in nstat_client_send_update()
5791 desc->srcref = src->nts_srcref; in nstat_client_send_update()
5793 desc->provider = src->nts_provider->nstat_provider_id; in nstat_client_send_update()
5806 if (src->nts_provider->nstat_descriptor_length != 0 && src->nts_provider->nstat_copy_descriptor) { in nstat_client_send_update()
5809 result = src->nts_provider->nstat_copy_descriptor(src->nts_cookie, desc_data_ptr, in nstat_client_send_update()
5810 src->nts_provider->nstat_descriptor_length); in nstat_client_send_update()
5818 …_msg_src_extended_item_hdr *)mtodo(msg, sizeof(nstat_msg_src_update_hdr) + src->nts_provider->nsta… in nstat_client_send_update()
5826 …size_t extension_size = src->nts_provider->nstat_copy_extension(src->nts_cookie, extension_id, buf… in nstat_client_send_update()
5846 if (src->nts_provider->nstat_counts) { in nstat_client_send_update()
5847 result = src->nts_provider->nstat_counts(src->nts_cookie, &desc->counts, gone); in nstat_client_send_update()
5849 if ((src->nts_filter & NSTAT_FILTER_NOZEROBYTES) == NSTAT_FILTER_NOZEROBYTES && in nstat_client_send_update()
5862 src->nts_reported = true; in nstat_client_send_update()
5871 nstat_src *src, in nstat_client_append_update() argument
5874 if ((src->nts_provider->nstat_descriptor_length == 0 || in nstat_client_append_update()
5875 src->nts_provider->nstat_copy_descriptor == NULL) && in nstat_client_append_update()
5876 src->nts_provider->nstat_counts == NULL) { in nstat_client_append_update()
5880 …size_t size = offsetof(nstat_msg_src_update, data) + src->nts_provider->nstat_descriptor_leng… in nstat_client_append_update()
5883 u_int64_t extension_mask = nstat_extension_flags_for_source(client, src); in nstat_client_append_update()
5885 if ((extension_mask != 0) && (src->nts_provider->nstat_copy_extension != NULL)) { in nstat_client_append_update()
5889 …size_t extension_size = src->nts_provider->nstat_copy_extension(src->nts_cookie, extension_id, NUL… in nstat_client_append_update()
5921 desc->srcref = src->nts_srcref; in nstat_client_append_update()
5923 desc->provider = src->nts_provider->nstat_provider_id; in nstat_client_append_update()
5927 if (src->nts_provider->nstat_descriptor_length != 0 && src->nts_provider->nstat_copy_descriptor) { in nstat_client_append_update()
5930 result = src->nts_provider->nstat_copy_descriptor(src->nts_cookie, desc_data_ptr, in nstat_client_append_update()
5931 src->nts_provider->nstat_descriptor_length); in nstat_client_append_update()
5943 sizeof(nstat_msg_src_update_hdr) + src->nts_provider->nstat_descriptor_length); in nstat_client_append_update()
5950 …size_t extension_size = src->nts_provider->nstat_copy_extension(src->nts_cookie, extension_id, buf… in nstat_client_append_update()
5968 if (src->nts_provider->nstat_counts) { in nstat_client_append_update()
5969 result = src->nts_provider->nstat_counts(src->nts_cookie, &desc->counts, gone); in nstat_client_append_update()
5978 if ((src->nts_filter & NSTAT_FILTER_NOZEROBYTES) == NSTAT_FILTER_NOZEROBYTES && in nstat_client_append_update()
5986 src->nts_reported = true; in nstat_client_append_update()
5994 nstat_src *src, in nstat_client_send_removed() argument
6005 removed.srcref = src->nts_srcref; in nstat_client_send_removed()
6218 nstat_src *src = kalloc_type(struct nstat_src, Z_WAITOK); in nstat_client_source_add() local
6219 if (src == NULL) { in nstat_client_source_add()
6230 src->nts_srcref = nstat_client_next_src_ref(client); in nstat_client_source_add()
6232 *srcrefp = src->nts_srcref; in nstat_client_source_add()
6235 if (client->ntc_flags & NSTAT_FLAG_CLEANUP || src->nts_srcref == NSTAT_SRC_REF_INVALID) { in nstat_client_source_add()
6237 kfree_type(struct nstat_src, src); in nstat_client_source_add()
6244 src->nts_provider = provider; in nstat_client_source_add()
6245 src->nts_cookie = cookie; in nstat_client_source_add()
6246 src->nts_filter = src_filter; in nstat_client_source_add()
6247 src->nts_seq = 0; in nstat_client_source_add()
6253 NSTAT_NOTE_SRC(nstat_src_add_send_err, client, src); in nstat_client_source_add()
6255 kfree_type(struct nstat_src, src); in nstat_client_source_add()
6261 TAILQ_INSERT_HEAD(&client->ntc_src_queue, src, nts_client_link); in nstat_client_source_add()
6262 src->nts_client = client; in nstat_client_source_add()
6272 NSTAT_NOTE_SRC(nstat_src_add_success, client, src); in nstat_client_source_add()
6287 nstat_src *src; in nstat_client_handle_remove_request() local
6296 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_client_handle_remove_request()
6298 if (src->nts_srcref == srcref) { in nstat_client_handle_remove_request()
6302 if (src) { in nstat_client_handle_remove_request()
6303 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_client_handle_remove_request()
6308 if (src) { in nstat_client_handle_remove_request()
6309 nstat_client_cleanup_source(client, src, FALSE); in nstat_client_handle_remove_request()
6315 return src ? 0 : ENOENT; in nstat_client_handle_remove_request()
6353 nstat_src *src, *tmpsrc; in nstat_client_handle_query_request() local
6364 TAILQ_FOREACH_SAFE(src, &client->ntc_src_queue, nts_client_link, tmpsrc) in nstat_client_handle_query_request()
6369 if (all_srcs || src->nts_srcref == req.srcref) { in nstat_client_handle_query_request()
6370 if (nstat_client_reporting_allowed(client, src, 0) in nstat_client_handle_query_request()
6371 && (!partial || !all_srcs || src->nts_seq != client->ntc_seq)) { in nstat_client_handle_query_request()
6373 result = nstat_client_append_counts(client, src, &gone); in nstat_client_handle_query_request()
6375 result = nstat_client_send_counts(client, src, req.hdr.context, 0, &gone); in nstat_client_handle_query_request()
6387 NSTAT_NOTE_SRC(nstat_query_request_nobuf, client, src); in nstat_client_handle_query_request()
6396 src->nts_seq = client->ntc_seq; in nstat_client_handle_query_request()
6407 NSTAT_NOTE_SRC(nstat_query_request_upgrade, client, src); in nstat_client_handle_query_request()
6409 result = nstat_client_send_description(client, src, 0, 0); in nstat_client_handle_query_request()
6416 NSTAT_NOTE_SRC(nstat_query_request_nodesc, client, src); in nstat_client_handle_query_request()
6422 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_client_handle_query_request()
6423 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstat_client_handle_query_request()
6429 NSTAT_NOTE_SRC(nstat_query_request_noupgrade, client, src); in nstat_client_handle_query_request()
6437 NSTAT_NOTE_SRC(nstat_query_request_limit, client, src); in nstat_client_handle_query_request()
6444 NSTAT_NOTE_SRC(nstat_query_request_yield, client, src); in nstat_client_handle_query_request()
6447 } else if (req.srcref == src->nts_srcref) { in nstat_client_handle_query_request()
6456 flags = nstat_client_end_query(client, src, partial); in nstat_client_handle_query_request()
6471 while ((src = TAILQ_FIRST(&dead_list))) { in nstat_client_handle_query_request()
6472 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstat_client_handle_query_request()
6473 nstat_client_cleanup_source(client, src, FALSE); in nstat_client_handle_query_request()
6486 nstat_src *src; in nstat_client_handle_get_src_description() local
6509 TAILQ_FOREACH(src, &client->ntc_src_queue, nts_client_link) in nstat_client_handle_get_src_description()
6511 if (all_srcs || src->nts_srcref == req.srcref) { in nstat_client_handle_get_src_description()
6512 if (nstat_client_reporting_allowed(client, src, 0) in nstat_client_handle_get_src_description()
6513 && (!all_srcs || !partial || src->nts_seq != client->ntc_seq)) { in nstat_client_handle_get_src_description()
6515 result = nstat_client_append_description(client, src); in nstat_client_handle_get_src_description()
6517 result = nstat_client_send_description(client, src, req.hdr.context, 0); in nstat_client_handle_get_src_description()
6532 src->nts_seq = client->ntc_seq; in nstat_client_handle_get_src_description()
6535 NSTAT_NOTE_SRC(nstat_query_description_limit, client, src); in nstat_client_handle_get_src_description()
6542 NSTAT_NOTE_SRC(nstat_query_description_yield, client, src); in nstat_client_handle_get_src_description()
6557 flags = nstat_client_end_query(client, src, partial); in nstat_client_handle_get_src_description()
6664 nstat_src *src, *tmpsrc; in nstat_client_handle_get_update() local
6683 TAILQ_FOREACH_SAFE(src, &client->ntc_src_queue, nts_client_link, tmpsrc) { in nstat_client_handle_get_update()
6687 if ((FALSE == partial || src->nts_seq != client->ntc_seq)) { in nstat_client_handle_get_update()
6688 u_int64_t suppression_flags = (src->nts_reported)? NSTAT_FILTER_SUPPRESS_BORING_POLL: 0; in nstat_client_handle_get_update()
6689 if (nstat_client_reporting_allowed(client, src, suppression_flags)) { in nstat_client_handle_get_update()
6690 result = nstat_client_append_update(client, src, &gone); in nstat_client_handle_get_update()
6696 NSTAT_NOTE_SRC(nstat_query_update_nobuf, client, src); in nstat_client_handle_get_update()
6704 src->nts_seq = client->ntc_seq; in nstat_client_handle_get_update()
6709 } else if (src->nts_srcref == req.srcref) { in nstat_client_handle_get_update()
6710 if (nstat_client_reporting_allowed(client, src, 0)) { in nstat_client_handle_get_update()
6711 result = nstat_client_send_update(client, src, req.hdr.context, 0, 0, &gone); in nstat_client_handle_get_update()
6719 TAILQ_REMOVE(&client->ntc_src_queue, src, nts_client_link); in nstat_client_handle_get_update()
6720 TAILQ_INSERT_TAIL(&dead_list, src, nts_client_link); in nstat_client_handle_get_update()
6722 NSTAT_NOTE_SRC(nstat_query_update_upgrade, client, src); in nstat_client_handle_get_update()
6727 NSTAT_NOTE_SRC(nstat_query_update_noupgrade, client, src); in nstat_client_handle_get_update()
6733 if (!all_srcs && req.srcref == src->nts_srcref) { in nstat_client_handle_get_update()
6737 NSTAT_NOTE_SRC(nstat_query_update_limit, client, src); in nstat_client_handle_get_update()
6744 NSTAT_NOTE_SRC(nstat_query_update_yield, client, src); in nstat_client_handle_get_update()
6754 flags = nstat_client_end_query(client, src, partial); in nstat_client_handle_get_update()
6768 while ((src = TAILQ_FIRST(&dead_list))) { in nstat_client_handle_get_update()
6769 TAILQ_REMOVE(&dead_list, src, nts_client_link); in nstat_client_handle_get_update()
6771 nstat_client_cleanup_source(client, src, FALSE); in nstat_client_handle_get_update()