- if (ZReadZcode((unsigned char *)ptr, addrbuf, sizeof(addrbuf), &len) == ZERR_BADFIELD)
- BAD_PACKET;
+ if (*ptr == 'Z') {
+ if (ZReadZcode((unsigned char *)ptr, addrbuf,
+ sizeof(addrbuf), &len) == ZERR_BADFIELD)
+ BAD_PACKET;
+ } else {
+ len = sizeof(notice->z_sender_sockaddr.ip4.sin_addr);
+ if (ZReadAscii(ptr, end - ptr, (unsigned char *)addrbuf,
+ len) == ZERR_BADFIELD)
+ BAD_PACKET;
+ }