On behalf of inAccessNetworks and for the needs of
the ePerSpace project , I've implemented a trivial
implementation of the Layer3Forwarding service.
While working on it I've made some more changes/fixes
included also in the attached patch.
The patch is against a fresh cvs check out and my tree
using diff -wuirN.
I'm sorry for not posting the various changes as
seperate patches but I didn't have the time to post,
defend and maintain my modifications at the time they
were implemented. Please let me know if this is a
problem or if any clarifications/corrections are needed.
Below is a summary of the additional changes (i.e.
apart from the Layer3Forwarding) hoping I don't miss
- fix a bug about PortMappingNumberOfEntries value
being 0 in HandleSubscriptionRequest
- root and embeded devices have now different UDN. I
think this is the right thing. Changes to gatedevice.c
were required (e.g. handling request codes first checks
the UDN and then the ServiceID accordingly).
- Make use of libupnp defined error codes defines whre
possible and add defines for all IGD related error codes
- introduced ActionError function in gatedevice.c to
simplify error situation handling
- introduced a utility function GetNodeTextConditional
for retrieving the text node value if the parent
element node name matches (used fore deviceType and UDN)
- moved UpnpFinish()/exit(0) out of StateTableInit and
- add a presentationURL in the device description
document and an almost empty presentation.html
document. This allow windows My Network Places
generalize control point to display Linux-IGD