Different share for different hubs

Bug #689460 reported by Szabolcs Molnár
16
This bug affects 1 person
Affects Status Importance Assigned to Milestone
DC++
Wishlist
Unassigned
StrongDC++
Undecided
Unassigned

Bug Description

A long-awaited feature is that the user should be able to define different shares for different (adc) hubs. This should be implemented.

I can imagine several ways to do it:

1) Define share on per-hub in favorites. This seems to be a not-too-good idea.
2) Since now we have "hub groups", we could invent "group share" which would let the user to define custom share for a group. In this case we should disable the "customize share for this group" switch if there are NMDC hubs in the group and we should disable the possibility to move an NMDC hub to a group with a customized share (this would eliminate future bug reports).
3) Moving from 2) a little bit further, the "group property page" could contain some other settings too which could be customized per-group favor, like a "profile" page with default nick for a group, etc.

eMTee (realprogger)
Changed in dcplusplus:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Szabolcs Molnár (fleet) wrote :

Posting two mockups how I think a group settings dialog could look like. Obviously it's not ready, for example, we should state somewhere on a visible place that some settings are only applied for ADC hubs. Also, on the General page, we could put some custom identity too in the (now empty) second group.

Revision history for this message
Szabolcs Molnár (fleet) wrote :
Revision history for this message
Night (night.) wrote :

I wont comment on how to do shares part, but the problems one might have to get it working correctly.

Ok, lets imagine we are at 2 adc hubs with a same user, different shares in each hubs.
user takes the list from hub1, he gets it just fine and its a correct one, BUT here comes the problem:
he then takes list from hub2, he will get the same list as before (from hub1),
it will use the same userconnection that started from hub1, because the user is considered to be the same if he has the same CID.

So either the client should have Hub spesific userconnections, or the connection reguest should be bind to a hub somehow.
One solution might be to send mySID in the GET reguest when reguesting a filelist from users,
so uploader could then update connection to right hub.
CGET list / 0 -1 ID*mySID*

for responding to File upload reguests we could just use CID to find all the same hubs with the user and then decide to give it or not,
he could get them anyway if they are shared even in one of the hubs.

Revision history for this message
Big Muscle (bigmuscle) wrote :

I think that your remark is connected with the bug #206778.

I think that
a) hub-specific userconnections
b) disconnect userconnection and make a new one when connection in different hub is wanted
should be the only correct solutions.

Adding any hub/sid/etc. information into GET command would increase a risk that users will be able to ask for files from different hubs and I don't think it is correct. The feature should be done transparently, i.e. downloading client should not know about the fact that remote user can have different shares in two hubs.

Big Muscle (bigmuscle)
Changed in strongdc:
status: New → In Progress
Revision history for this message
iceman50 (bdcdevel) wrote :

Just adding a diff of some of the work Night did on DiCe for separate shares per hub along with additional fixes for picking a hub a search came from http://pastebin.com/TyA5zaW6

Revision history for this message
iceman50 (bdcdevel) wrote :

I was just given a new diff by night apparently there were some things missing from the previous one .. <http://files.airdcpp.net/dice.diff>

Big Muscle (bigmuscle)
Changed in strongdc:
status: In Progress → Fix Committed
Fredrik Ullner (ullner)
Changed in dcplusplus:
importance: Medium → Wishlist
Revision history for this message
Fredrik Ullner (ullner) wrote :

The patch from the above comment, reposted so as to not lose it if the AirDC++ site is unavailable.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers