]> matita.cs.unibo.it Git - helm.git/commitdiff
- added explode_sockaddr, inverse function of build_sockaddr
authorStefano Zacchiroli <zack@upsilon.cc>
Mon, 9 Dec 2002 14:57:51 +0000 (14:57 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Mon, 9 Dec 2002 14:57:51 +0000 (14:57 +0000)
- uncurried build_sockaddr arguments
- added peername_of_{in,out}_channel which retrieve peer socket address
  from an i/o channel

helm/DEVEL/ocaml-http/http_misc.ml
helm/DEVEL/ocaml-http/http_misc.mli

index 8117c540bbac3227ab8bf9c2166a4d4dfd0ae4a3..0e11e10489883e52261eba60a3c20f4833c34053 100644 (file)
@@ -97,6 +97,15 @@ let reason_phrase_of_code = function
   | 505 -> "HTTP version not supported"
   | invalid_code -> raise (Invalid_code invalid_code)
 
-let build_sockaddr ~addr ~port =
+let build_sockaddr (addr, port) =
   Unix.ADDR_INET (Unix.inet_addr_of_string addr, port)
 
+let explode_sockaddr = function
+  | Unix.ADDR_INET (addr, port) -> (Unix.string_of_inet_addr addr, port)
+  | _ -> assert false (* can explode only inet address *)
+
+let peername_of_out_channel outchan =
+  Unix.getpeername (Unix.descr_of_out_channel outchan)
+let peername_of_in_channel inchan =
+  Unix.getpeername (Unix.descr_of_in_channel inchan)
+
index 3aea8b52d2655cec92e034a5251fbf2bfee8fbf5..6e5fdfcf6425daf10beedcbc60b0269fe4184077 100644 (file)
@@ -42,10 +42,24 @@ val strip_heading_slash: string -> string
   (** given a dir handle @return a list of entries contained *)
 val ls: Unix.dir_handle -> string list
 
+  (** explode a string in a char list *)
 val string_explode: string -> char list
+  (** implode a char list in a string *)
 val string_implode: char list -> string
 
+  (** given an HTTP response code return the corresponding reason phrase *)
 val reason_phrase_of_code: int -> string
 
-val build_sockaddr: addr:string -> port:int -> Unix.sockaddr
+  (** build a Unix.sockaddr inet address from a string representation of an IP
+  address and a port number *)
+val build_sockaddr: string * int -> Unix.sockaddr
+  (** explode an _inet_ Unix.sockaddr address in a string representation of an
+  IP address and a port number *)
+val explode_sockaddr: Unix.sockaddr -> string * int
+
+  (** given an out_channel build on top of a socket, return peername related to
+  that socket *)
+val peername_of_out_channel: out_channel -> Unix.sockaddr
+  (** as above but works on in_channels *)
+val peername_of_in_channel: in_channel -> Unix.sockaddr