PDA

View Full Version : LFS Server Remote Control development


JogDive
22nd February 2006, 15:32
Hello guys !
some time ago, i started to develop a advanced "FREE & PUBLIC" remote control for all LFS versions. I attached 3 pics of my latest development in this thread.All is working fine but i donīt know how to dev a good "user account system" with permission rights for the remote access to my server app. Are there some guys who want to work on that projekt with me ? iīm also happy gettin some good tips for the user account problem (account managment,connection and password encryption and so on..........)

Thanx in advance !

El_TaxMaN
23rd February 2006, 12:16
it will be possible upload layouts??

JogDive
23rd February 2006, 14:24
it will be possible upload layouts??
sorry, but i donīt know exactly what you mean. The App is written on Borland C-Builder 6 (C++)

nikimere
23rd February 2006, 14:53
he means can you upload .lyt files to the dedicated server.
Layout files store information on autocross tracks, that people make on thr circuits or in the car park.

JogDive
23rd February 2006, 15:09
Sure,thats possible ! we could send files via a file- or memory stream through the tcp socket.

the_angry_angel
23rd February 2006, 15:35
Just a question, does this require that you run an application on the same server as the game server, as well as running a client on your local PC? Or does this use InSim?

JogDive
23rd February 2006, 15:44
Just a question, does this require that you run an application on the same server as the game server, as well as running a client on your local PC?
Yes, the server app uses insim

Client <------>
Client <----bad bad inet-----> ServerApp <-----> Insim
Client <------>

The pics above showing the server app. the client is still in development

JogDive
24th February 2006, 13:16
is something wrong with my idea ?

the server app has the same insim functions like the client, itīs a bit misleading

the_angry_angel
24th February 2006, 14:13
I'm obviously not quite following, I'm assuming you mean this:
LFS Game Server <-- Internet --> Your Client App (connecting via InSim)

Or do you mean:
LFS Game Server <-> Your Server App (connecting via InSim) <-- Internet --> Your Client App (connecting to "Your Server App", via some other protocol)

Just wanna get it right :) Either way its fine, I'm just interested :)

JogDive
24th February 2006, 14:28
Or do you mean:
LFS Game Server <-> Your Server App (connecting via InSim) <-- Internet --> Your Client App (connecting to "Your Server App", via some other protocol)

Yes, thats it !

the_angry_angel
24th February 2006, 14:41
Ah right, got it :) In that case an accounts system shouldnt be too difficult. Your Server App just needs to have a "database" of information, including username and password. The Server App then checks every time a new connection is made. This way you can have controlling accounts without having to have the servers exact InSim, or admin password, details.

:up: Nice one dude :)

Edit:
Out of interest, which language is it in?

JogDive
24th February 2006, 14:53
This way you can have controlling accounts without having to have the servers exact InSim, or admin password, details.

:smileypul
The App is written in C++ with Borland C-Builder 6. First i thought to create an encrypted file with permission flags and user password for each account. this file is named by the user name or we generate one file with all users included. A database solution like sql is too much for this usage and requires more on the root server. Please look at my attached pic. The pic shows the account generating form

JogDive
25th February 2006, 02:47
Hey, i wrote the server sided user account managment tonight (my first try! :tired:, donīt shoot at me please :)). All user account data are stored in an encrypted (self made encryption) "<account>.db" file. Ok so far, but what do you think about the user account validation when a client connects ? i have some ideas but iīm always searching for "better" solutions. any ideas ?

the_angry_angel
25th February 2006, 09:11
To be honest, for client authentication, I'd make a hash of the password, and then make a hash on the sever side, and then compare them. That way you arent sending it over plain text, but you still have auth :)

As for the GUI it looks good :)

Dygear
25th February 2006, 09:17
Hey, i wrote the server sided user account managment tonight (my first try! :tired:, donīt shoot at me please :)). All user account data are stored in an encrypted (self made encryption) "<account>.db" file. Ok so far, but what do you think about the user account validation when a client connects ? i have some ideas but iīm always searching for "better" solutions. any ideas ?

