diff options
author | Robert S. French <rfrench@mit.edu> | 1987-06-20 15:21:00 +0000 |
---|---|---|
committer | Robert S. French <rfrench@mit.edu> | 1987-06-20 15:21:00 +0000 |
commit | cd73b10db92fd36835800ed839d010f5b69bdca6 (patch) | |
tree | 4e12d952a4ab1a087845c6f0bbbcb35747e7820f /lib/ZSendPkt.c | |
parent | 569d2fcd720d80cf47db8ea70ec17c02008dec79 (diff) |
Safety checkin
Diffstat (limited to 'lib/ZSendPkt.c')
-rw-r--r-- | lib/ZSendPkt.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/lib/ZSendPkt.c b/lib/ZSendPkt.c index 7270054..60d84ae 100644 --- a/lib/ZSendPkt.c +++ b/lib/ZSendPkt.c @@ -24,7 +24,7 @@ Code_t ZSendPacket(packet,len) int findack(); Code_t retval; - struct sockaddr_in sin; + struct sockaddr_in dest; struct timeval tv; int auth,t1,t2,t3,i; ZPacket_t ackpack; @@ -37,22 +37,21 @@ Code_t ZSendPacket(packet,len) 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); - - if (sendto(ZGetFD(),packet,len,0,&sin,sizeof(sin)) < 0) + dest = ZGetDestAddr(); + + if (sendto(ZGetFD(),packet,len,0,&dest,sizeof(dest)) < 0) return (errno); ZParseNotice(packet,len,¬ice,&auth); + if (notice.z_kind == UNSAFE || notice.z_kind == HMACK || + notice.z_kind == SERVACK || __HM_set) + return (ZERR_NONE); + tv.tv_sec = 0; tv.tv_usec = 400000; - for (i=0;i<4;i++) { + for (i=0;i<12;i++) { select(0,&t1,&t2,&t3,&tv); retval = ZCheckIfNotice(ackpack,sizeof ackpack,¬ice, &auth,findack,¬ice.z_uid); @@ -64,10 +63,9 @@ Code_t ZSendPacket(packet,len) return (ZERR_HMDEAD); } -int findack(notice,uid) +static int findack(notice,uid) ZNotice_t *notice; ZUnique_Id_t *uid; { - printf("FOO\n"); - return (!ZCompareUID(uid,¬ice->z_uid)); + return (ZCompareUID(uid,¬ice->z_uid)); } |