public boolean push_msg (Msg msg_)
    {
        //  First message to receive is identity (if required).
        if (!identity_received) {
            msg_.set_flags (Msg.identity);
            identity_received = true;
            
            if (!options.recv_identity) {
                return true;
            }
        }
        
        if (pipe != null && pipe.write (msg_)) {
            return true;
        }

        ZError.errno (ZError.EAGAIN);
        return false;
    }