Is the encryption reversible?

the_angry_angel
25th February 2006, 09:27
Is the encryption reversible?By definition encryption is reversible. Otherwise its a hash.

the_angry_angel
26th February 2006, 11:45
To be honest, I've never used SSL. I assume you're using your own certificate? Out of interest, which library did you use for SSL?

JogDive
26th February 2006, 15:28
Open SSL by the indy Project. I use SSL as an intercept of my TCP Server Sock. I generated a private und public key set but iīm not sure to use them. better not

the_angry_angel
26th February 2006, 23:10
Giving the user the ability to import their own certification could be interesting....that said is SSL really worth it. Perhaps not?

CrazyICE
27th February 2006, 13:39
nice to see that not only me is doing such a tool!
me is nearly finished!

more details: http://lfsdedi.crazyice.net

Dygear
27th February 2006, 18:32
By definition encryption is reversible. Otherwise its a hash.

Thanks I can never rember which ones which.

JogDive
22nd March 2006, 05:38
me is nearly finished too.

Please have a look at my first stable beta:

Dizzy74
22nd March 2006, 07:10
Das sieht sehr vielversprechend aus ...
oops, accidently wrote in german :).

Want to say that the screenshot looks very promising so far...

shim
22nd March 2006, 07:38
would like to test either JogDive's or Crazy's server admin.. cause me team is always wantin me to change me config for em.. but couldnt find a DL link for either :(

CrazyICE
22nd March 2006, 09:14
demo version will be available soon :)
i'm currently testing...

shim
22nd March 2006, 11:32
if ya want a demo beta tester ill be happy to help where i can :)

Dizzy74
22nd March 2006, 12:30
demo version will be available soon :)
i'm currently testing...

That also sounds very promising :).

JogDive
26th March 2006, 01:47
if ya want a demo beta tester ill be happy to help where i can :)

Hey, that sounds good. Could you give me your icq ?? My app is ready to run. A bunch of work is done now...The client made some problems first but i solved all with a multithreaded solution.

shim
26th March 2006, 02:23
dont use ICQ, so check PM's for info :)

JogDive
26th March 2006, 05:24
dont use ICQ, so check PM's for info :)
Done

shim
26th March 2006, 09:22
aight, got it installed no problem and working fine so far.. :)

is it possible to be able to change the auto broadcast presets on the server within the client?

JogDive
26th March 2006, 09:39
All right :thumb: please add the following commands to the server "admin.perm" file:

/p_dt
/p_sg
/p_30
/p_45
/pitlane


Sorry,but you canīt change the presets with the client yet. nice idea

shim
26th March 2006, 10:34
tis been added to the .perm file :)

edit, me server is mostly demo, but i do throw it up as S2 every so often.. so i can test both extensivly for you :)

JogDive
26th March 2006, 10:56
Thank you very much :thumb: i fixed a bug in the server app. In some cases all players on the LFS server were not synchronized with the client player list on a login. I will work on a new insim sync method for the client the next days.i got some great new ideas

shim
26th March 2006, 11:14
you got me email addy, so send all the updates ya want.. ill update me server as i get em.. :)

Dygear
26th March 2006, 21:44
When can we expect to see a public alpha?

JogDive
27th March 2006, 12:08
When can we expect to see a public alpha?

I hope to release it in the next weeks. the concept works at all but there is enough to do....and no new features until the base development works 100%

JogDive
28th March 2006, 12:38
I optimized tons of code last night and fixed several bugs. i wrote a complete new filter method for the color codes and other char tags. What the hell means ^L ?? in the version yet, i made a space for ^L

Mein^vNick^aAUT = Mein|Nick*AUT

@shim: the new "exe" set is on the way........:)

