View Issue Details

IDProjectCategoryView StatusLast Update
0002941CCdcielGeneralpublic26-08-05 11:30
ReporterHan Assigned ToPatrick Chevalley  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Summary0002941: CCDCiel discovery find only one of two Alpaca servers
DescriptionMy Sky simulator has Alpaca server address 127.0.0.1, port 11111. When I use a com device in Ascom 7 is starts a second Alpaca server 127.0.0.1, port 32323. CCDciel sees the only the Ascom7 server. Fix to discover both servers:

cu_alpacamanagement.pas:

Line 354
 - if not f_loopback then Result.Add('127.0.0.1');

+ {A unicast datagram to 127.0.0.1 reaches only ONE of the sockets bound to
   the discovery port, so a second Alpaca server on the same machine - ASCOM
   7 starts one automatically - is silently invisible. The loopback
   broadcast address is delivered to every socket bound with SO_REUSEADDR,
   so all local servers answer.}
  if not f_loopback then begin
    Result.Add('127.255.255.255');
    Result.Add('127.0.0.1');
  end;

Keeping 127.0.0.1 as well costs one extra datagram and covers any server that binds the loopback address explicitly rather than 0.0.0.0; the duplicate check drops the second reply from a server that answers both.
TagsNo tags attached.

Activities

Patrick Chevalley

26-08-05 11:30

administrator   ~0009915

Thank you, I have not tested that before.
I apply your change and I confirm this also fix the problem on Linux.

https://github.com/pchev/ccdciel/commit/073091295d2e6face67185ce446512d3dc0ea4e5

Issue History

Date Modified Username Field Change
26-08-04 16:24 Han New Issue
26-08-05 11:30 Patrick Chevalley Assigned To => Patrick Chevalley
26-08-05 11:30 Patrick Chevalley Status new => resolved
26-08-05 11:30 Patrick Chevalley Resolution open => fixed
26-08-05 11:30 Patrick Chevalley Note Added: 0009915