From e9152f6d21d5a8b1e02922e0fc95b71fc21cbd92 Mon Sep 17 00:00:00 2001 From: mrg Date: Sat, 4 Oct 1997 09:00:13 +0000 Subject: hunt version 1993-07-17 --- hunt/huntd/ctl.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 hunt/huntd/ctl.c (limited to 'hunt/huntd/ctl.c') diff --git a/hunt/huntd/ctl.c b/hunt/huntd/ctl.c new file mode 100644 index 00000000..59449930 --- /dev/null +++ b/hunt/huntd/ctl.c @@ -0,0 +1,52 @@ +/* + * 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, (struct sockaddr *)&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 -- cgit v1.2.3