FS2_Open
Open source remastering of the Freespace 2 engine
stand_gui-unix.cpp File Reference
#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
#include <streambuf>
#include <algorithm>
#include <iterator>
#include <cstddef>
#include "network/stand_gui.h"
#include "globalincs/pstypes.h"
#include "gamesequence/gamesequence.h"
#include "playerman/player.h"
#include "mission/missiongoals.h"
#include "ship/ship.h"
#include "network/multi.h"
#include "network/multiutil.h"
#include "network/multimsgs.h"
#include "network/multi_pmsg.h"
#include "network/multi_kick.h"
#include "network/multi_endgame.h"
#include "fs2netd/fs2netd_client.h"
#include "mongoose.h"
#include "jansson.h"

Go to the source code of this file.

Classes

struct  split_struct
 
class  WebapiCommand
 
class  ChangeServerInformationCommand
 
class  KickPlayerCommand
 
class  ShutdownServerCommand
 
class  UpdateMissionsCommand
 
class  ResetGameCommand
 
class  ResetFs2NetCommand
 
struct  LogResource
 
struct  LogResource::LogResourceEntry
 
struct  ResourceContext
 
struct  Resource
 

Macros

#define ARRAY_SIZE(array)   (sizeof(array) / sizeof(array[0]))
 

Typedefs

typedef json_t *(* resourceHandler) (ResourceContext *)
 

Enumerations

enum  HttpStatuscode { HTTP_200_OK, HTTP_401_UNAUTHORIZED, HTTP_404_NOT_FOUND, HTTP_500_INTERNAL_SERVER_ERROR }
 

Functions

template<typename Container >
Container & split (Container &result, const typename Container::value_type &s, const typename Container::value_type &delimiters, split_struct::empties_t empties=split_struct::empties_ok)
 
std::string base64_encode (unsigned char const *bytes_to_encode, unsigned int in_len)
 
std::string base64_decode (std::string const &encoded_string)
 
void webapiAddCommand (WebapiCommand *command)
 
void webapiExecuteCommands ()
 
json_t * emptyResource (ResourceContext *context)
 
json_t * serverGet (ResourceContext *context)
 
json_t * serverPut (ResourceContext *context)
 
json_t * serverDelete (ResourceContext *context)
 
json_t * refreshMissions (ResourceContext *context)
 
json_t * serverResetGame (ResourceContext *context)
 
json_t * fs2netReset (ResourceContext *context)
 
json_t * netgameInfoGet (ResourceContext *context)
 
json_t * missionGet (ResourceContext *context)
 
json_t * missionGoalsGet (ResourceContext *context)
 
json_t * playerGet (ResourceContext *context)
 
json_t * playerDelete (ResourceContext *context)
 
net_playerplayerForId (int playerId)
 
json_t * playerMissionScoreAlltimeGet (ResourceContext *context)
 
json_t * playerMissionScoreMissionGet (ResourceContext *context)
 
int afterTimestamp (ResourceContext *context)
 
json_t * chatGet (ResourceContext *context)
 
json_t * chatPost (ResourceContext *context)
 
json_t * debugGet (ResourceContext *context)
 
void webapi_shutdown ()
 
void std_init_standalone ()
 
void std_configLoaded (multi_global_options *options)
 
void std_add_chat_text (const char *text, int player_index, int add_id)
 
void std_debug_multilog_add_line (const char *str)
 
void std_add_ban (const char *name)
 
int std_player_is_banned (const char *name)
 
int std_is_host_passwd ()
 
void std_set_standalone_fps (float fps)
 
void std_do_gui_frame ()
 
void std_connect_set_gamename (char *name)
 
void std_add_player (net_player *p)
 
int std_remove_player (net_player *p)
 
void std_connect_set_host_connect_status ()
 
int std_connect_set_connect_count ()
 
void std_update_player_ping (net_player *p)
 
void std_multi_setup_goal_tree ()
 
void std_multi_add_goals ()
 
void std_multi_update_goals ()
 
void std_multi_update_netgame_info_controls ()
 
void std_multi_set_standalone_mission_name (char *mission_name)
 
void std_gen_set_text (char *str, int field_num)
 
void std_create_gen_dialog (char *title)
 
void std_destroy_gen_dialog ()
 
int std_gen_is_active ()
 
void std_debug_set_standalone_state_string (char *str)
 
void std_reset_standalone_gui ()
 
void std_reset_timestamps ()
 
void std_multi_set_standalone_missiontime (float mission_time)
 
void std_init_os ()
 

Variables

SDL_mutex * webapiCommandQueueMutex = SDL_CreateMutex()
 
SCP_vector< WebapiCommand * > webapiCommandQueue
 
SDL_mutex * webapi_dataMutex = SDL_CreateMutex()
 
netgame_info webapi_netgameInfo
 
std::map< short, net_playerwebapiNetPlayers
 
float webui_fps
 
float webui_missiontime
 
std::list< mission_goalwebuiMissionGoals
 
LogResource webapi_chatLog
 
LogResource webapi_debugLog
 
struct Resource resources []
 
struct mg_context * webserverContext = NULL
 
