ID:260340
 
Hello. I am Data. I am engaging in a futile attempt to get startup() blocked on-demand through command-line arguments in DreamDaemon so that my HostServer can't be abused by others who use fcopy() to upload their own DMBs and then use startup() to host them.

Thank you for your future non-cooperation.

-- Data
Android Data wrote:
Hello. I am Data. I am engaging in a futile attempt to get startup() blocked on-demand through command-line arguments in DreamDaemon so that my HostServer can't be abused by others who use fcopy() to upload their own DMBs and then use startup() to host them.

I'm really not sure what you're talking about here. Can you clarify?

Lummox JR
Android Data wrote:
Hello. I am Data. I am engaging in a futile attempt to get startup() blocked on-demand through command-line arguments in DreamDaemon so that my HostServer can't be abused by others who use fcopy() to upload their own DMBs and then use startup() to host them.

Thank you for your future non-cooperation.

-- Data

If you run in ultrasafe then it cannot be accessed without a directory of the same name(your computer)
In response to Lummox JR
Lummox JR wrote:
I'm really not sure what you're talking about here. Can you clarify?

Yes, I can.

I've created a HostServer application for HyperBYOND. This starts and stops BYOND worlds using the startup(), shutdown() and it uses the PID of the game to forcibly close it when it's crashed.

The problem is that I want to limit a users' ability to host multiple games. I'm doing this by (at least for now) only allowing them access to a web-based interface, running the game in safe mode and attempting to restrict further uploads of .DMBs. The latter is failing at this point, especially since we want to use FTP in favor of a crappy web-based interface for managing your game files.

The problem is that when a user uploads a second .DMB file, they'd be able to use the startup() function to spawn a new DreamDaemon hosting their second DMB. This allows them to write their own "server monitor" which would spawn as much servers as they'd like to without our permission.

A "-disablethreads" argument to DreamDaemon (or something like that) would cause startup() to always return 0 and reject spawning of a new game.
In response to Android Data
Ah, so a command line option provided to the DreamDaemon binary on a Linux box in order to prevent game developers from using the world.startup() proc in their worlds. Not a bad idea. I'm sure you'll be pounced upon by the "hosts shouldn't have that much power" crowd, but I fully support your idea now that I understand it.

(I would call it what it is, though: "--nostartupproc". Calling it "-disablethreads" is a little more technical and implies that it actually does something it doesn't, since BYOND games don't use threads.)
In response to Jtgibson
I wouldn't mind this; I definately see the reason for it.
In response to Jtgibson
Jtgibson wrote:
Ah, so a command line option provided to the DreamDaemon binary on a Linux box in order to prevent game developers from using the world.startup() proc in their worlds. Not a bad idea. I'm sure you'll be pounced upon by the "hosts shouldn't have that much power" crowd, but I fully support your idea now that I understand it.

If I'm not mistaken, he's asking for a way to stop developers from hosting multiple versions or multiple games on his system without his permission. As in, one of his users hosting 1202 games instead of 4. This isn't anything to do with the "hosts shouldn't have that much power" argument, because he is the developer of the system. Just because the system is designed to host, doesn't mean he will be leapt on by the likes of me, because he is the creator of the system, thus, as the developer, he has full control of it.
In response to Jtgibson
Jtgibson wrote:
I'm sure you'll be pounced upon by the "hosts shouldn't have that much power" crowd,

Impossible. I am the host. I just want to run DreamDaemon with a command that prevents the developer from using startup() to exploit my system.
In response to Android Data
Android Data wrote:
Jtgibson wrote:
I'm sure you'll be pounced upon by the "hosts shouldn't have that much power" crowd,

Impossible. I am the host. I just want to run DreamDaemon with a command that prevents the developer from using startup() to exploit my system.

Exactly my point. You, the host, are doing something that limits the freedom of he, the developer. Many developers on BYOND seem to have the (in-my-opinion-mistaken) opinion that hosts should be vehicles that the developers can commandeer or confiscate at will if they don't like them on a personal level. I can certainly understand that if you're running a service this kind of complaint would occur less (they can simply terminate their hosting arrangement), but I'm surprised it's not occurring at all.