1 /**************************************************************************/ 2 /* */ 3 /* OCaml */ 4 /* */ 5 /* Xavier Leroy and Pascal Cuoq, projet Cristal, INRIA Rocquencourt */ 6 /* */ 7 /* Copyright 1996 Institut National de Recherche en Informatique et */ 8 /* en Automatique. */ 9 /* */ 10 /* All rights reserved. This file is distributed under the terms of */ 11 /* the GNU Lesser General Public License version 2.1, with the */ 12 /* special exception on linking described in the file LICENSE. */ 13 /* */ 14 /**************************************************************************/ 15 16 #include <caml/mlvalues.h> 17 #include "unixsupport.h" 18 #include "socketaddr.h" 19 unix_getsockname(sock)20CAMLprim value unix_getsockname(sock) 21 value sock; 22 { 23 int retcode; 24 union sock_addr_union addr; 25 socklen_param_type addr_len; 26 27 addr_len = sizeof(sock_addr); 28 retcode = getsockname(Socket_val(sock), 29 &addr.s_gen, &addr_len); 30 if (retcode == -1) uerror("getsockname", Nothing); 31 return alloc_sockaddr(&addr, addr_len, -1); 32 } 33