Merge branch '164-crash-on-patching-and-possibly-right-after-login' into main/gingo...
[ryzomcore.git] / ryzom / client / src / login.h
blobcca0165d36178cf6682a19abf6224584c60de4dd
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2019 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef CL_LOGIN_H
22 #define CL_LOGIN_H
24 #include <nel/misc/types_nl.h>
25 #include <nel/web/http_client_curl.h>
26 #include <string>
27 #include <vector>
29 struct CShard
31 CShard(const std::string &version, bool online, uint32 shardId, const std::string &name, uint32 nbPlayers, const std::string &wsAddr, const std::string &emergencyPatchURL)
33 Version = version;
34 Online = online;
35 ShardId = shardId;
36 Name = name;
37 NbPlayers = nbPlayers;
38 WsAddr = wsAddr;
39 EmergencyPatchURL = emergencyPatchURL;
42 std::string Version;
43 bool Online;
44 uint32 ShardId;
45 std::string Name;
46 uint32 NbPlayers;
47 std::string WsAddr;
48 std::vector<std::string> PatchURIs;
49 std::string EmergencyPatchURL;
52 extern std::string LoginLogin, LoginPassword, LoginCustomParameters;
53 extern uint32 LoginShardId;
56 extern uint32 AvailablePatchs;
60 std::string checkLogin(const std::string &login, const std::string &password, const std::string &clientApp, const std::string &customParameters = "");
61 std::string selectShard(uint32 shardId, std::string &cookie, std::string &addr);
62 std::string getBGDownloaderCommandLine();
64 // connection with the server. (login, shard list, etc.).
65 bool login();
66 void loginIntro();
68 // force patch for the mainland part
69 void mainLandPatch();
71 extern std::vector<CShard> Shards;
72 extern sint32 ShardSelected;
74 // TODO : nico : put this in an external file, this way it isn't included by the background downloader
75 #ifndef RY_BG_DOWNLOADER
78 * HTTP client preconfigured to connect to the startup login host
80 class CStartupHttpClient : public NLWEB::CCurlHttpClient
82 public:
84 bool connectToLogin();
87 extern CStartupHttpClient HttpClient;
89 #endif // RY_BG_DOWNLOADER
91 #endif // CL_LOGIN_H
93 /* End of login.h */