]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/views/submission.py
Save the server port number during submission
[xonotic/xonstat.git] / xonstat / views / submission.py
index ca67e57192eb9921aae15d9212ae4db0dc2be7ed..4541bdf6eb8125572ee554d531f56a049bca573a 100644 (file)
@@ -349,7 +349,7 @@ def update_fastest_cap(session, player_id, game_id,  map_id, captime):
         session.flush()\r
 \r
 \r
-def get_or_create_server(session, name, hashkey, ip_addr, revision):\r
+def get_or_create_server(session, name, hashkey, ip_addr, revision, port):\r
     """\r
     Find a server by name or create one if not found. Parameters:\r
 \r
@@ -359,6 +359,11 @@ def get_or_create_server(session, name, hashkey, ip_addr, revision):
     """\r
     server = None\r
 \r
+    try:\r
+        port = int(port)\r
+    except:\r
+        port = None\r
+\r
     # finding by hashkey is preferred, but if not we will fall\r
     # back to using name only, which can result in dupes\r
     if hashkey is not None:\r
@@ -400,6 +405,10 @@ def get_or_create_server(session, name, hashkey, ip_addr, revision):
         server.ip_addr = ip_addr\r
         session.add(server)\r
 \r
+    if server.port != port:\r
+        server.port = port\r
+        session.add(server)\r
+\r
     if server.revision != revision:\r
         server.revision = revision\r
         session.add(server)\r
@@ -772,7 +781,8 @@ def submit_stats(request):
                 hashkey  = idfp,\r
                 name     = game_meta['S'],\r
                 revision = revision,\r
-                ip_addr  = get_remote_addr(request))\r
+                ip_addr  = get_remote_addr(request),\r
+                port     = game_meta.get('U', None))\r
 \r
         gmap = get_or_create_map(\r
                 session = session,\r