diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/fruits/cmv/cmv.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/fruits/cmv/cmv.c b/src/fruits/cmv/cmv.c index 535bf72..d76adb3 100644 --- a/src/fruits/cmv/cmv.c +++ b/src/fruits/cmv/cmv.c @@ -44,7 +44,7 @@ static nn_thread_result NNWT_THREADCALL event_loop_thread(void *userdata) return 0; } -static bool decode_addr(str *enc, str *addr) +static bool decode_addr(str *addr, str *enc) { char value[4]; // max = 255. for (u32 i = 0; i < 8; i += 2) { @@ -62,7 +62,7 @@ static bool decode_addr(str *enc, str *addr) return true; } -// sink-p12-976502a7.exe +// sink-p12_NOTE-976502a7.exe static bool parse_exe_name(str *exe_name, str *addr) { u32 index = al_str_rfind(exe_name, '/'); @@ -88,7 +88,7 @@ static bool parse_exe_name(str *exe_name, str *addr) sub = al_str_substr(&sub, 0, index); } al_str_from(addr, ""); - decode_addr(&sub, addr); + decode_addr(addr, &sub); log_debug("Parsed address %.*s from exe filename.", al_str_x(addr)); return true; @@ -127,7 +127,9 @@ s32 window_system_main(u32 argc, str *argv, void *extra) u8 type; str addr; - if (!parse_exe_name(&argv[0], &addr)) { + if (parse_exe_name(&argv[0], &addr)) { + type = NNWT_SOCKET_TCP; + } else { #ifndef CAMU_SINK_ONLY if (local) { #ifdef NAUNET_ON_WINDOWS @@ -141,15 +143,16 @@ s32 window_system_main(u32 argc, str *argv, void *extra) al_str_cat(&addr, &al_str_cs(pid_str)); #endif } else { +#endif type = NNWT_SOCKET_TCP; - al_str_clone(&addr, &al_str_c("127.0.0.1")); + char *SINK_IP = getenv("SINK_IP"); + al_str_from(&addr, ""); + if (!SINK_IP || !decode_addr(&addr, &al_str_cr(SINK_IP))) { + al_str_cat(&addr, &al_str_c("127.0.0.1")); + } +#ifndef CAMU_SINK_ONLY } -#else - type = NNWT_SOCKET_TCP; - al_str_clone(&addr, &al_str_c("127.0.0.1")); #endif - } else { - type = NNWT_SOCKET_TCP; } struct lia_prefs *prefs = &c.desktop.sink.prefs; |