File: getaddrinfo.ml

package info (click to toggle)
ocaml-posix 4.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,384 kB
  • sloc: ml: 9,495; ansic: 45; sh: 14; makefile: 5
file content (18 lines) | stat: -rw-r--r-- 617 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
open Ctypes
open Posix_socket

let from_ptr t ptr = from_voidp t (to_voidp ptr)

let () =
  let host = Sys.argv.(1) in
  let resolved_addresses = getaddrinfo ~port:(`String Sys.argv.(2)) host in
  List.iter
    (fun sockaddr ->
      Printf.printf "sockaddr.sa_family = %d\n%!"
        (Sa_family.to_int !@(sockaddr |-> Sockaddr.sa_family));
      let sockaddr_in = from_ptr SockaddrInet.t sockaddr in
      Printf.printf "sockaddr_in.sin_addr.s_addr = %d\n%!"
        (Unsigned.UInt32.to_int
           (ntohl
              !@(sockaddr_in |-> SockaddrInet.sin_addr |-> SockaddrInet.s_addr))))
    resolved_addresses