Date: Wed, 20 Nov 1996 22:26:01 -0200 From: compland@ism.com.br (Helio Coelho Jr. - CompuLand Informatica) To: hackers@freebsd.org Cc: zyang01@fiu.edu Subject: socket.h Message-ID: <199611210026.WAA15690@unix1.ism.com.br>
next in thread | raw e-mail | index | archive | help
Hi:
Sorry posting here. I'm not member of the developers group but I have
a question that maybe someone from this list can help me !
The problem is that I'm tring to port an irc gateway to WWW, written by
Zhong Yang
in C. I'm stuck in the following:
this is from /include/sys/socket.h
struct sockaddr {
u_char sa_len; /* total length */
u_char sa_family; /* address family */
char sa_data[14]; /* actually longer; address value */
this is from /include/netinet/in.h
struct sockaddr_in {
u_char sin_len;
u_char sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
And here, the problem. That's actually part of the code of the gateway:
struct sockaddr_in SocketInetAddr;
^^^^^^^^^^^
SocketInetAddr.sin_port = htons(Port);
SocketDescriptor = socket(AF_INET, SOCK_STREAM, 6);
if (SocketDescriptor < 0)
{
perror("socket");
return (-1);
}
if (connect(SocketDescriptor, ( char *) &SocketInetAddr,
sizeof(SocketInetAddr)) < 0)
^^^^^^^^^^^^^^^^^^^^^^^^^
RETURN_SUCCESS=1;
else
RETURN_SUCCESS=0;
The above call to CONNECT reports an error because the connect function
expects, in the second field,
the use of sockaddr. But in the program, the call is for sockaddr_in. I
don't know if in AIX or hpux
this structures are the same, but I know that it works there ! Anyone has an
idea how can I change this
piece of code to put it to work in FreeBSD ?
Thanks a lot! Sorry for the off_topic question!
Regards,
Helio.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611210026.WAA15690>