paXton
28th March 2006, 13:32
look here: http://www.lfsforum.net/showthread.php?p=44576#post44576
// Code page indicators
// ^L = Latin 1
// ^G = Greek
// ^C = Cyrillic
// ^J = Japanese
// ^E = Central Europe
// ^T = Turkish
// ^B = BalticCiao... Pascal

JogDive
28th March 2006, 13:36
Ahh, i see. Language tags.... thank you very much !


Bad Laasphe ?? Marburg :D

paXton
28th March 2006, 15:10
Bad Laasphe ?? Marburg :D
jepp, BAD LA. City 8) :Handshake

shim
29th March 2006, 07:53
just installed, and had a lil prob with the new exe, but figured out how to fix it.. had to re-enable me admin account.. :P

also another idea.. being able to set the server password/options within the server side.. cause sometimes i like to have a PW on me server as soon as i throw it up cause i do get a few ppl in me server at times..

CrazyICE
29th March 2006, 10:08
Mein^vNick^aAUT = Mein|Nick*AUT

hmmm... i know this example... ;) :D

JogDive
29th March 2006, 10:30
just installed, and had a lil prob with the new exe, but figured out how to fix it.. had to re-enable me admin account.. :P

i think you deleted the "access.key" file. The userdatabase is only valid with its created key. If the key gets lost all account data are something like trash (Readme.txt). please make a backup in future. i used my first created accounts through all versions yet :scratchch .strange......


and the rest youīve written: Sorry, what do you mean exactly ??
Edit: Ahh, i see what u mean. hehe the first server sided app had all insim controls. but it was only a test base for the client development so i removed all. the server is only a "remote session manager" for LFS. I thought that nobody do changes without having a valid user account ;)

Edit2: I create a password edit in the LFS server process start options.

