home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1983 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- */
-
- #include "bsd.h"
-
- #if defined(TALK_43) || defined(TALK_42)
-
- #ifndef lint
- static char sccsid[] = "@(#)ctl.c 5.2 (Berkeley) 3/13/86";
- #endif
-
- /*
- * This file handles haggling with the various talk daemons to
- * get a socket to talk to. sockt is opened and connected in
- * the progress
- */
-
- #include "talk_ctl.h"
-
- struct sockaddr_in daemon_addr = { AF_INET };
- struct sockaddr_in ctl_addr = { AF_INET };
-
- /* inet addresses of the two machines */
- struct in_addr my_machine_addr;
- struct in_addr his_machine_addr;
-
- u_short daemon_port; /* port number of the talk daemon */
-
- int ctl_sockt;
-
- CTL_MSG msg;
-
- /* open the ctl socket */
- open_ctl()
- {
- int length;
-
- ctl_addr.sin_port = 0;
- ctl_addr.sin_addr = my_machine_addr;
- ctl_sockt = socket(AF_INET, SOCK_DGRAM, 0);
- if (ctl_sockt <= 0)
- p_error("Bad socket");
- if (bind(ctl_sockt, &ctl_addr, sizeof(ctl_addr)) != 0)
- p_error("Couldn't bind to control socket");
- length = sizeof(ctl_addr);
- if (getsockname(ctl_sockt, (struct sockaddr *) &ctl_addr, &length) < 0)
- p_error("Bad address for ctl socket");
- }
- #endif
-