summaryrefslogtreecommitdiffstats
path: root/hunt/huntd/ctl.c
diff options
context:
space:
mode:
Diffstat (limited to 'hunt/huntd/ctl.c')
-rw-r--r--hunt/huntd/ctl.c52
1 files changed, 52 insertions, 0 deletions
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