mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-04-11 18:36:17 +00:00
Fix connection problems in libgamestream
This commit is contained in:
13
src/config.c
13
src/config.c
@@ -163,7 +163,9 @@ static void parse_argument(int c, char* value, PCONFIGURATION config) {
|
||||
config->localaudio = true;
|
||||
break;
|
||||
case 'o':
|
||||
config_file_parse(value, config);
|
||||
if (!config_file_parse(value, config))
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
break;
|
||||
case 'p':
|
||||
config->platform = value;
|
||||
@@ -186,11 +188,11 @@ static void parse_argument(int c, char* value, PCONFIGURATION config) {
|
||||
}
|
||||
}
|
||||
|
||||
void config_file_parse(char* filename, PCONFIGURATION config) {
|
||||
bool config_file_parse(char* filename, PCONFIGURATION config) {
|
||||
FILE* fd = fopen(filename, "r");
|
||||
if (fd == NULL) {
|
||||
fprintf(stderr, "Can't open configuration file: %s\n", filename);
|
||||
exit(EXIT_FAILURE);
|
||||
return false;
|
||||
}
|
||||
|
||||
char *line = NULL;
|
||||
@@ -214,6 +216,7 @@ void config_file_parse(char* filename, PCONFIGURATION config) {
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void config_save(char* filename, PCONFIGURATION config) {
|
||||
@@ -269,7 +272,9 @@ void config_parse(int argc, char* argv[], PCONFIGURATION config) {
|
||||
|
||||
if (argc == 2 && access(argv[1], F_OK) == 0) {
|
||||
config->action = "stream";
|
||||
config_file_parse(argv[1], config);
|
||||
if (!config_file_parse(argv[1], config))
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
} else {
|
||||
int option_index = 0;
|
||||
int c;
|
||||
|
||||
@@ -45,5 +45,5 @@ typedef struct _CONFIGURATION {
|
||||
|
||||
bool inputAdded;
|
||||
|
||||
void config_file_parse(char* filename, PCONFIGURATION config);
|
||||
bool config_file_parse(char* filename, PCONFIGURATION config);
|
||||
void config_parse(int argc, char* argv[], PCONFIGURATION config);
|
||||
|
||||
27
src/main.c
27
src/main.c
@@ -47,8 +47,8 @@
|
||||
#include <openssl/rand.h>
|
||||
|
||||
static void applist(PSERVER_DATA server) {
|
||||
PAPP_LIST list;
|
||||
if (gs_applist(server, list) != GS_OK) {
|
||||
PAPP_LIST list = NULL;
|
||||
if (gs_applist(server, &list) != GS_OK) {
|
||||
fprintf(stderr, "Can't get app list\n");
|
||||
return;
|
||||
}
|
||||
@@ -60,8 +60,8 @@ static void applist(PSERVER_DATA server) {
|
||||
}
|
||||
|
||||
static int get_app_id(PSERVER_DATA server, const char *name) {
|
||||
PAPP_LIST list;
|
||||
if (gs_applist(server, list) != GS_OK) {
|
||||
PAPP_LIST list = NULL;
|
||||
if (gs_applist(server, &list) != GS_OK) {
|
||||
fprintf(stderr, "Can't get app list\n");
|
||||
return -1;
|
||||
}
|
||||
@@ -183,17 +183,18 @@ int main(int argc, char* argv[]) {
|
||||
sprintf(host_config_file, "hosts/%s.conf", config.address);
|
||||
config_file_parse(host_config_file, &config);
|
||||
|
||||
PSERVER_DATA server;
|
||||
if (gs_init(server, config.address, config.key_dir) != GS_OK) {
|
||||
SERVER_DATA server;
|
||||
server.address = config.address;
|
||||
if (gs_init(&server, config.key_dir) != GS_OK) {
|
||||
fprintf(stderr, "Can't connect to server %s\n", config.address);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (strcmp("list", config.action) == 0) {
|
||||
pair_check(server);
|
||||
applist(server);
|
||||
pair_check(&server);
|
||||
applist(&server);
|
||||
} else if (strcmp("stream", config.action) == 0) {
|
||||
pair_check(server);
|
||||
pair_check(&server);
|
||||
if (IS_EMBEDDED(system)) {
|
||||
for (int i=0;i<config.inputsCount;i++)
|
||||
evdev_create(config.inputs[i].path, config.inputs[i].mapping);
|
||||
@@ -209,19 +210,19 @@ int main(int argc, char* argv[]) {
|
||||
sdlinput_init();
|
||||
#endif
|
||||
|
||||
stream(server, &config, system);
|
||||
stream(&server, &config, system);
|
||||
} else if (strcmp("pair", config.action) == 0) {
|
||||
char pin[5];
|
||||
sprintf(pin, "%d%d%d%d", (int)random() % 10, (int)random() % 10, (int)random() % 10, (int)random() % 10);
|
||||
printf("Please enter the following PIN on the target PC: %s\n", pin);
|
||||
if (gs_pair(server, &pin[0]) != GS_OK) {
|
||||
if (gs_pair(&server, &pin[0]) != GS_OK) {
|
||||
fprintf(stderr, "Failed to pair to server: %s\n", gs_error);
|
||||
} else {
|
||||
printf("Succesfully paired\n");
|
||||
}
|
||||
} else if (strcmp("quit", config.action) == 0) {
|
||||
pair_check(server);
|
||||
gs_quit_app(server);
|
||||
pair_check(&server);
|
||||
gs_quit_app(&server);
|
||||
} else
|
||||
fprintf(stderr, "%s is not a valid action\n", config.action);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user