Hi,
>=20
> Le Mercredi 24 Septembre 2003 10:45, Steven Whitehouse a =E9crit :
> > > I have a question about an error message : i have an object (server=
)
> > > running on a VAX machine (written in ADA) that i try to connect by =
a
> > > socket connection (a remote named object) from a LINUX box.
> >
> > Me neither :-)
>=20
> Bad for me :-)
> But thanks for the response !
>=20
> > Did you set the connect data and/or the access data before calling co=
nnect?
> > Not that it should case a crash if it wasn't set, but I would expect =
the
> > "object rejected connect" response if something didn't match there.
>=20
> If you talk about the sockaddr_dn structure, i think it's correctly con=
figured=20
> (it's a named object) :
>=20
> sockaddr.sdn_family =3D AF_DECnet;
> sockaddr.sdn_flags =3D 0x00;
> sockaddr.sdn_objnum =3D 0x00; /* for a named object ? */
> sockaddr.sdn_objname =3D "TASK";
> sockaddr.sdn_objnamel =3D 4;
> memcpy(sockaddr.sdn_add.a_addr, np->n_addr,2);
> ...
>=20
> etc ....
>
That looks ok, and you are right that objnum =3D 0 for named objects.
=20
> Even if we configure the accessdata_dn structure, it doesn't works (hop=
e it's=20
> optional ...).
>
It depends on what the other end expects to see. Mostly it appears that
it is not optional from the DEC applications I've seen interacting
with Linux DECnet.
=20
> For the moment, we are going to compile a single/simple server with all=
the=20
> API used in the real one : TASK_QIOW (which called itself QIO). ADA is =
a very=20
> strange langage (for our point of view) and we need to understand much =
more=20
> how it works. But we hope there are no uncompatibility between both (AD=
A=20
> decnet layer and Linux layer) ...
>
Well ADA has bindings to the POSIX network API afaik, so if you are using
those, all the features of Linux DECnet should be available. As for ADA
on VAXen, I have no experience at all.
=20
> > I think thats the next step. You need to set them before the connect =
call
> > as certain defaults are assumed by the DECnet code if none are set by
> > the user. There are some pointers on the DECnet kernel pages as to wh=
at
> > the parameters are: http://www.chygwyn.com/DECnet/
>=20
> You have trying to change some parameters (with setsockopt), but withou=
t=20
> success. We need to continue :-)
>=20
> > Steve.
>=20
> Thanks,
> Lionel
>=20
Ok. If you have a way to set up a correctly working connection (without L=
inux
DECnet) you should be able to use tcpdump or some similar tool to work
out whats going on and reverse engineer it. All the packet formats (bar
one!) are listed in the DECnet documents. The one missing bit relates to
the formatting of the "end user names" where the formats are shown, but
the uses are not explained that well - the Linux code knows when to send
which type.
Steve.
|