Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Jun 2008 08:39:41 GMT
From:      kevin <kevinxlinuz@163.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/124437: socket.connect can't work correct in gdc
Message-ID:  <200806100839.m5A8df6k089018@www.freebsd.org>
Resent-Message-ID: <200806100840.m5A8e1A4023366@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         124437
>Category:       ports
>Synopsis:       socket.connect can't work correct in gdc
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jun 10 08:40:00 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     kevin
>Release:        8.0current
>Organization:
UFO  zju
>Environment:
FreeBSD xxx-laptop.people.163.org 8.0-CURRENT FreeBSD 8.0-CURRENT #5: Tue Jun 10 02:25:38 CST 2008     root@xxx-laptop.people.163.org:/usr/obj/usr/src/sys/G8laptop  amd64
>Description:
In freebsd 7.0bata4/i386 and freebsd8.0current/amd64,socket.connect in gdc's socket.d ,can't work.it cause my program core dump.
for example:
A.d
------------------------
import std.socket;
import std.socketstream;
import std.stdio;

int main()
{
    Socket sock = new Socket(AddressFamily.INET, SocketType.STREAM, 
ProtocolType.IP);
    writefln("Befor");
    sock.connect(new InternetAddress("www.digitalmars.com", 80));
writefln("After");
//  SocketStream ss = new SocketStream(sock);

 //   ss.writeString("GET /d/intro.html HTTP/1.1\r\n"
//       "Host: www.digitalmars.com\r\n"
//       "\r\n");

  //  while(ss.readLine().length) {} //skip header
   // while(!ss.eof())
    {
       char[] line;
//       printf("%.*s\n", ss.readLine());
    }

    return 0;
}
--------------------------------------
it can compile well,but it core dump at sock.connect(new InternetAddress("www.digitalmars.com", 80));
>How-To-Repeat:
install gdc from ports in freebsd 8.0current.and compile following and run it.
import std.socket;
import std.socketstream;
import std.stdio;

int main()
{
    Socket sock = new Socket(AddressFamily.INET, SocketType.STREAM, 
ProtocolType.IP);
    writefln("Befor");
    sock.connect(new InternetAddress("www.digitalmars.com", 80));
writefln("After");
//  SocketStream ss = new SocketStream(sock);

 //   ss.writeString("GET /d/intro.html HTTP/1.1\r\n"
//       "Host: www.digitalmars.com\r\n"
//       "\r\n");

  //  while(ss.readLine().length) {} //skip header
   // while(!ss.eof())
    {
       char[] line;
//       printf("%.*s\n", ss.readLine());
    }

    return 0;
}
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806100839.m5A8df6k089018>