std::vector< std::stringbannedPlayers
 

Macro Definition Documentation

#define ARRAY_SIZE (   array)    (sizeof(array) / sizeof(array[0]))

Definition at line 191 of file stand_gui-unix.cpp.

Typedef Documentation

typedef json_t*(* resourceHandler) (ResourceContext *)

Definition at line 437 of file stand_gui-unix.cpp.

Enumeration Type Documentation

Enumerator
HTTP_200_OK 
HTTP_401_UNAUTHORIZED 
HTTP_404_NOT_FOUND 
HTTP_500_INTERNAL_SERVER_ERROR 

Definition at line 385 of file stand_gui-unix.cpp.

Function Documentation

int afterTimestamp ( ResourceContext context)

Definition at line 674 of file stand_gui-unix.cpp.

std::string base64_decode ( std::string const &  encoded_string)

Definition at line 119 of file stand_gui-unix.cpp.

std::string base64_encode ( unsigned char const *  bytes_to_encode,
unsigned int  in_len 
)

Definition at line 77 of file stand_gui-unix.cpp.

json_t* chatGet ( ResourceContext context)

Definition at line 683 of file stand_gui-unix.cpp.

json_t* chatPost ( ResourceContext context)

Definition at line 688 of file stand_gui-unix.cpp.

json_t* debugGet ( ResourceContext context)

Definition at line 698 of file stand_gui-unix.cpp.

json_t* emptyResource ( ResourceContext context)

Definition at line 446 of file stand_gui-unix.cpp.

json_t* fs2netReset ( ResourceContext context)

Definition at line 497 of file stand_gui-unix.cpp.

json_t* missionGet ( ResourceContext context)

Definition at line 519 of file stand_gui-unix.cpp.

json_t* missionGoalsGet ( ResourceContext context)

Definition at line 528 of file stand_gui-unix.cpp.

json_t* netgameInfoGet ( ResourceContext context)

Definition at line 502 of file stand_gui-unix.cpp.

json_t* playerDelete ( ResourceContext context)

Definition at line 608 of file stand_gui-unix.cpp.

net_player* playerForId ( int  playerId)

Definition at line 614 of file stand_gui-unix.cpp.

json_t* playerGet ( ResourceContext context)

Definition at line 581 of file stand_gui-unix.cpp.

json_t* playerMissionScoreAlltimeGet ( ResourceContext context)

Definition at line 626 of file stand_gui-unix.cpp.

json_t* playerMissionScoreMissionGet ( ResourceContext context)

Definition at line 650 of file stand_gui-unix.cpp.

json_t* refreshMissions ( ResourceContext context)

Definition at line 487 of file stand_gui-unix.cpp.

json_t* serverDelete ( ResourceContext context)

Definition at line 482 of file stand_gui-unix.cpp.

json_t* serverGet ( ResourceContext context)

Definition at line 450 of file stand_gui-unix.cpp.

json_t* serverPut ( ResourceContext context)

Definition at line 460 of file stand_gui-unix.cpp.

json_t* serverResetGame ( ResourceContext context)

Definition at line 492 of file stand_gui-unix.cpp.

template<typename Container >
Container& split ( Container &  result,
const typename Container::value_type &  s,
const typename Container::value_type &  delimiters,
split_struct::empties_t  empties = split_struct::empties_ok 
)

Definition at line 21 of file stand_gui-unix.cpp.

void std_add_ban ( const char *  name)

Definition at line 888 of file stand_gui-unix.cpp.

void std_add_chat_text ( const char *  text,
int  player_index,
int  add_id 
)

Definition at line 863 of file stand_gui-unix.cpp.

void std_add_player ( net_player p)

Unused methods from the original API below, most of this stuff is now done in std_do_gui_frame

Definition at line 963 of file stand_gui-unix.cpp.

void std_configLoaded ( multi_global_options options)

Definition at line 845 of file stand_gui-unix.cpp.

int std_connect_set_connect_count ( )

Definition at line 967 of file stand_gui-unix.cpp.

void std_connect_set_gamename ( char *  name)

Definition at line 937 of file stand_gui-unix.cpp.

void std_connect_set_host_connect_status ( )

Definition at line 966 of file stand_gui-unix.cpp.

void std_create_gen_dialog ( char *  title)

Definition at line 975 of file stand_gui-unix.cpp.

void std_debug_multilog_add_line ( const char *  str)

Definition at line 872 of file stand_gui-unix.cpp.

void std_debug_set_standalone_state_string ( char *  str)

Definition at line 978 of file stand_gui-unix.cpp.

void std_destroy_gen_dialog ( )

Definition at line 976 of file stand_gui-unix.cpp.

void std_do_gui_frame ( )

Definition at line 907 of file stand_gui-unix.cpp.

int std_gen_is_active ( )

Definition at line 977 of file stand_gui-unix.cpp.

void std_gen_set_text ( char *  str,
int  field_num 
)

Definition at line 974 of file stand_gui-unix.cpp.

void std_init_os ( )

Definition at line 984 of file stand_gui-unix.cpp.

void std_init_standalone ( )

Definition at line 841 of file stand_gui-unix.cpp.

