Save the server port number during submission
authorAnt Zucaro <azucaro@gmail.com>
Tue, 5 Feb 2013 08:38:51 +0000 (03:38 -0500)
committerAnt Zucaro <azucaro@gmail.com>
Tue, 5 Feb 2013 08:38:51 +0000 (03:38 -0500)
xonstat/views/submission.py

index ca67e57..4541bdf 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