Edit3: Ohh, hey guy i sent you a new version last night at 3 oīclock and the email adress i entered was wrong:( i got a bad response from my mail demon. The latest set is in your mail account yet

Tanuva
29th March 2006, 13:34
hey thats exactly what Im lookin for... would be great if you could make it public in the near future, or do you need a second tester? :scratchch :D

But just another question:
Could you try to include an irc broadcast bot? That would make it a killer app. :D

Or I have to look for some inSim Gateway and code my own bot... Afaik there is some Gateway.. °.°

JogDive
29th March 2006, 14:06
Yes, iīm able to build IRC based apps but.....i think itīs a nice idea but other things go first *noticed* Guys, iīm on 98% of the base development. Please give me a week or two for the first final release :x :D

there are many people who are looking for something like that.... but i donīt want to spread unfinished versions over the net.

JogDive
29th March 2006, 17:18
We arrived 100% !!!

my fingers are bleeding...but i wrote the last open point of the base development. The client to client sync. I will send this version to all beta test mates today and hope to get no bad response from them.

Here comes a new pic:

Dygear
29th March 2006, 18:24
Dude, awsome, can't wait for the release. With my own attemps failing (so far) I would love to see how a really works, in hopes to get a better idea for my own implamentation. If you need a mirror, or anyweb space, let me know.

JogDive
29th March 2006, 23:39
Thank you Dygear!

what was the problem with your app design or your idea ?? lets do some brainstorming together. Donīt think too close in one way to solve a problem and never give up...read try read try.... Take a blank paper sheet and try to figure your ideas with logic and a pencil out. Then code your pseudo code :D

[Added]
Password edit for the server start process.

The first long test with the final version was very great. It runs so fast and stable. We got no errors at all. shim, how does it work on your side ??

Tanuva
31st March 2006, 10:57
ya said "basic coding" has finished, what do you want to code in addition?
[just curious about what's to come... ^^]

JogDive
31st March 2006, 11:40
yes, basic coding has finished and a testing period is running. i found some small bugs and fixed it out. i will code a function to save all entered client and server settings in a ini file and load it on startup. First i thought to store all data in the registry but itīs a bit annoying if you lose your os ;) After that, the first final version is ready for public use

Thats a good question Tanuva. There are enough cool things to do....I hope the people who will use my software give me some ideas and feedbacks. Its hard to say whats needed or not without statements from users.

Has anybody informations about a possible LFS dedicated server for Linux/Unix ??

Tanuva
1st April 2006, 06:27
The server could only run on linux if you get it to work in wine or cedega. Or we could try to get the devs port it to linux, that would simplify running it. But that will take some time...

the_angry_angel
1st April 2006, 12:16
Its totally possible to run the LFS dedi under wine, infact a lot of people do. Bear in mind that a lot run without an X server (i.e. no GUI), so it would need to be a daemon (service) if you're thinking about porting across.

Tanuva
1st April 2006, 17:34
I dont know how the server works internally, but the main problem to solve would be getting the server to print all messages in the console instead of using an x-server, or am i totally wrong? ^^
And the second one to get it to run without directx, which makes it necessary to recode the whole thing... I see, using wine is much easier... :scratchch

Tanuva
2nd April 2006, 12:23
LFS DediLink v1.00 has been released!
DediLink Thread (http://www.lfsforum.net/showthread.php?t=6139)

the_angry_angel
2nd April 2006, 14:27
I dont know how the server works internally, but the main problem to solve would be getting the server to print all messages in the console instead of using an x-server, or am i totally wrong? ^^
And the second one to get it to run without directx, which makes it necessary to recode the whole thing... I see, using wine is much easier... :scratchchErrr, are you talking about the LFS dedicated server, or the remote program? As far as I can see, theres no reason to even get it to output to STDOUT. Perhaps logging to a file, but never to the console.

For reference, you CAN run the LFS dedi on linux, with the following command, nohup wine LFS.exe /cfg=setup.cfg > /dev/null & echo $! > lfs.pidThis makes it run on the background, any possible output is routed to /dev/null (afaik LFS doesnt echo anything to STDOUT anyway, but this is kind of a "just incase" thing), and the PID of the process is written to lfs.pid.

paXton
2nd April 2006, 16:12
For reference, you CAN run the LFS dedi on linux, with the following command, nohup wine LFS.exe /cfg=setup.cfg > /dev/null & echo $! > lfs.pidThis makes it run on the background, any possible output is routed to /dev/null (afaik LFS doesnt echo anything to STDOUT anyway, but this is kind of a "just incase" thing), and the PID of the process is written to lfs.pid. And IMO don't forget/dedicated=nogfxin the setup.cfg.

Pascal

the_angry_angel
3rd April 2006, 07:25
True, wine does tend to barf if you don't include it - must've slipped my mind to mention it... :o

JogDive
21st April 2006, 06:26
has anybody information about new trackstrings or the "BMW F1" car string ??
I will upload a fixed Dedilink version for the new patch today or tomorrow

SamH
21st April 2006, 12:17
Hiya!

We've roughly 15 LFS servers running on a dedicated server. Will this app help me admin them all, or would switching between each one be complicated?

JogDive
21st April 2006, 12:50
Hi Sam !
yes that would be complicated because you have to switch between servers with the DidiLink server app. I think CrazyIce is developing that what you are searching for ;)

But you can start DediLink Server for each Server. The process start options with DediLink Server starts a new LFS dedicated server for itself (checked by process id) ;) After each successfull connect with the DediLink client, the server ips will be saved the ip combo box (but not the ports,try to use 10001-10015). Thats a possible solution now but donīt forget unique ports for servers and insim access.

Edit: I think thats a needed feature to control more than one server and have simultanous insim access.Give me some time...

JogDive
22nd April 2006, 12:04
I need detailed information about the new Aston tracks. Could anybody help me ?

Edit:
Fixed but not released yet (Client):
- Sauber BMW support
- The server adress box stores the port number and will be set on select
- Added Aston Grand Touring and Aston North

