cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: No response on ARM Linux!

From: Dan Fandrich <dan_at_coneharvesters.com>
Date: Sun, 6 Nov 2011 07:15:17 -0800

On Sat, Nov 05, 2011 at 10:58:02PM +0000, Artak Hovsepian wrote:
> I meet a Curl and libcurl problem on the ARM Linux platform. It is a
> mobile device on the S3C2410 board, manufactured in China.
> Nor Curl, nor applications, developed on libcurl could not receive reply
> on this platform.
> I was ready to believe that that there was a network or setting problem
> in this Linux installation, but then I saw that the telnet and ping were
> successfully interacting with the servers over Internet.
> Moreover, I had discovered that Curl (and the simple applications
> developed on libcurl also) can receive response by the local installed
> HTTP server (Busybox's httpd) in the same machine.
> I had tried to force curl use GET 1.0 requests and use some different
> Curl's options, but there was no any success.
>
> Below is a result of CURL with option "v" (-v). The target server is a
> google.com

Actually, according to HTTP 1.1, the target server is "209.85.148.103"
in this example:

> [root@(none) /]# /mnt/usb/curl/bin/curl 209.85.148.103 -v
> * About to connect() to 209.85.148.103 port 80 (#0)
> * Trying 209.85.148.103... connected
> > GET / HTTP/1.1
> > User-Agent: curl/7.22.0 (arm-unknown-none) libcurl/7.22.0
> > Host: 209.85.148.103
> > Accept: */*
> >

The "Host:" header specifies the desired server, so that virtual hosting
will work. This won't necessarily give the same results as a curl request
to "http://www.google.com". If there are DNS problems on the device that
require that you resolve the address manually, then you'll need to add a
"Host:" header with the -H option to emulate a normal request.

> Did anyone meet such a problem in the practice?
> Any help (advise or recommendation) will be so appreciated.
> I am ready to provide any additional information.

If the above is not the problem, then all I can think of is that a firewall
or transparent proxy is in the network path that is preventing the request
or response from coming through. Once curl says "connected", then TCP
3-way handshake has been completed, proving that data is able to traverse
both directions to the remote host (or to an in-line transparent proxy),
so there's some degree of network connectivity.

>>> Dan
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2011-11-06