/* -*-c-*-
*
- * $Id: peer.c,v 1.7 2003/04/15 14:12:05 mdw Exp $
+ * $Id: peer.c,v 1.8 2003/05/16 12:09:03 mdw Exp $
*
* Communication with the peer
*
/*----- Revision history --------------------------------------------------*
*
* $Log: peer.c,v $
+ * Revision 1.8 2003/05/16 12:09:03 mdw
+ * Allow binding to a chosen address.
+ *
* Revision 1.7 2003/04/15 14:12:05 mdw
* Insert a newline to improve readability.
*
/* --- @p_init@ --- *
*
- * Arguments: @unsigned port@ = port number to listen to
+ * Arguments: @struct in_addr addr@ = address to bind to
+ * @unsigned port@ = port number to listen to
*
* Returns: ---
*
* Use: Initializes the peer system; creates the socket.
*/
-void p_init(unsigned port)
+void p_init(struct in_addr addr, unsigned port)
{
int fd;
struct sockaddr_in sin;
die(EXIT_FAILURE, "socket creation failed: %s", strerror(errno));
BURN(sin);
sin.sin_family = AF_INET;
- sin.sin_addr.s_addr = INADDR_ANY;
+ sin.sin_addr = addr;
sin.sin_port = htons(port);
if (bind(fd, (struct sockaddr *)&sin, sizeof(sin)))
die(EXIT_FAILURE, "bind failed: %s", strerror(errno));