User database

Update : ssh from actionfps Format :

User {

* id
* nicknames
* groups
* admins
* pubkey (2048,256)


In Memory

Vector for now? ? c++11 necessary? Or just go for


users.tsvgz, i.e. gzipped tab separated values reloading : client::u pointer changes. store uid rather pointer to struct user ? (and call usermanager::find(cl::uid) everytime ?) probably better yes, IF usermanager::find is fast enough. can also recompute pointers. and kick players with no pointer matching after reload.

Authentication process

  • Use public/private key authentication, DSA method
    • user connects to server
    • server answers random challenge along with SV_SERVINFO (challenge = sha1(openssl crypto safe RAND_bytes + serverid))
    • user answers ID and signature(priv_key, challenge) along with SV_CONNECT
    • server verifies(pub_key, signature, challenge)

This does not require authentication-specific "SV" messages, which is more natural because authentication is required. The user gets disconnected if the signature verification fails or if the corresponding user is banned.

(see or, better documented also


Log messages

[ip] -> [user:ip]

compute on SV_CONNECT'ion. client::identity = format("%s:%s", cl->u->id, cl->hostname)




Example + php generation script :

results matching ""

    No results matching ""