identserver.cpp - any reason it hasn't been adopted here? [$20] #284

Open
opened 2026-10-05 04:09:55 +02:00 by adam · 16 comments
Owner
## <bountysource-plugin> --- There is a **[$20 open bounty](https://www.bountysource.com/issues/1374674-identserver-cpp-any-reason-it-hasn-t-been-adopted-here?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F1759&utm_medium=issues&utm_source=github). </bountysource-plugin> <!-- github-sync-id:25358723 -->
Author
Owner

http://wiki.znc.in/Using_ident_spoofs_with_identserver_and_iptables

Happy to place a bounty on it, if that would get it officially supported :)

http://wiki.znc.in/Using_ident_spoofs_with_identserver_and_iptables Happy to place a bounty on it, if that would get it officially supported :) <!-- github-comment-id:32819532 -->
Author
Owner

What's the reason not to use oidentd?

What's the reason not to use oidentd? <!-- github-comment-id:32974520 -->
Author
Owner

Because it stalls the reconnect queue, leading to massive wait times for large ZNCs

Because it stalls the reconnect queue, leading to massive wait times for large ZNCs <!-- github-comment-id:32974784 -->
Author
Owner

Identserver has the nasty side effect of binding on IDENT port, so if you plan to use ident for anything other than one ZNC, identserver does not work.

I spoke with @DarthGandalf about the ideal solution some time ago on irc.

Ideally someone would make an ident server which would work like the following.

  1. lookup by normal means, ~/.identfile etc
  2. find the running process using the socket
  3. query the running process for the final ident info if not found via normal means

on linux this could mean domain sockets in a special directory which each running process listens on specifically for the ident information.

It could also be done via a new file format for ~/.identfile

12345: user1
12346: user2
12347: user3
Identserver has the nasty side effect of binding on IDENT port, so if you plan to use ident for anything other than one ZNC, identserver does not work. I spoke with @DarthGandalf about the ideal solution some time ago on irc. Ideally someone would make an ident server which would work like the following. 1. lookup by normal means, `~/.identfile` etc 2. find the running process using the socket 3. query the running process for the final ident info if not found via normal means on linux this could mean domain sockets in a special directory which each running process listens on specifically for the ident information. It could also be done via a new file format for ~/.identfile ``` 12345: user1 12346: user2 12347: user3 ``` <!-- github-comment-id:33012837 -->
Author
Owner

@apmorton What exactly would that new ~/.identfile format add that is not already possible with ~/.oidentd.conf?

oident already supports something like "to foo lport 1234 from bar fport 5678 { reply "foo" }". However, znc cannot use this, because by the time that it knows its local port number, the connection is already being established, so there would be a race condition. And just filtering by the remote port doesn't help, because most IRCds run on 6667 anyway.

@apmorton What exactly would that new ~/.identfile format add that is not already possible with ~/.oidentd.conf? oident already supports something like "to foo lport 1234 from bar fport 5678 { reply "foo" }". However, znc cannot use this, because by the time that it knows its local port number, the connection is already being established, so there would be a race condition. And just filtering by the remote port doesn't help, because most IRCds run on 6667 anyway. <!-- github-comment-id:33033458 -->
Author
Owner

Which was the same conclusion we came to in IRC, it has been a while since this conversation took place so forgive my memory loss.

Really the best option would be an ident server which could query the information from the process which opens the socket.

Which was the same conclusion we came to in IRC, it has been a while since this conversation took place so forgive my memory loss. Really the best option would be an ident server which could query the information from the process which opens the socket. <!-- github-comment-id:33035638 -->
Author
Owner

http://bre.klaki.net/programs/udb/ may be the solution.
oidentd supports this when run with --udb, but I didn't investigate
further.

22.01.2014 15:51, apmorton пишет:

Which was the same conclusion we came to in IRC, it has been a while
since this conversation took place so forgive my memory loss.

Really the best option would be an ident server which could query the
information from the process which opens the socket.

—
Reply to this email directly or view it on GitHub
https://github.com/znc/znc/issues/460#issuecomment-33035638.

http://bre.klaki.net/programs/udb/ may be the solution. oidentd supports this when run with `--udb`, but I didn't investigate further. 22.01.2014 15:51, apmorton пишет: > Which was the same conclusion we came to in IRC, it has been a while > since this conversation took place so forgive my memory loss. > > Really the best option would be an ident server which could query the > information from the process which opens the socket. > > — > Reply to this email directly or view it on GitHub > https://github.com/znc/znc/issues/460#issuecomment-33035638. <!-- github-comment-id:33068681 -->
Author
Owner

Maybe someone with wiki access can update the link for the 1.2 compatible version @ https://raw.github.com/KiNgMaR/znc/msvc/win32/extra_modules/identserver.cpp - and kill the line about removing stdafx.hpp.

Maybe someone with wiki access can update the link for the 1.2 compatible version @ https://raw.github.com/KiNgMaR/znc/msvc/win32/extra_modules/identserver.cpp - and kill the line about removing `stdafx.hpp`. <!-- github-comment-id:34383533 -->
Author
Owner

@KiNgMaR Done.

@KiNgMaR Done. <!-- github-comment-id:34392344 -->
Author
Owner

Added some extra bounty. Would love to see this or a better identfile module in core. Once again the whole stall reconnect queue thing is annoying.

Added some extra bounty. Would love to see this or a better identfile module in core. Once again the whole stall reconnect queue thing is annoying. <!-- github-comment-id:70356893 -->
Author
Owner

Oidentd supports masquerading, could it forward ident requests to identserver running in different port?

Oidentd supports masquerading, could it forward ident requests to identserver running in different port? <!-- github-comment-id:70358463 -->
Author
Owner

Oidentd supports masquerading, could it forward ident requests to identserver running in different port?

If this were added as a supported module, I'd just use iptables to forward it. Pretty sure no one cares about identd for stuff other than IRC

> Oidentd supports masquerading, could it forward ident requests to identserver running in different port? If this were added as a supported module, I'd just use iptables to forward it. Pretty sure no one cares about identd for stuff other than IRC <!-- github-comment-id:70390063 -->
Author
Owner

But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.

But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case. <!-- github-comment-id:70398631 -->
Author
Owner

But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case.

Invalid point though, a shell host wouldn't allow masquerading anyway.

> But if same host was running ZNC for those who wish it and also gave shell access for IRC, identserver wouldn't work in that case. Invalid point though, a shell host wouldn't allow masquerading anyway. <!-- github-comment-id:70400501 -->
Author
Owner

Invalid point though, a shell host wouldn't allow masquerading anyway.

I am thinking of shell host running ZNC for users who want it and also providing shell access for users who don't.

I am not sure if any of these exist though.

> Invalid point though, a shell host wouldn't allow masquerading anyway. I am thinking of shell host running ZNC for users who want it and also providing shell access for users who don't. I am not sure if any of these exist though. <!-- github-comment-id:70400529 -->
Author
Owner

Yep, such shell/ZNC providers exist. Or at least, existed before.

Yep, such shell/ZNC providers exist. Or at least, existed before. <!-- github-comment-id:70400683 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#284