Ciao Marco,
that prints nothing -- getaddrinfo does get called but reporting no errors.
Thanks!
Ugo
On Mon, Mar 1, 2010 at 7:54 AM, Marco Maggi <email address hidden> wrote:
> Ugo, try to change "do_connect()" in "src/ikarus-io.c" to the following > (I only added the "fprintf()" call): > > static ikptr > do_connect(ikptr host, ikptr srvc, int socket_type){ > struct addrinfo* info; > int err = getaddrinfo((char*)(long)(host+off_bytevector_data), > (char*)(long)(srvc+off_bytevector_data), > 0, > &info); > if(err){ > fprintf(stderr, "getaddrinfo: err=%d, %s\n", err, gai_strerror(err)); > switch(err){ > case EAI_SYSTEM: return ik_errno_to_code(); > default: return false_object; > } > } > ... > > recompile and see what it prints. It assumes that the function > "gai_strerror()" is implemented by Cygwin; if it is not just use: > > fprintf(stderr, "getaddrinfo: err=%d\n", err); > > and try to find the preprocessor symbol associated to the reported integer > error code; on my Linux system they are the EAI codes in "netdb.h". > -- > Marco Maggi > > -- > tcp-connect fails under cygwin > https://bugs.launchpad.net/bugs/525050 > You received this bug notification because you are a direct subscriber > of the bug. > > Status in Ikarus Scheme: New > > Bug description: > Hi, > > tcp-connect fails with the following under cygwin (XP): > > Unhandled exception: > Condition components: > 1. &assertion > 2. &who: tcp-connect > 3. &message: "failed to resolve host name or connect" > 4. &irritants: ("127.0.0.1" "1000") > > I'm using the latest dev snapshot. I've used the 2 simple programs below > for test. They work fine on my Linux box. > > Thank you. > > Cheers, Ugo > > == Client code == > > #!/usr/bin/env scheme-script > (import (rnrs) > (rnrs base) > (rnrs bytevectors) > (rnrs unicode) > (rnrs io ports) > (ikarus ipc) > (rnrs syntax-case)) > > (define SERVER-HOST "127.0.0.1") > (define SERVICE-PORT "1000") > > > (define SOH-CHAR #x01) > (define VERSION-NUMBER #b1) > > > (define (client) > (let-values ([(server->me me->server) > (tcp-connect SERVER-HOST SERVICE-PORT)]) > (display "writing to server") (newline) > (put-u8 me->server 1) ; 'SOH' Character > (put-u8 me->server 1) ; Version Number > (put-bytevector me->server #vu8(00 00)) > (put-bytevector me->server #vu8(00 05)) > > (close-output-port me->server) > (display "reading from server ...") (newline) > (let ([res-header (get-bytevector-n server->me 13)]) > (close-input-port server->me)))) > > (client) > > == Server code == > > #!/usr/bin/env scheme-script > (import (rnrs) > (rnrs bytevectors) > (rnrs io ports) > (ikarus ipc)) > > (define SERVICE-PORT 1000) > > (define (server) > (let ([listener (tcp-server-socket SERVICE-PORT)]) > (let-values ([(client->me me->client) > (accept-connection listener)]) > (display (get-bytevector-n client->me 4)) > (put-u8 me->client 111) > (close-output-port me->client) > (close-input-port client->me)))) > > (server) > > To unsubscribe from this bug, go to: > https://bugs.launchpad.net/ikarus/+bug/525050/+subscribe >
Ciao Marco,
that prints nothing -- getaddrinfo does get called but reporting no errors.
Thanks!
Ugo
On Mon, Mar 1, 2010 at 7:54 AM, Marco Maggi <email address hidden> wrote:
> Ugo, try to change "do_connect()" in "src/ikarus-io.c" to the following (char*) (long)( host+off_ bytevector_ data), (long)( srvc+off_ bytevector_ data), /bugs.launchpad .net/bugs/ 525050 /bugs.launchpad .net/ikarus/ +bug/525050/ +subscribe
> (I only added the "fprintf()" call):
>
> static ikptr
> do_connect(ikptr host, ikptr srvc, int socket_type){
> struct addrinfo* info;
> int err = getaddrinfo(
> (char*)
> 0,
> &info);
> if(err){
> fprintf(stderr, "getaddrinfo: err=%d, %s\n", err, gai_strerror(err));
> switch(err){
> case EAI_SYSTEM: return ik_errno_to_code();
> default: return false_object;
> }
> }
> ...
>
> recompile and see what it prints. It assumes that the function
> "gai_strerror()" is implemented by Cygwin; if it is not just use:
>
> fprintf(stderr, "getaddrinfo: err=%d\n", err);
>
> and try to find the preprocessor symbol associated to the reported integer
> error code; on my Linux system they are the EAI codes in "netdb.h".
> --
> Marco Maggi
>
> --
> tcp-connect fails under cygwin
> https:/
> You received this bug notification because you are a direct subscriber
> of the bug.
>
> Status in Ikarus Scheme: New
>
> Bug description:
> Hi,
>
> tcp-connect fails with the following under cygwin (XP):
>
> Unhandled exception:
> Condition components:
> 1. &assertion
> 2. &who: tcp-connect
> 3. &message: "failed to resolve host name or connect"
> 4. &irritants: ("127.0.0.1" "1000")
>
> I'm using the latest dev snapshot. I've used the 2 simple programs below
> for test. They work fine on my Linux box.
>
> Thank you.
>
> Cheers, Ugo
>
> == Client code ==
>
> #!/usr/bin/env scheme-script
> (import (rnrs)
> (rnrs base)
> (rnrs bytevectors)
> (rnrs unicode)
> (rnrs io ports)
> (ikarus ipc)
> (rnrs syntax-case))
>
> (define SERVER-HOST "127.0.0.1")
> (define SERVICE-PORT "1000")
>
>
> (define SOH-CHAR #x01)
> (define VERSION-NUMBER #b1)
>
>
> (define (client)
> (let-values ([(server->me me->server)
> (tcp-connect SERVER-HOST SERVICE-PORT)])
> (display "writing to server") (newline)
> (put-u8 me->server 1) ; 'SOH' Character
> (put-u8 me->server 1) ; Version Number
> (put-bytevector me->server #vu8(00 00))
> (put-bytevector me->server #vu8(00 05))
>
> (close-output-port me->server)
> (display "reading from server ...") (newline)
> (let ([res-header (get-bytevector-n server->me 13)])
> (close-input-port server->me))))
>
> (client)
>
> == Server code ==
>
> #!/usr/bin/env scheme-script
> (import (rnrs)
> (rnrs bytevectors)
> (rnrs io ports)
> (ikarus ipc))
>
> (define SERVICE-PORT 1000)
>
> (define (server)
> (let ([listener (tcp-server-socket SERVICE-PORT)])
> (let-values ([(client->me me->client)
> (accept-connection listener)])
> (display (get-bytevector-n client->me 4))
> (put-u8 me->client 111)
> (close-output-port me->client)
> (close-input-port client->me))))
>
> (server)
>
> To unsubscribe from this bug, go to:
> https:/
>