DC Tag
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

DC Tag

Started by rellik, 17 October, 2008, 01:23:47

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rellik

Hi There
Is there a way to dissalow certain dc clients? I have edited the ClientTags.xml with only 1 client's tag. It doesnt seem to affect which clients are allowed to connect to my hub. We have written a custom DC client with its own DC tag and i only want that client to connect to our hub.

Scanning

remember to have hub off when editing xml
UnTick the "accept tag from unknown client's"
<Bool Name="AcceptUnknownTag">0</Bool><!-- 0 to NOT Accept tag from unknown clients. -->
or use a script, remember to have hub off when editing xml

rellik

The Hub was completely closed. I have only 2 DC tags in my clienttags.xml file. Still all clients seem to be able to connect. Have checked that "accept tag from unknown client" is not ticked. Any other ideas why this wont work?

rellik

Quote from: Scanning on 17 October, 2008, 09:35:51

<Bool Name="AcceptUnknownTag">0</Bool><!-- 0 to NOT Accept tag from unknown clients. -->


I checked taht setting as well, its in the settings.xml. I am not running any bots at the moment, so it must be a ptokax setting that could override that?

Snooze

#4
Untested:

tCfg = {
Client = ""   --Enter Client. Ex. DC++
Version = ""  --Enter Client Version. Ex. 0.670
Msg = "Your client is not allowed in this hub." --Enter Message to be sent when client is not allowed.
}
MyINFOArrival = function(user,data)
	if Core.GetUserValue(user,6) and Core.GetUserValue(user,7) then
		if not (Core.GetUserValue(user,6) == tCfg.Client and Core.GetUserValue(user,7) == tCfg.Version) then
			Core.SendToUser(user,"*** "..tCfg.msg)
			Core.Disconnect(user)
		end
	else
		Core.SendToUser(user,"*** "..tCfg.msg)
		Core.Disconnect(user)
	end
end


[Edit]
You might want to allow all clients in the PtokaX GUI to avoid conflicts and confusions.
[/Edit]

rellik

Hi
Thanks for the help.
I get Syntax C:\Ptokax\scripts\client.lua:3: '}' expected (to close '{' at line 1) near 'Version' error.

rellik

Sheesh, thanks very much, could be very usefull that.

phredop

This script is exactly what i was looking for!  thanks a lot Mutor!  I was wondering if there is a way to allow certain profiles to use different clients though.  So as an OP, you can use Apex or another admin oriented client.

Thanks a lot!

phredop

no thank you.  that looks like exactly what i wanted, Thanks a LOT Mutor!

Phred

ckdcello

I'm rather new to scripting in lua and I really like this particular script, for both learning and practical use, but I'm having some difficulty with the ApexDC++ identification.  In particular, this portion of the script doesn't work for me:
                --Apex
		{"^ApexDC++$",
		"1.1.0",
		{[-1] = true,[0] = true,[1] = true,[2] = true,[3] = true},
		},

Specifically, I can't connect to the hub using ApexDC++ at all.  I am thinking that the name tag and/or version number is not being recognized correctly, but I can't find any difference between the script and the client.  Any help would be appreciated.

ckdcello

Thanks for the response, however, I've already figured out that part.  The difficulty I'm having is this: using the ApexDC++ 1.1.0 client, I am unable to connect to the hub.  I'm running the Client Check 1.0 LUA 5.11 [Strict][API 2] script, with the small modification I've already posted (that is, setting all possibilities to true).  From my perspective, it appears that the script is not properly comparing the actual client tag to the check string (or the actual client version tag to the check string, or perhaps both).  Therefore, my question is this: is it possible there is some minor correction needed for that portion of the code (perhaps a LUA logic error that I'm not seeing)?  Or is this script (as is) working perfectly for other Apex users and just presenting a problem for me due to some quirk?   

ckdcello

Thanks so much, it works perfectly now.  I bow to the master. 

reaper

Hi!
I use this script and I cant get this to work
I try whit my dc++ v 0.68 and I cant login to my hubb plz where shuld I change the client so I can login and denny other client ?
--DC++ 0.670 -> 0.699 & 0.707
      {"^D*C*%+%+$",
      {"^0%.6[7-9][0-9]$","0%.707"},
      {[-1] = true,[0] = true,[1] = true,[2] = true,[3] = true},
      },
      --RSX++
      {"^RSX%+%+$",
      "1.00",
      {[-1] = false,[0] = true,[1] = true,[2] = false,[3] = false},
      },
      --Apex
      {"^ApexDC%+%+$",
      "1.1.0",
      {[-1] = false,[0] = true,[1] = true,[2] = false,[3] = false},
      },


Quote from: Mutor on 20 October, 2008, 22:14:41
As you wish, let me know if you need to break down
the versions of a specific client, per profile.
-- http://forum.ptokax.org/index.php?topic=8084.msg75404#msg75404
--[[
	Client Check 1.0 LUA 5.11 [Strict][API 2]

	By Mutor	10/20/08

	Allow only certain clients in the hub
	- Allow clients, per profile
	- Allow certain versions of a client


]]


tCfg = {
	--{"Tag","Version" or {"Version-A","Version-B","Version-C"},{Profile table}},
	Clients = {	
		--DC++ 0.670 -> 0.699 & 0.707
		{"^D*C*%+%+$",
		{"^0%.6[7-9][0-9]$","0%.707"},
		{[-1] = true,[0] = true,[1] = true,[2] = true,[3] = true},
		},
		--RSX++
		{"^RSX%+%+$",
		"1.00",
		{[-1] = false,[0] = true,[1] = true,[2] = false,[3] = false},
		},
		--Apex
		{"^ApexDC%+%+$",
		"1.1.0",
		{[-1] = false,[0] = true,[1] = true,[2] = false,[3] = false},
		},
	},
	-- Enter Message to be sent when client is not allowed.
	Msg = "Your client is not allowed in this hub.",
	--Allow all client in GUI, restrict only with script?
	AnyTag = true,
}

OnStartup = function() if tCfg.AnyTag and not SetMan.GetBool(52) then SetMan.SetBool(52,true) end end

MyINFOArrival = function(user,data)
	local c,v,i = Core.GetUserValue(user,6),Core.GetUserValue(user,7),user.iProfile
	if c and v then
		if not CheckClient(c,v,i) then
			return Core.SendToUser(user,"*** "..tCfg.Msg:gsub("client","%1 ["..c.." "..v.."]")),Core.Disconnect(user),true
		end
	else
		return Core.SendToUser(user,"*** "..tCfg.Msg),Core.Disconnect(user),true
	end
end

CheckClient = function(c,v,i)
	c,v = c:lower(),v:lower()
	for a,b in ipairs(tCfg.Clients) do
		if b[1]:lower() == c or c:find(b[1]:lower()) then
			if b[3][i] then
				if type(b[2]) == "string" then
					if b[2]:lower() == v then return true end
				elseif type(b[2]) == "table" then
					for c,d in ipairs(b[2]) do
						if d:lower() == v then return true end
						if v:find(d) then return true end
					end
				end
			else
				return false
			end
		end
	end
	return false
end


SMF spam blocked by CleanTalk