@@ -6,7 +6,7 @@ exception Channel_setup_failed
66module CBuf = struct
77 (* * A circular buffer constructed from a string *)
88 type t = {
9- mutable buffer : string ;
9+ mutable buffer : bytes ;
1010 mutable len : int ; (* * bytes of valid data in [buffer] *)
1111 mutable start : int ; (* * index of first valid byte in [buffer] *)
1212 mutable r_closed : bool ; (* * true if no more data can be read due to EOF *)
@@ -23,11 +23,11 @@ module CBuf = struct
2323
2424 let drop (x : t ) n =
2525 if n > x.len then failwith (Printf. sprintf " drop %d > %d" n x.len);
26- x.start < - (x.start + n) mod (String . length x.buffer);
26+ x.start < - (x.start + n) mod (Bytes . length x.buffer);
2727 x.len < - x.len - n
2828
2929 let should_read (x : t ) =
30- not x.r_closed && (x.len < (String . length x.buffer - 1 ))
30+ not x.r_closed && (x.len < (Bytes . length x.buffer - 1 ))
3131 let should_write (x : t ) =
3232 not x.w_closed && (x.len > 0 )
3333
@@ -36,18 +36,18 @@ module CBuf = struct
3636
3737 let write (x : t ) fd =
3838 (* Offset of the character after the substring *)
39- let next = min (String . length x.buffer) (x.start + x.len) in
39+ let next = min (Bytes . length x.buffer) (x.start + x.len) in
4040 let len = next - x.start in
4141 let written = try Unix. single_write fd x.buffer x.start len with _e -> x.w_closed < - true ; len in
4242 drop x written
4343
4444 let read (x : t ) fd =
4545 (* Offset of the next empty character *)
46- let next = (x.start + x.len) mod (String . length x.buffer) in
47- let len = min (String . length x.buffer - next) (String . length x.buffer - x.len) in
46+ let next = (x.start + x.len) mod (Bytes . length x.buffer) in
47+ let len = min (Bytes . length x.buffer - next) (Bytes . length x.buffer - x.len) in
4848 let read = Unix. read fd x.buffer next len in
4949 if read = 0 then x.r_closed < - true ;
50- x.len < - x.len + read
50+ x.len < - x.len + read
5151end
5252
5353let proxy (a : Unix.file_descr ) (b : Unix.file_descr ) =
@@ -145,9 +145,9 @@ let send proxy_socket =
145145 if List. mem s_unix readable then begin
146146 let fd, _peer = Unix. accept s_unix in
147147 to_close := fd :: ! to_close;
148- let buffer = String . make (String. length token) '\000' in
149- let n = Unix. recv fd buffer 0 (String . length buffer) [] in
150- let token' = String. sub buffer 0 n in
148+ let buffer = Bytes . make (String. length token) '\000' in
149+ let n = Unix. recv fd buffer 0 (Bytes . length buffer) [] in
150+ let token' = Bytes. sub_string buffer 0 n in
151151 if token = token' then begin
152152 let (_: int ) = Fd_send_recv. send_fd fd token 0 (String. length token) [] proxy_socket in
153153 ()
@@ -203,7 +203,7 @@ let receive protocols =
203203 finally
204204 (fun () ->
205205 Unix. connect s (Unix. ADDR_UNIX path);
206- let (_: int ) = Unix. send s token 0 (String. length token) [] in
206+ let (_: int ) = Unix. send s ( Bytes. unsafe_of_string token) 0 (String. length token) [] in
207207 let (_, _, fd) = Fd_send_recv. recv_fd s token 0 (String. length token) [] in
208208 fd
209209 ) (fun () -> Unix. close s)
0 commit comments