@@ -194,12 +194,14 @@ struct iovec iov[2] = { { &protocolType, 1 }, { buffer, length } }; struct msghdr msg = { - .msg_name = (struct sockaddr *)&sender->sockaddr, - .msg_namelen = (socklen_t)sizeof(sender->sockaddr), + .msg_name = (sender != NULL + ? (struct sockaddr *)&sender->sockaddr : NULL), + .msg_namelen = (sender != NULL + ? (socklen_t)sizeof(sender->sockaddr) : 0), .msg_iov = iov, .msg_iovlen = 2 }; if (_socket == OFInvalidSocketHandle) @@ -214,12 +216,14 @@ if (ret < 1 || protocolType != _protocolType) @throw [OFReadFailedException exceptionWithObject: self requestedLength: length errNo: ENOMSG]; - sender->length = msg.msg_namelen; - sender->family = OFSocketAddressFamilyAppleTalk; + if (sender != NULL) { + sender->length = msg.msg_namelen; + sender->family = OFSocketAddressFamilyAppleTalk; + } return ret - 1; } - (void)sendBuffer: (const void *)buffer