Exemple #1
0
 def _handle_price_response(self, response_dict, request):
     assert request.response_identifier == 'blob_data_payment_rate'
     if 'blob_data_payment_rate' not in response_dict:
         return InvalidResponseError("response identifier not in response")
     offer_value = self.protocol_offers.pop(self.protocol)
     offer = Offer(offer_value)
     offer.handle(response_dict['blob_data_payment_rate'])
     self.payment_rate_manager.record_offer_reply(self.peer, offer)
     if offer.is_accepted:
         log.info("Offered rate %f/mb accepted by %s", offer.rate, self.peer.host)
         self.protocol_prices[self.protocol] = offer.rate
         return True
     elif offer.is_too_low:
         log.debug("Offered rate %f/mb rejected by %s", offer.rate, self.peer.host)
         return not self.payment_rate_manager.price_limit_reached(self.peer)
     else:
         log.warning("Price disagreement")
         self.requestor._price_disagreements.append(self.peer)
         return False
Exemple #2
0
 def _handle_price_response(self, response_dict, request):
     assert request.response_identifier == 'blob_data_payment_rate'
     if 'blob_data_payment_rate' not in response_dict:
         return InvalidResponseError("response identifier not in response")
     offer_value = self.protocol_offers.pop(self.protocol)
     offer = Offer(offer_value)
     offer.handle(response_dict['blob_data_payment_rate'])
     self.payment_rate_manager.record_offer_reply(self.peer, offer)
     if offer.is_accepted:
         log.info("Offered rate %f/mb accepted by %s", offer.rate, self.peer.host)
         self.protocol_prices[self.protocol] = offer.rate
         return True
     elif offer.is_too_low:
         log.debug("Offered rate %f/mb rejected by %s", offer.rate, self.peer.host)
         return not self.payment_rate_manager.price_limit_reached(self.peer)
     else:
         log.warning("Price disagreement")
         self.requestor._price_disagreements.append(self.peer)
         return False
Exemple #3
0
    def _handle_price_response(self, response_dict, request):
        assert request.response_identifier == 'blob_data_payment_rate'
        if 'blob_data_payment_rate' not in response_dict:
            return InvalidResponseError("response identifier not in response")
        assert self.protocol in self.protocol_prices
        rate = self.protocol_prices[self.protocol]
        offer = Offer(rate)
        offer.handle(response_dict['blob_data_payment_rate'])
        self.payment_rate_manager.record_offer_reply(self.peer.host, offer)

        if offer.is_accepted:
            log.debug("Offered rate %f/mb accepted by %s", rate,
                      str(self.peer.host))
            return True
        elif offer.is_too_low:
            log.debug("Offered rate %f/mb rejected by %s", rate,
                      str(self.peer.host))
            del self.protocol_prices[self.protocol]
            return True
        else:
            log.warning("Price disagreement")
            del self.protocol_prices[self.protocol]
            self.requestor._price_disagreements.append(self.peer)
            return False