digitalmars.D.bugs - [Issue 9384] New: std.socket: UnixAddress broken on Linux and others
- d-bugmail puremagic.com (59/59) Jan 24 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9384
- d-bugmail puremagic.com (10/10) Sep 08 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9384
http://d.puremagic.com/issues/show_bug.cgi?id=9384 Summary: std.socket: UnixAddress broken on Linux and others Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: alanb ucora.com std.socket is missing the following import: import core.sys.posix.sys.un; Even when adding in the missing import, the implementation of UnixAddress is broken. Here's my quick fix for Linux (there may be problems with it), there also needs to be versions for OSX and FreeBSD because sockaddr_un is slightly different. import std.c.linux.socket; import core.sys.posix.sys.un; class UnixAddress: Address { private: sockaddr_un sun; this() { } public: override property sockaddr* name() { return cast(sockaddr*)&sun; } override property const(sockaddr)* name() const { return cast(const(sockaddr)*)&sun; } override property socklen_t nameLen() const { return cast(socklen_t) sun.sizeof; } this(in char[] path) { sun.sun_family = AF_UNIX; sun.sun_path.ptr[0..path.length] = cast(byte[])path; sun.sun_path.ptr[path.length] = 0; } property string path() const { return to!string(sun.sun_path.ptr); } override string toString() const { return path; } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 24 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9384 jerro.public gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |jerro.public gmail.com Resolution| |FIXED -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 08 2013