paXton
22nd April 2006, 12:13
I only have this, figured out by myself: (without guarantee)

array('650', '651', '660', '661')
array('AS6', 'AS6R', 'AS7', 'AS7R')
array('Aston Grand Touring', 'Aston Grand Touring reversed', 'Aston North', 'Aston North reversed')
paXton

JogDive
22nd April 2006, 12:44
That is all what i need , thx !

JogDive
22nd April 2006, 19:55
[Updated 22.04.2006]
Version 1.2 is online !
Fixed:
Sauber BMW support.
Added Aston Grand Touring and Aston North Track.
Fixed the InSim text filter function.
Ports will be entered and stored with the server address.

Edit: Found a bug and fixed it in version 1.2. please download version 1.2 again if you installed it!

JogDive
25th April 2006, 13:01
I need some beta testers for version 1.2.1 :nod:

yankman
26th April 2006, 07:45
Is there a possiblity to port the dedilink server to linux ?
So can the gui easily seperated from the core functions ?
Are there any other libs beside ssl, that are used ?

Maybe it can go opensource, with different makefiles for different os.

Yankman

JogDive
26th April 2006, 13:22
It works with wine a mate told me some time ago

JogDive
26th April 2006, 14:22
Here comes a new user interface for server permissions: (1.2.1 is ready but still in testing phase,not released yet!)

JogDive
28th April 2006, 00:04
New in Version 1.2.1 Final

- All settings (Client/Server) are correctly saved and loaded on startup.
- Command /carshost added to client.
- The permissions for both groups (Admin,User) can be set and removed by a fomular. Itīs not longer necessary to restart the process to apply permissions and to find out what the commands mean ;)

- An optionsmenu. The player ban time can be set.
- Insim text filter function improved and fixed.

- The running LFS server settings will be snychronized to the client server-config dialogs. :nod:
(Please run a complete server configuration with DediLink client first).

JogDive
29th April 2006, 13:34
New in Version 1.3 (not released yet !)
- Client: Fixed the Live! View player commands send behaviour.
- Client: Added a config profiler.
- Server: Complete reworked broadcast editor (see pics). Now you can edit old entries, add new items and delete them. I think it is 100% more comfortable than the older version ;)
- Server: Some small improvements to speed up the udp socket.
- Server/Client: improvements to speed up status answers on status reply.
- Server: Set the latest LFS server settings on Insim login.
- Server: Added an option menu: Set the latest server settings on Insim login "Enable/Disable".
- Server: Synchronizing some DediLink options to give some help to get it easy started.
- Server: SSL certificate file extension changed to ".cert".
Added an opendialog box to load your own SSL certificate files.
- Fixed some small bugs.

JogDive
1st May 2006, 00:57
Version 1.3 is released ! (hotfixed)

JogDive
1st May 2006, 15:00
Version 1.3 (Final) 01.05.2006
DediLink V1.3 Final is available !

Edit: found a bug and fixed it ! please patch V1.3 All should working proper now. Enjoy !

JogDive
2nd May 2006, 02:01
Screenshots:

JogDive
3rd May 2006, 13:34
New Feature 03.05.2006
- Client/Server: Added the Button "Upload selected profile" to configure your LFS dedicated server within 2 mouse clicks.

marcione
3rd May 2006, 16:14
hi,

1. nice tool.


i have a problem. i canīt stop (kill) the server by using the client. no option found to do this.


marc

JogDive
3rd May 2006, 16:22
i have a problem. i canīt stop (kill) the server by using the client. no option found to do this.


yes, iīs not possible yet.i thought that its not neccessary to exit the server

marcione
3rd May 2006, 16:28
plz. bring up a funktion like this. i need it. :nod:

