diff options
author | Robert S. French <rfrench@mit.edu> | 1987-06-10 08:34:32 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1987-06-10 08:34:32 +0000 |
commit | 16720e5ffa2f10c5a969c4027ac570ce46832ea3 (patch) | |
tree | aeabd7f4502221a5fafd224d52e7c6487b896d29 /lib/ZSendPkt.c | |
parent | a004e96fce359c109eae47d8f2ddbfcbb808f0cd (diff) |
Initial revision
Diffstat (limited to 'lib/ZSendPkt.c')
-rw-r--r-- | lib/ZSendPkt.c | 47 |
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); +} |