oeuillot / upnpserver

Fast and light upnp server for node
GNU General Public License v2.0
181 stars 47 forks source link

Nodes add : dup node name check ? #34

Open s-leger opened 9 years ago

s-leger commented 9 years ago

Hi, When you add multiple nodes with same name, only the first is showing. (behaviour changed after iceCast integration)

This is not an expected behaviour, the correct way to ensure nodes are unique is to check the url of the ressource (url and external now). This way multiple nodes with same name can coexist (in iceCast some stations do share the same name, but with different bandwidth, and thus different urls).

@oeuillot : did you see my e-mail ? Opened a new "device" abstraction level branch.

oeuillot commented 9 years ago

Hello S-leger,

No, sorry, I don't remember any mail (date ?) Can-you contact me with gtalk ?

I don't understand the problem !? You can have multiple nodes with the same name, it is not forbidden ! The key of a node is its "id" not its name !

If you get the first only ? It is a bug !

I have opened a new Filter-JXML branch to rework the filters engine. You are a new Upnpserver collaborator ! You can open the branch in the main repo ;-) if you want !

Regards,

2015-08-28 13:33 GMT+02:00 s-leger notifications@github.com:

Hi, When you add multiple nodes with same name, only the first is showing. (behaviour changed after iceCast integration)

This is not an expected behaviour, the correct way to ensure nodes are unique is to check the url of the ressource (url and external now). This way multiple nodes with same name can coexist (in iceCast some stations do share the same name, but with different bandwidth, and thus different urls).

@oeuillot https://github.com/oeuillot : did you see my e-mail ? Opened a new "device" abstraction level branch.

— Reply to this email directly or view it on GitHub https://github.com/oeuillot/upnpserver/issues/34.

s-leger commented 9 years ago

Hi, Ok, i take a look at the json sent by icecast to see if they changed anything on it. Thank you for the access !

mail from 14 aout @gmail

Edit: found iceCast change line 472 to: if (mu.attributes.externalContentURL === itemData.externalContentURL )

oeuillot commented 9 years ago

Hello , Have you seen the branch Filter_JXML, can I merge it ?

Regards, Olivier

2015-08-28 18:22 GMT+02:00 s-leger notifications@github.com:

Hi, Ok, i take a look at the json sent by icecast to see if they changed anything on it. Thank you for the access !

mail from 14 aout @gmail https://github.com/gmail

— Reply to this email directly or view it on GitHub https://github.com/oeuillot/upnpserver/issues/34#issuecomment-135824063.

s-leger commented 9 years ago

Hi Olivier, Sorry, i ve not seen your post.

I keep a look at the repo, merging upstreams from master into device on every commit. Some changes done in the device branch are breaking ones. Breaking features: -The way configuration is done (as per device and services basis) -API, with centralized ssdp, to allow miltiple devices on a single server. -upnpServer becomes MediaServer (more close to upnp spec)

Features: -A device class with one httpserver (automatic free port discovery). -Auto require of files based on pattern (cds mainly) -soapError by service (auto loading, with default to old soapError) -All specific features of services are now in her own class (cds) -Starting AVTransport implementation, looking for weakness of the the service/device class as generic one. -Versionning of device/service -Handle multiple service instances creation destruction and routing (AVTransport, RenderingControl, ConnectionManager ..) -Handle LastChange event model in stateVars (MediaServer3, AVT, CM and RC)

Note : You made a comment in upnpserver for getIP(): The IP of the local machine can be multiple. We must use the IP of the request. Upnp discovery only advertise for a single uri for each device, so this is not true, at least in the pure upnp theory of operation. You may specify either an ip, an ipFamily or a network interface to bind to on configuration, when auto-configuration is not working right for you.