public inbox for gwml@vger.gnuweeb.org
 help / color / mirror / Atom feed
From: Ahmad Gani <reyuki@gnuweeb.org>
To: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Cc: Ammar Faizi <ammarfaizi2@gnuweeb.org>,
	"GNU/Weeb Mailing List" <gwml@vger.gnuweeb.org>
Subject: Re: [PATCH gwproxy v8 2/2] gwproxy: refactor code base to add experimental raw DNS backend
Date: Sat, 6 Sep 2025 19:58:59 +0700	[thread overview]
Message-ID: <CAADvAgpdFCbmFUu+jJSb1jzaw2tM4r76vEUtvhwo9nadk2RH8A@mail.gmail.com> (raw)
In-Reply-To: <CAADvAgpOzC_VFH0O8KD_vWzFv27JFxbW13yOrfWj8zD5bbFNSg@mail.gmail.com>

On Sat, Sep 6, 2025 at 6:27 PM Ahmad Gani wrote:
> On Sat, Sep 6, 2025 at 11:32 AM Ahmad Gani wrote:
> (( I'll finish this first before working on the single UDP socket model. ))

Now assuming we are using a single UDP socket, how do we match answers to
the DNS queries with the corresponding proxy session? Currently this is
achieved by one UDP socket for each query. In the epoll model, when the
socket is ready for a particular event, it already stores the pointer to
the corresponding proxy session (gwp_conn_pair). And if we are using only
one UDP socket for all queries from all proxy sessions, we might not be
able to rely on the pointer returned by epoll anymore.

So, what are our options in this case? If you want to take a look, I've
pushed new commits in the experimental-raw-dns branch [1].

[1]:
Now the UDP socket only created once at:
https://github.com/realyukii/gwproxy/blob/2b2a85b08b8b178775a064b7e3583540f7397956/src/gwproxy/dns.c#L826-L829
and only registered to epoll once at:
https://github.com/realyukii/gwproxy/blob/2b2a85b08b8b178775a064b7e3583540f7397956/src/gwproxy/ev/epoll.c#L1163-L1171
it can send data over the socket just fine at:
https://github.com/realyukii/gwproxy/blob/2b2a85b08b8b178775a064b7e3583540f7397956/src/gwproxy/ev/epoll.c#L816-L820
and the question is how we fill out udata upon receiving a response at:
https://github.com/realyukii/gwproxy/blob/2b2a85b08b8b178775a064b7e3583540f7397956/src/gwproxy/ev/epoll.c#L1102
one option I can think of is to perform some sort of lookup at:
https://github.com/realyukii/gwproxy/blob/2b2a85b08b8b178775a064b7e3583540f7397956/src/gwproxy/dns.c#L255-L263
after recv, we can use the txid received from the buffer as a key to look
up the corresponding key in the array, what do you think?

--
Ahmad Gani

  parent reply	other threads:[~2025-09-06 12:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-29  7:55 [PATCH gwproxy v8 0/2] Initial work on integration of DNS parser lib in gwproxy Ahmad Gani
2025-08-29  7:55 ` [PATCH gwproxy v8 1/2] dnsparser: Add dns parser code Ahmad Gani
2025-08-29  7:55 ` [PATCH gwproxy v8 2/2] gwproxy: refactor code base to add experimental raw DNS backend Ahmad Gani
2025-09-05 16:26   ` Alviro Iskandar Setiawan
2025-09-06  4:32     ` Ahmad Gani
2025-09-06  5:16       ` Ahmad Gani
2025-09-06  6:17       ` Ahmad Gani
2025-09-06  6:48         ` Ahmad Gani
2025-09-06  7:02           ` Alviro Iskandar Setiawan
2025-09-06  6:47       ` Alviro Iskandar Setiawan
2025-09-09  2:38         ` reyuki
2025-09-06 11:27       ` Ahmad Gani
2025-09-06 12:01         ` Alviro Iskandar Setiawan
2025-09-06 12:58         ` Ahmad Gani [this message]
2025-09-06 13:30           ` Alviro Iskandar Setiawan
2025-09-06 13:44             ` Alviro Iskandar Setiawan
2025-09-06 14:26             ` Ahmad Gani
2025-09-06 14:30               ` Alviro Iskandar Setiawan
2025-09-07  4:22             ` Ammar Faizi
2025-09-07  5:57               ` Ammar Faizi
2025-09-07  6:39               ` Ahmad Gani
2025-09-07  6:40                 ` Ahmad Gani
2025-09-07  6:43                   ` Ammar Faizi
2025-09-07  7:06                 ` Ammar Faizi
2025-09-07  7:17                   ` Ahmad Gani
2025-09-07  9:52               ` Ahmad Gani
2025-09-07 10:19                 ` Ammar Faizi
2025-09-07 10:36                   ` Ahmad Gani
2025-09-06  7:14     ` Alviro Iskandar Setiawan
2025-09-06  7:21       ` Ahmad Gani
2025-09-06  7:47   ` Alviro Iskandar Setiawan
2025-09-06 11:01     ` Ahmad Gani
2025-09-05  9:18 ` [PATCH gwproxy v8 0/2] Initial work on integration of DNS parser lib in gwproxy Ammar Faizi
2025-09-05  9:34   ` Alviro Iskandar Setiawan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAADvAgpdFCbmFUu+jJSb1jzaw2tM4r76vEUtvhwo9nadk2RH8A@mail.gmail.com \
    --to=reyuki@gnuweeb.org \
    --cc=alviro.iskandar@gnuweeb.org \
    --cc=ammarfaizi2@gnuweeb.org \
    --cc=gwml@vger.gnuweeb.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox