2 // Mono.Posix.UnixEndPoint: EndPoint derived class for AF_UNIX family sockets.
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 // (C) 2003 Ximian, Inc (http://www.ximian.com)
11 using System.Net.Sockets;
17 public class UnixEndPoint : EndPoint
21 public UnixEndPoint (string filename)
23 this.filename = filename;
26 public override AddressFamily AddressFamily {
27 get { return AddressFamily.Unix; }
30 public override EndPoint Create (SocketAddress socketAddress)
32 int size = socketAddress.Size;
33 byte [] bytes = new byte [size];
34 for (int i = 0; i < size; i++) {
35 bytes [i] = socketAddress [i];
38 string name = Encoding.Default.GetString (bytes);
39 return new UnixEndPoint (name);
42 public override SocketAddress Serialize ()
44 byte [] bytes = Encoding.Default.GetBytes (filename);
45 SocketAddress sa = new SocketAddress (AddressFamily, bytes.Length + 2);
46 // sa [0] -> family low byte, sa [1] -> family high byte
47 for (int i = 0; i < bytes.Length; i++)
48 sa [i + 2] = bytes [i];