Hi all,
I’m writing an app to connect to a telnet server. When I use the IP address I connect with no problem, but if I use the DNS address, the “connect” command returns a negative value:
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0)
{
…
}
I’m sure I’m missing some configuration somewhere, but I have’t been able to find any reference to it. Any help is appreciated. Thanks!
Regards,
Eddie
Hi Eddie,
If you run ‘telnet’ at the command line, does it work?
If you ping using a DNS name, does that work?
The DNS port should already be open in the firewall. Can you also post the output of /etc/resolv.conf please?
BR,
Chris
Chris,
The telnet and ping command both work from a ssh usb session and connect using the DNS address, as long as I have run “CM DATA CONNECT &”
root@fx30s:~# cat /etc/resolv.conf
nameserver 10.177.0.34
nameserver 10.177.0.210
In my app, I’m using the serial port uart1 as “Customer Linux application”
I type telnet, DNS address and port which gives me an error. If I type the same thing only I use the IP address instead of DNS, it connects just fine.
Eddie
I added code to my app to list the network info and this is what I got:
| Net-Info buffer:
| IPV4 GW: 22.101.215.1, DNS1: 10.177.0.34, DNS2: 10.177.0.210 on rmnet0
Hi Eddie
Is your app “sandboxed” ? - if so this could this be an issue of the /etc/resolv.conf being different (an older copy from earlier in the start up process) in your app to the one in the main OS ?
Cheers
John
John,
How do I test if it’s sandboxed or not? Thanks.
Eddie
John,
I figured it out about “sandboxed”, but that didn’t resolve the DNS name.
I found that the socket connect() function does not accept host names, only IP addresses.
I had to use the function getaddrinfo() to resolved the DNS host name and it returned the IP
address. Working great now. Thanks for your help!
Regards,
Eddie
1 Like
Hi Eddie
I had some issues using getaddrinfo() inside a sandbox. As a workaround I created the following - which probably isn’t the best way to do this or that maintainable. I’d be very happy if someone could provide a better way of fixing the problem 
Cheers
John
John,
You’re correct, if I sandboxed my project, the getaddrinfo() function can’t resolve the DNS host name. When I set sandboxed: false, it worked correctly.
Thanks for the help!
Regards,
Eddie