summaryrefslogtreecommitdiff
path: root/lib/ZSendPkt.c
diff options
context:
space:
mode:
authorGravatar Robert S. French <rfrench@mit.edu>1987-06-10 08:34:32 +0000
committerGravatar Robert S. French <rfrench@mit.edu>1987-06-10 08:34:32 +0000
commit16720e5ffa2f10c5a969c4027ac570ce46832ea3 (patch)
treeaeabd7f4502221a5fafd224d52e7c6487b896d29 /lib/ZSendPkt.c
parenta004e96fce359c109eae47d8f2ddbfcbb808f0cd (diff)
Initial revision
Diffstat (limited to 'lib/ZSendPkt.c')
-rw-r--r--lib/ZSendPkt.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/ZSendPkt.c b/lib/ZSendPkt.c
new file mode 100644
index 0000000..215f548
--- /dev/null
+++ b/lib/ZSendPkt.c
@@ -0,0 +1,47 @@
+/* This file is part of the Project Athena Zephyr Notification System.
+ * It contains source for the ZSendPacket function.
+ *
+ * Created by: Robert French
+ *
+ * $Source$
+ * $Author$
+ *
+ * Copyright (c) 1987 by the Massachusetts Institute of Technology.
+ * For copying and distribution information, see the file
+ * "mit-copyright.h".
+ */
+/* $Header$ */
+
+#include <zephyr/mit-copyright.h>
+
+#include <zephyr/zephyr_internal.h>
+#include <sys/socket.h>
+
+Code_t ZSendPacket(packet,len)
+ ZPacket_t packet;
+ int len;
+{
+ Code_t retval;
+ struct sockaddr_in sin;
+
+ if (!packet || len < 0 || len > Z_MAXPKTLEN)
+ return (ZERR_ILLVAL);
+
+ if (ZGetFD() < 0)
+ if ((retval = ZOpenPort(0)) != ZERR_NONE)
+ return (retval);
+
+ if ((retval = Z_GetHMPortAddr()) != ZERR_NONE)
+ return (retval);
+
+ sin.sin_family = AF_INET;
+ sin.sin_port = htons(__HM_port);
+ bcopy(__HM_addr,&sin.sin_addr,__HM_length);
+
+ printf("Internal: Sending to port %d\n",__HM_port);
+
+ if (sendto(ZGetFD(),packet,len,0,&sin,sizeof(sin)) < 0)
+ return (ZERR_UNIX);
+
+ return (ZERR_NONE);
+}