Exergy

Member
  • Content count

    37
  • Joined

  • Last visited

Posts posted by Exergy


  1. Thats fair, I have been able to knock one together now anyways, just somewhat less pretty than yours.

    Err, mine isnt a mod as such, more a customised version of yours for our Uni.

    But still, I take your point, thanks for the help so far :D


  2. Think I can guess the consensus of replies to this topic.

    Sure, but this is the wrong place. Your request most likely exists in a thousand places, or is in development elsewhere, but here is not the place.

    This has been and for the forseeable future will be a purely Direct Connect client, making what you requested would divert from this.

    Sorry :)


  3. Here are the exact steps I took guys. Not sure if all of them are required, but I would see no reason why they wouldn't be, so follow carefully. For reference:

    ApexDC = Default Apex Client

    UoNApexDC = Custom version of the client im doing for my hub / uni

    PWDC = Peerweb

    Obviously only use the ones you want, in here it shows all of them, as until ive finished my custom version of apex, our users use different types.

    # cdcconf.cpp
    
    
    char *cl_types[]={"", "plusplus","dcgui","odc","dc","dcpro", "strongdc", "idc", "zdc"};
    
    to
    
    char *cl_types[]={"", "plusplus","dcgui","odc","dc","dcpro", "strongdc", "idc", "zdc", "apexdc", "uonapexdc", "pwdc"};
    
    
    # cdctag.cpp
    
    
    if(!mTagRE.Compile("((<iDC|zDC\\+\\+\\[|o)([\\d\\.]+)?(>|\\])?)?<(\\+\\+|DCGUI|oDC|DC|DC\\:PRO|TK|StrgDC\\+\\+) ?V\\:([^,]+),([^>]*)>"))
    
    to
    
    if(!mTagRE.Compile("((<iDC|zDC\\+\\+\\[|o)([\\d\\.]+)?(>|\\])?)?<(\\+\\+|DCGUI|oDC|PWDC\\+\\+|UoNApexDC\\+\\+|ApexDC\\+\\+|DC|DC\\:PRO|TK|StrgDC\\+\\+) ?V\\:([^,]+),([^>]*)>"))
    
    
    		// determine client's type
    
    		mParser.mTagRE.Extract(eTP_TYPE,desc,str);
    
    		if( str == "++" ) mClientType = eCT_PLUSPLUS;
    
    		else if (str == "DCGUI") mClientType = eCT_DCGUI;
    
    		else if (str == "oDC") mClientType = eCT_ODC;
    
    		else if (str == "DC") mClientType = eCT_DC;
    
    		else if (str == "DC:PRO") mClientType = eCT_DCPRO;
    
    		else if (str == "StrgDC++") mClientType = eCT_STRONGDC;
    
    		else if (str.size() ) mClientType = eCT_UNKNOWN;
    
    		if (mParser.mTagRE.PartFound(eTP_PRE_PREFIX))
    
    		{
    
    
    to
    
    
    		// determine client's type
    
    		mParser.mTagRE.Extract(eTP_TYPE,desc,str);
    
    		if( str == "++" ) mClientType = eCT_PLUSPLUS;
    
    		else if (str == "DCGUI") mClientType = eCT_DCGUI;
    
    		else if (str == "oDC") mClientType = eCT_ODC;
    
    		else if (str == "DC") mClientType = eCT_DC;
    
    		else if (str == "DC:PRO") mClientType = eCT_DCPRO;
    
    		else if (str == "StrgDC++") mClientType = eCT_STRONGDC;
    
    		else if (str == "ApexDC++") mClientType = eCT_APEXDC;
    
    		else if (str == "UoNApexDC++") mClientType = eCT_UONAPEXDC;
    
    		else if (str == "PWDC++") mClientType = eCT_PWDC;
    
    		else if (str.size() ) mClientType = eCT_UNKNOWN;
    
    		if (mParser.mTagRE.PartFound(eTP_PRE_PREFIX))
    
    		{
    
    
    
    		string Client;
    
    		switch(mClientType)
    
    		{
    
    			case cDCTag::eCT_PLUSPLUS: Client = "DC++"; break;
    
    			case cDCTag::eCT_DCGUI: Client = "DCGUI"; break;
    
    			case cDCTag::eCT_ODC: Client = "oDC"; break;
    
    			case cDCTag::eCT_DC: Client = "DC"; break;
    
    			case cDCTag::eCT_DCPRO: Client = "DCPRO"; break;
    
    			case cDCTag::eCT_STRONGDC: Client = "StrongDC++"; break;
    
    			case cDCTag::eCT_IDC: Client = "iDC"; break; 
    
    			case cDCTag::eCT_ZDC: Client = "zDC++"; break;
    
    			default: Client = "Unknown"; break;
    
    		}
    
    
    to
    
    
    		string Client;
    
    		switch(mClientType)
    
    		{
    
    			case cDCTag::eCT_PLUSPLUS: Client = "DC++"; break;
    
    			case cDCTag::eCT_DCGUI: Client = "DCGUI"; break;
    
    			case cDCTag::eCT_ODC: Client = "oDC"; break;
    
    			case cDCTag::eCT_DC: Client = "DC"; break;
    
    			case cDCTag::eCT_DCPRO: Client = "DCPRO"; break;
    
    			case cDCTag::eCT_STRONGDC: Client = "StrongDC++"; break;
    
    			case cDCTag::eCT_IDC: Client = "iDC"; break; 
    
    			case cDCTag::eCT_ZDC: Client = "zDC++"; break;
    
    			case cDCTag::eCT_APEXDC: Client = "ApexDC++"; break;
    
    			case cDCTag::eCT_UONAPEXDC: Client = "UoNApexDC++"; break;
    
    			case cDCTag::eCT_PWDC: Client = "PWDC++"; break;			
    
    			default: Client = "Unknown"; break;
    
    		}
    
    
    # cdctag.h
    
    
    	typedef enum{ eCT_NOTAG, eCT_PLUSPLUS, eCT_DCGUI, eCT_ODC, eCT_DC, eCT_DCPRO, eCT_STRONGDC, eCT_IDC, eCT_ZDC, eCT_UNKNOWN } tClientType;
    
    to
    
    	typedef enum{ eCT_NOTAG, eCT_PLUSPLUS, eCT_DCGUI, eCT_ODC, eCT_DC, eCT_DCPRO, eCT_STRONGDC, eCT_IDC, eCT_ZDC, eCT_APEXDC, eCT_UONAPEXDC, eCT_PWDC, eCT_UNKNOWN } tClientType;

    Now would also be a good time to change Verlihubs topic length setting to 255 from the annoying 80. In addition I recommend you update all the strings which are returned to users if they dont meet certain connection critirea such as "Turn on your tags", is not very helpful for joe blogs - "You are using a DC++ client which is not supported on this hub, please use either: xxx, xxx. These can be downloaded at: www.xxx.com."

    Once youve finished the edits, simply ./configure, make, and make install. You shouldnt have to redo any settings, and nothing will be lost.

    Once in your hub, or through phpmyadmin or similar, use:

    !set tag_allow_none 0

    !reload

    This will disallow users who have tags the hub doesnt recognise from connecting. In addition you will also find that Apex / Peerweb users are now subject to the same slot req' as everyone else.

    :)


  4. For anyone interested in the intial slot detection point.

    I was able to resolve this, it will require you to edit Verlihubs source and recompile.

    Basically, using search all files, search for say "strngdc" and after each instance, add "ApexDC". I made around 6 edits in total I believe.

    Its now possible for me to use !set tag_allow_none 0, and still have apex users connect.

    Infact I intend to take a different approach to most hubs, and have all clients but Apex banned.

    So well done apex :)


  5. Hi, apologies for my retardness but I get the error:

    Compiling resources...

    Deleting old pdb file...

    The system cannot find the file specified.

    Project : error PRJ0019: A tool returned an error code from "Deleting old pdb file..."

    Build log was saved at "file://C:\Documents and Settings\xxx\My Documents\Files\Programs\Apex Compile\ApexDC++_0.2.1_src\apexdc\vc7\Release\StrongDC\BuildLog.htm"

    StrongDC - 1 error(s), 0 warning(s)

    ========== Rebuild All: 7 succeeded, 1 failed, 0 skipped ==========

    Ive followed the guide to the letter, only part I could have slipped on was:

    Note: IF YOU HAVE SP2 SDK INSTALLED REMOVE IT FROM VS 2005 Include Files

    (This was the thing that failed my compilation numerous of times)

    If this is the cause of my problem, could you be slightly more specific on how to do this?

    Cheers!


  6. Hi, wasn't really sure where to put this topic, so sorry if its in the wrong place.

    Firstly, I run a hub using verlihub, and Apex is causing me some issues. I want my clients to use Apex, hell I even recommend it, but heres my problem:

    The Hub does not seem to read how many slots an Apex user has open, and so even though my minimum requirement is 4 slots, they are able to connect with 2?

    This wouldnt be an issue, but without it, it allows users to have free reign on the limiter functions in Apex. Im all for them limiting to prevent ADSL line saturation, but not too the extent that they do. You see, if I set the min slots to 4, the upload limiter formula would kick in (4+1x5 = 25 which is fine.)

    I understand I could disallow Apex threw tags and theyd still be able to connect with emulation to solve the problem, but my users arent the most inteligent with computers (users from my university).

    Is there a known way around this with Verlihub? I appreciate any help on this matter, I really do not want to dissallow apex, its such a great client.

    Finally, a big annoyance of mine, and something which again confuses my users, is the apparent inaccuracy of the speed indicators, both on individual downloads /uploads and in the bottom left corner of the status bar (only works in multiples of 32KB/s, so inspecific for my 64KB/s upload!) The download / upload individual speed indicators seem to take an average of too long a period. This then resets after each segment (very frequently I might add), and the averages rises again to like 150KB/s and falls to beneath the actual speed.

    My problem is the constant reem of questions I get "Why is my download slowing so much, it was on 150 before!" When it obviously cannot be as my upload is only 60KB/s or so. I have to keep telling them its a false average. I never noticed there problem in DC++ nor peerweb.

    Sorry for the long thread, but these issues have really been bugging me, any help you can offer is very much appreciated :D


  7. Actually I am also finding this problem to be much more prevalent in Apex than it ever was in peerweb. In 2 weeks of using Apex, ive reinstalled 3times (completely, one was even after a format). Yet ive come across this error 3 times in my total use of Apex, in comparison to once with peerweb, which I used in over a year.

    I cant help but thing there is an underlying bug somewhere increasing the prevalence of corruption in apex.


  8. Why not simply make the code for the tongue to be :-P instead of :)

    Or even an IF statement which if "tiger:" exists rather than just ":" is true, then no smiley should be created.


  9. Hi, ive noticed that the speed indicator for total upload / download speed only works in multiples of 32KB/s in the bottom status bar. This is all fine and good if youve got a super fast download or upload, but for my connection of 8meg down / 512 up, its rather inspecific compared to PWDC.

    Thanks :)