int std_is_host_passwd ( )

return 1 if the standalone is host password protected, otherwise 0

Definition at line 899 of file stand_gui-unix.cpp.

void std_multi_add_goals ( )

Definition at line 970 of file stand_gui-unix.cpp.

void std_multi_set_standalone_mission_name ( char *  mission_name)

Definition at line 973 of file stand_gui-unix.cpp.

void std_multi_set_standalone_missiontime ( float  mission_time)

Definition at line 981 of file stand_gui-unix.cpp.

void std_multi_setup_goal_tree ( )

Definition at line 969 of file stand_gui-unix.cpp.

void std_multi_update_goals ( )

Definition at line 971 of file stand_gui-unix.cpp.

void std_multi_update_netgame_info_controls ( )

Definition at line 972 of file stand_gui-unix.cpp.

int std_player_is_banned ( const char *  name)

Definition at line 892 of file stand_gui-unix.cpp.

int std_remove_player ( net_player p)

Definition at line 965 of file stand_gui-unix.cpp.

void std_reset_standalone_gui ( )

Definition at line 979 of file stand_gui-unix.cpp.

void std_reset_timestamps ( )

Definition at line 980 of file stand_gui-unix.cpp.

void std_set_standalone_fps ( float  fps)

Definition at line 903 of file stand_gui-unix.cpp.

void std_update_player_ping ( net_player p)

Definition at line 968 of file stand_gui-unix.cpp.

void webapi_shutdown ( )

Definition at line 834 of file stand_gui-unix.cpp.

void webapiAddCommand ( WebapiCommand command)

Definition at line 315 of file stand_gui-unix.cpp.

void webapiExecuteCommands ( )

Definition at line 323 of file stand_gui-unix.cpp.

Variable Documentation

std::vector<std::string> bannedPlayers

Definition at line 886 of file stand_gui-unix.cpp.

struct Resource resources[]
Initial value:
= {
{ "api/1/auth", "GET", &emptyResource },
{ "api/1/server", "GET", &serverGet },
{ "api/1/server", "PUT", &serverPut },
{ "api/1/server", "DELETE", &serverDelete },
{ "api/1/server/refreshMissions", "GET", &refreshMissions },
{ "api/1/server/resetGame", "GET", &serverResetGame },
{ "api/1/server/fs2net/reset", "GET", &fs2netReset },
{ "api/1/netgameInfo", "GET", &netgameInfoGet },
{ "api/1/mission", "GET", &missionGet },
{ "api/1/mission/goals", "GET", &missionGoalsGet },
{ "api/1/player", "GET", &playerGet },
{ "api/1/player/*", "DELETE", &playerDelete },
{ "api/1/player/*/score/mission", "GET", &playerMissionScoreMissionGet },
{ "api/1/player/*/score/alltime", "GET", &playerMissionScoreAlltimeGet },
{ "api/1/chat", "GET", &chatGet },
{ "api/1/chat", "POST", &chatPost },
{ "api/1/debug", "GET", &debugGet } }
json_t * debugGet(ResourceContext *context)
json_t * serverGet(ResourceContext *context)
json_t * chatGet(ResourceContext *context)
json_t * chatPost(ResourceContext *context)
json_t * serverPut(ResourceContext *context)
json_t * serverResetGame(ResourceContext *context)
json_t * playerGet(ResourceContext *context)
json_t * fs2netReset(ResourceContext *context)
json_t * missionGoalsGet(ResourceContext *context)
json_t * playerMissionScoreAlltimeGet(ResourceContext *context)
json_t * refreshMissions(ResourceContext *context)
json_t * playerDelete(ResourceContext *context)
json_t * missionGet(ResourceContext *context)
json_t * netgameInfoGet(ResourceContext *context)
json_t * playerMissionScoreMissionGet(ResourceContext *context)
json_t * emptyResource(ResourceContext *context)
json_t * serverDelete(ResourceContext *context)

Definition at line 703 of file stand_gui-unix.cpp.

LogResource webapi_chatLog

Definition at line 382 of file stand_gui-unix.cpp.

SDL_mutex* webapi_dataMutex = SDL_CreateMutex()

Definition at line 376 of file stand_gui-unix.cpp.

LogResource webapi_debugLog

Definition at line 383 of file stand_gui-unix.cpp.

netgame_info webapi_netgameInfo

Definition at line 377 of file stand_gui-unix.cpp.

SCP_vector<WebapiCommand*> webapiCommandQueue

Definition at line 313 of file stand_gui-unix.cpp.

SDL_mutex* webapiCommandQueueMutex = SDL_CreateMutex()

Definition at line 312 of file stand_gui-unix.cpp.

std::map<short, net_player> webapiNetPlayers

Definition at line 378 of file stand_gui-unix.cpp.

struct mg_context* webserverContext = NULL

Definition at line 832 of file stand_gui-unix.cpp.

float webui_fps

Definition at line 379 of file stand_gui-unix.cpp.

float webui_missiontime

Definition at line 380 of file stand_gui-unix.cpp.

std::list<mission_goal> webuiMissionGoals

Definition at line 381 of file stand_gui-unix.cpp.