JogDive
3rd May 2006, 17:31
Ok, let me see. In the latest release, Dedilink server donīt recognize if the LFS server is closed external. I reworked a bit the LFS server create process function (not released yet!). Itīs working proper now.
The problem issnīt starting and stopping the LFS process by the DediLink client, but the problem is to recognize when the FS dedicated server is ready for an insim login after startup :scratchch This point deppends on server performance and i donīt know how to shedule it now. I could try to reach the insim port on that defined address and send an insiminit on success. The communication between DediLink Server and LFS is based on the UDP protocol. UDP is connection less so i have to set an TimoutTimer and sync it to the ACKīs coming from Insim. Itīs needed to recognize a "lost connection"

marcione
3rd May 2006, 17:57
ok you have 2 days ;) :haha: ;)

JogDive
3rd May 2006, 18:09
:pillepall:x:shy::D

got a idea, give me some minutes.....

JogDive
3rd May 2006, 18:28
Ok, the automatic insim login works now. I will look further....

The app try in a defined interval to access insim. If itīs not possible to reach insim, a timeout event will be executed and send a message to the client. The DediLink client needs a control panel to set all LFS server settings shown on DediLink Server.

marcione
3rd May 2006, 18:42
nice work. go on plz. :nana:

faster111
3rd May 2006, 21:03
help i just download this and cartnstart my sever with it it comes up saying this error conneting with SSL how do ixset this up plase help

JogDive
3rd May 2006, 21:22
1. DediLink Server: Please set the SSL option on the "Remote" tab.
SSLv2 is a less secure version of ssl (v2)
SSLv3/TLS is the securest ssl method.

Decide to use one and set it on the configuration panel of the DediLink Server and reenable it (Disable/Enable).

2. DediLink Client: Set the same SSL method like the server and connect.

faster111
3rd May 2006, 21:41
1. DediLink Server: Please set the SSL option on the "Remote" tab.
SSLv2 is a less secure version of ssl (v2)
SSLv3/TLS is the securest ssl method.

Decide to use one and set it on the configuration panel of the DediLink Server and reenable it (Disable/Enable).

2. DediLink Client: Set the same SSL method like the server and connect. ok i done it but it says connect timed out?

JogDive
3rd May 2006, 21:43
is the server firewalled ? the port shown in "Bind TCP port" in the dedilink server options must be forwarded to the local ip address on server side to access.
Connect with the client in the following address format: 217.112.127.17:14888
14888 is the DediLink Server remote port by default

faster111
3rd May 2006, 21:46
is the server firewalled ? the port shown in "Bind TCP port" in the dedilink server options must be forwarded to access is the sever online?

JogDive
3rd May 2006, 21:47
which server ?

JogDive
4th May 2006, 00:59
go on plz

The next step is the insim "connection" timeout. I figured it out how to recognize the LFS server status(running,closed,running but no insim access,running with insim access) and message clients if insim access is granted or not :nod: by the way i added a function which "reconnects" on insim access loss

JogDive
5th May 2006, 02:28
Sorry, i reworked the client after that marcione. i will have a look at the server version 1.4 soon ;)


[New in version 1.3 Final Fix#2 (Client only)]
- Client: Reworked TCP socket reading and sending behaviour. The DediLink Client gui
was slow and hanging caused by too much IO operations when online. Itīs
working propper now.

JogDive
21st May 2006, 14:32
Version 1.4 is out now !

[New in version 1.4]
- Client/Server: Fixed a bug in the carstring function.
- Server: Added an Insim auto login option and a connection loss function.
- Client/Server: Fixed some small bugs.

@marcione: i will add a restart option later because iīm very busy.

JogDive
26th May 2006, 13:26
Version 1.4 Final (stable) is available !

JogDive
29th May 2006, 11:25
I think this app is not longer needed by the public. The download rate of the new version is very poor. Did CrazyIce released his control app ? i think my work is useless.
I will cancel the development now. Thank you guys for your help :thumb:

JogDive
25th July 2006, 20:40
Hello guys !
i will work on a new version if the next LFS patch isnīt 100% compatible with Dedilink. Please notice me