QTfrontend/netserver.cpp
author unc0rr
Sun, 25 Oct 2009 12:19:47 +0000
changeset 2583 f8da275981e5
parent 2377 f3fab2b09e0c
child 2948 3f21a9dc93d0
permissions -rw-r--r--
Partially implement loading mission options
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     1
/*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 884
diff changeset
     2
 * Hedgewars, a free turn based strategy game
884
99cc72c8a812 - Some debug info
unc0rr
parents: 883
diff changeset
     3
 * Copyright (c) 2006-2008 Igor Ulyanov <iulyanov@gmail.com>
1374
f33fa81e583d Get rid of old net server
unc0rr
parents: 1066
diff changeset
     4
 * Copyright (c) 2008 Andrey Korotaev <unC0Rr@gmail.com>
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     5
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     6
 * This program is free software; you can redistribute it and/or modify
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     7
 * it under the terms of the GNU General Public License as published by
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     8
 * the Free Software Foundation; version 2 of the License
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
     9
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    13
 * GNU General Public License for more details.
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    14
 *
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    16
 * along with this program; if not, write to the Free Software
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    18
 */
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    19
1374
f33fa81e583d Get rid of old net server
unc0rr
parents: 1066
diff changeset
    20
#include <QMessageBox>
1375
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    21
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    22
#include "hwconsts.h"
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    23
#include "netserver.h"
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    24
1375
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    25
HWNetServer::~HWNetServer()
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    26
{
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    27
	StopServer();
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    28
}
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    29
672
08ed55ea1e2a - Fix a bug when server fails to start, and then connecting to another server on the same host (strange, the fix won't work on my machine)
unc0rr
parents: 658
diff changeset
    30
bool HWNetServer::StartServer(quint16 port)
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    31
{
1374
f33fa81e583d Get rid of old net server
unc0rr
parents: 1066
diff changeset
    32
	ds_port = port;
326
c6718bfdd642 Small fixes
unc0rr
parents: 319
diff changeset
    33
1375
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    34
	QStringList params;
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    35
	params << QString("--port=%1").arg(port);
1384
329d3308e2e3 Support for private servers in frontend
unc0rr
parents: 1375
diff changeset
    36
	params << "--dedicated=False";
2377
f3fab2b09e0c And in frontend
nemo
parents: 1384
diff changeset
    37
1375
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    38
	process.start(bindir->absolutePath() + "/hedgewars-server", params);
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    39
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    40
	return process.waitForStarted(5000);
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    41
}
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    42
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    43
void HWNetServer::StopServer()
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    44
{
1375
c95c6887b289 Start new hedgewars server instead of old one
unc0rr
parents: 1374
diff changeset
    45
	process.close();
315
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    46
}
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    47
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    48
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    49
quint16 HWNetServer::getRunningPort() const
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    50
{
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    51
  return ds_port;
73003488240b client/server net pre-alpha
displacer
parents:
diff changeset
    52
}