openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #32851
Re: [Merge] lp:~alisonken1/openlp/pjlink2-r into lp:openlp
On Sat, Apr 28, 2018 at 12:15 AM, Phill <phill.ridout@xxxxxxxxx> wrote:
> Review: Needs Fixing
>
> Ran out of time to complete a review, but a few in lines to start.
>
> Diff comments:
>
>>
>> === modified file 'openlp/core/projectors/manager.py'
>> --- openlp/core/projectors/manager.py 2018-04-20 06:04:43 +0000
>> +++ openlp/core/projectors/manager.py 2018-04-28 02:41:38 +0000
>> if read_size < 0:
>> log.warning('(UDP) No data (-1)')
>> return
>> - if read_size < 1:
>> + elif read_size < 1:
>
> given the < 0 condition above, this condition will only be True when read_size == 0, which to me is a bit readable / obvious at a quick glance.
-1 indicates a socket problem - which is distinct from no data (0 or
empty packet)
>> @@ -654,10 +651,10 @@
>> :param host: IP address of sending host
>> :param port: Port received on
>> """
>> - log.warning('(UDP) SRCH packet received from {host} - ignoring'.format(host=host))
>> + log.warning("({ip}) I don't do SRCH packets - ignoring".format(ip=self.ip))
>
> Why this change? the original is more understandable to me!
This method is only called from within a projector instance - not the
UDP monitor.
However, just noticed it's using the wrong option for {ip} - should be
ip=self.entry.name
>
>> return
>>
>> - def process_sver(self, data, *args, **kwargs):
>> + def process_sver(self, data):
>> """
>> Software version of projector
>> """
>> @@ -1181,7 +1187,7 @@
>> try:
>> self.readyRead.disconnect(self.get_socket)
>> except TypeError:
>> - pass
>> + log.debug('({ip}) disconnect_from_host(): TypeError detected'.format(ip=self.entry.name))
>
> You're just disconnecting a slot here right? Do we need to log that?
Since this is in the projector instance, I would like to know if
there's a type issue - if so, then I would like to see it in the log.
>
>> log.debug('({ip}) disconnect_from_host() '
>> 'Current status {data}'.format(ip=self.entry.name, data=self._get_status(self.status_connect)[0]))
>> if abort:
>
>
> --
> https://code.launchpad.net/~alisonken1/openlp/pjlink2-r/+merge/344795
> You are the owner of lp:~alisonken1/openlp/pjlink2-r.
--
- Ken
Registered Linux user 296561
Slackin' since 1993
Slackware Linux (http://www.slackware.com)
OpenLP - Church Projection Software
Empower Your Church http://openlp.org
On Sat, Apr 28, 2018 at 12:15 AM, Phill <phill.ridout@xxxxxxxxx> wrote:
> Review: Needs Fixing
>
> Ran out of time to complete a review, but a few in lines to start.
>
> Diff comments:
>
>>
>> === modified file 'openlp/core/projectors/manager.py'
>> --- openlp/core/projectors/manager.py 2018-04-20 06:04:43 +0000
>> +++ openlp/core/projectors/manager.py 2018-04-28 02:41:38 +0000
>> @@ -513,6 +519,18 @@
>> projector.socket_timer.timeout.disconnect(projector.link.socket_abort)
>> except (AttributeError, TypeError):
>> pass
>> + # Disconnect signals from projector being deleted
>> + try:
>> + self.pjlink_udp.data_received.disconnect(projector.get_buffer)
>
> He's disconnecting a slot here, so TypeError is the correct exception to catch. Not sure it AttributeError is needed though
>
>> + except (AttributeError, TypeError):
>> + pass
>> + try:
>> + if self.pjlink_udp[projector.port]:
>> + self.pjlink_udp[projector.port].data_received.disconnect(projector.get_buffer)
>> + except (AttributeError, TypeError):
>> + pass
>> +
>> + # Rebuild projector list
>> new_list = []
>> for item in self.projector_list:
>> if item.link.db_item.id == projector.link.db_item.id:
>>
>> === modified file 'openlp/core/projectors/pjlink.py'
>> --- openlp/core/projectors/pjlink.py 2018-04-20 06:04:43 +0000
>> +++ openlp/core/projectors/pjlink.py 2018-04-28 02:41:38 +0000
>> @@ -108,22 +111,20 @@
>> if read_size < 0:
>> log.warning('(UDP) No data (-1)')
>> return
>> - if read_size < 1:
>> + elif read_size < 1:
>
> given the < 0 condition above, this condition will only be True when read_size == 0, which to me is a bit readable / obvious at a quick glance.
>
>> log.warning('(UDP) get_datagram() called when pending data size is 0')
>> return
>> - data, peer_address, peer_port = self.readDatagram(self.pendingDatagramSize())
>> + elif read_size > PJLINK_MAX_PACKET:
>> + log.warning('(UDP) UDP Packet too large ({size} bytes)- ignoring'.format(size=read_size))
>> + return
>> + data_in, peer_host, peer_port = self.readDatagram(read_size)
>> + data = data_in.decode('utf-8') if isinstance(data_in, bytes) else data_in
>> log.debug('(UDP) {size} bytes received from {adx} on port {port}'.format(size=len(data),
>> - adx=peer_address,
>> - port=peer_port))
>> + adx=peer_host.toString(),
>> + port=self.port))
>> log.debug('(UDP) packet "{data}"'.format(data=data))
>> - # Send to appropriate instance to process packet
>> - log.debug('(UDP) Checking projector list for ip {host} to process'.format(host=peer_address))
>> - for projector in self.projector_list:
>> - if peer_address == projector.ip:
>> - # Dispatch packet to appropriate remote instance
>> - log.debug('(UDP) Dispatching packet to {host}'.format(host=projector.entry.name))
>> - return projector.get_data(buff=data, ip=peer_address, host=peer_address, port=peer_port)
>> - log.warning('(UDP) Could not find projector with ip {ip} to process packet'.format(ip=peer_address))
>> + log.debug('(UDP) Sending data_received signal to projectors')
>> + self.data_received.emit(peer_host, self.localPort(), data)
>> return
>>
>> def search_start(self):
>> @@ -654,10 +651,10 @@
>> :param host: IP address of sending host
>> :param port: Port received on
>> """
>> - log.warning('(UDP) SRCH packet received from {host} - ignoring'.format(host=host))
>> + log.warning("({ip}) I don't do SRCH packets - ignoring".format(ip=self.ip))
>
> Why this change? the original is more understandable to me!
>
>> return
>>
>> - def process_sver(self, data, *args, **kwargs):
>> + def process_sver(self, data):
>> """
>> Software version of projector
>> """
>> @@ -1181,7 +1187,7 @@
>> try:
>> self.readyRead.disconnect(self.get_socket)
>> except TypeError:
>> - pass
>> + log.debug('({ip}) disconnect_from_host(): TypeError detected'.format(ip=self.entry.name))
>
> You're just disconnecting a slot here right? Do we need to log that?
>
>> log.debug('({ip}) disconnect_from_host() '
>> 'Current status {data}'.format(ip=self.entry.name, data=self._get_status(self.status_connect)[0]))
>> if abort:
>
>
> --
> https://code.launchpad.net/~alisonken1/openlp/pjlink2-r/+merge/344795
> You are the owner of lp:~alisonken1/openlp/pjlink2-r.
--
- Ken
Registered Linux user 296561
Slackin' since 1993
Slackware Linux (http://www.slackware.com)
OpenLP - Church Projection Software
Empower Your Church http://openlp.org
https://code.launchpad.net/~alisonken1/openlp/pjlink2-r/+merge/344795
Your team OpenLP Core is subscribed to branch lp:openlp.
References