[lug] source for bind(int sockfd, struct sockaddr *my_addr, int addrlen)
Matt McIllece (1-3762)
mcillece at elbonia.ast.lmco.com
Wed Apr 18 17:51:01 MDT 2001
> That's because it's not in /usr/src. It's in /usr/include/sys.
<Blush> Oops, I got used to seeing everything in /usr/src. </Blush>
But while grepping in /usr/include does produce an interface for bind(), it
doesn't help find the implementation...
> I'm tempted to ask, which *kind* of bind()
> are you asking for? ipv4? ipv6?
Any generic bind() would do. I chose ipv4.
> I grepped for "sock->ops" and found that these functions are defined
> in various places, including net/ipv4/af_inet.c.
I did a lot of grepping under /usr/src for things like that, and I also did a
lot of hand searching under /usr/src/linux/net/. But in trying to cope with all
the info, I must have missed the significance of the
sock->ops = &inet_stream_ops;
assignment in the inet_create() part of /usr/src/linux/net/ipv4/af_inet.c. In
the same fashion as your inet_dgram_ops example, the inet_stream_ops structure
turns out to contain inet_bind() in place of (bind*). And as you said,
inet_bind() is defined in af_inet.c. Implementation found. Thanks!
More information about the LUG