no udp response on FreeBSD/arm

Vernon Schryver vjs@rhyolite.com
Mon Jun 25 14:19:12 UTC 2012


> From: "Ronald Klop" <ronald-freebsd8@klop.yi.org>

> I added __attribute__((__packed__)) to DCC_FLOD_PATH_ID and DCC_CK and now  
> it seems to work. At least the server responds.

Do you have any special settings for gcc?  Is that crazy structure
alignment the default for FreeBSD on ARM?  What about Linux?
I found old comments that suggested that sanity might prevail.

(It's crazy and silly because it requires only sub-structures instead
of all variables to be word aligned.   Notice that ck->len is at an
odd address and in the same word as ck->type.)


> I guess it is by design that the servers ignore invalid packets in stead  
> of replying with an error message.

Yes, not answering bogus DCC requests is intentional.
However, I think entries like this in the system logs of the public
DCC servers are relevant (UTC timestamp):

Jun 24 17:43:34 x dccd[72883]: drop request with header length 332 instead of 296 from 212.182.167.131,10875


> I don't know if my solution with __packed__ is the best, but thanks a lot  
> for your quick answers.

I suspect there are plenty of other places that assume natural
alignment for the protocol (e.g. responses) or the server database
and are affected by this nonsense.  Is there an ARM system where
I could get a guest account to do some testing?


Thanks for looking into the problem,
Vernon Schryver    vjs@rhyolite.com



More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.