public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
From: <tomas@tuxteam.de>
To: Ian Pilcher <arequipeno@gmail.com>
Cc: libc-help@sourceware.org
Subject: Re: inet_net_pton() alternative for IPv6
Date: Mon, 4 Jul 2022 20:23:52 +0200	[thread overview]
Message-ID: <YsMwOLQHDHYdqscY@tuxteam.de> (raw)
In-Reply-To: <t9va9v$jo0$1@ciao.gmane.io>

[-- Attachment #1: Type: text/plain, Size: 1914 bytes --]

On Mon, Jul 04, 2022 at 01:07:59PM -0500, Ian Pilcher via Libc-help wrote:
> I am searching for the best way to parse both IPv4 and IPv6 CIDR-
> formatted addresses.  I have found inet_net_pton(), but it only supports
> IPv4 (AF_INET) addresses.

I never tried it, but this is what my version [1] of the libc docs say:

 -- Function: int inet_pton (int AF, const char *CP, void *BUF)

     Preliminary: | MT-Safe locale | AS-Safe | AC-Safe | *Note POSIX
     Safety Concepts::.

     This function converts an Internet address (either IPv4 or IPv6)
     from presentation (textual) to network (binary) format.  AF should
     be either ‘AF_INET’ or ‘AF_INET6’, as appropriate for the type of
     address being converted.  CP is a pointer to the input string, and
     BUF is a pointer to a buffer for the result.  It is the caller’s
     responsibility to make sure the buffer is large enough.

 -- Function: const char * inet_ntop (int AF, const void *CP, char *BUF,
          socklen_t LEN)

     Preliminary: | MT-Safe locale | AS-Safe | AC-Safe | *Note POSIX
     Safety Concepts::.

     This function converts an Internet address (either IPv4 or IPv6)
     from network (binary) to presentation (textual) form.  AF should be
     either ‘AF_INET’ or ‘AF_INET6’, as appropriate.  CP is a pointer to
     the address to be converted.  BUF should be a pointer to a buffer
     to hold the result, and LEN is the length of this buffer.  The
     return value from the function will be this buffer address.

so they seem to cover your needs?

> Needless to say, this is pretty disappointing in 2022.  Is there an
> alternative API that I should be using, or am I stuck writing my own?

C'm on. Be nice :)

Cheers

[1] This is ‘The GNU C Library Reference Manual’, for Version (Debian
   glibc-doc-reference 2.31-1) of the GNU C Library.

-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

  reply	other threads:[~2022-07-04 18:23 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-04 18:07 Ian Pilcher
2022-07-04 18:23 ` tomas [this message]
2022-07-05 23:58   ` Ian Pilcher
2022-07-06  5:04     ` tomas
2022-07-04 18:34 ` Florian Weimer
2022-07-04 19:34   ` Ian Pilcher
2022-07-04 19:57     ` Florian Weimer

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=YsMwOLQHDHYdqscY@tuxteam.de \
    --to=tomas@tuxteam.de \
    --cc=arequipeno@gmail.com \
    --cc=libc-help@sourceware.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).