Rename 'uid' to 'scid'
A random identifier is generated to differentiate multiple running
scrcpy instances. Rename it from 'uid' to 'scid' (scrcpy id) not to
confuse it with Linux UID.
Fixes #3729 <https://github.com/Genymobile/scrcpy/issues/3729>
Refs 4315be1648
This commit is contained in:
parent
49eb326ce9
commit
439a1fd4ed
6 changed files with 25 additions and 24 deletions
|
@ -273,8 +273,9 @@ sc_server_on_disconnected(struct sc_server *server, void *userdata) {
|
||||||
// event
|
// event
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Generate a scrcpy id to differentiate multiple running scrcpy instances
|
||||||
static uint32_t
|
static uint32_t
|
||||||
scrcpy_generate_uid() {
|
scrcpy_generate_scid() {
|
||||||
struct sc_rand rand;
|
struct sc_rand rand;
|
||||||
sc_rand_init(&rand);
|
sc_rand_init(&rand);
|
||||||
// Only use 31 bits to avoid issues with signed values on the Java-side
|
// Only use 31 bits to avoid issues with signed values on the Java-side
|
||||||
|
@ -314,10 +315,10 @@ scrcpy(struct scrcpy_options *options) {
|
||||||
|
|
||||||
struct sc_acksync *acksync = NULL;
|
struct sc_acksync *acksync = NULL;
|
||||||
|
|
||||||
uint32_t uid = scrcpy_generate_uid();
|
uint32_t scid = scrcpy_generate_scid();
|
||||||
|
|
||||||
struct sc_server_params params = {
|
struct sc_server_params params = {
|
||||||
.uid = uid,
|
.scid = scid,
|
||||||
.req_serial = options->serial,
|
.req_serial = options->serial,
|
||||||
.select_usb = options->select_usb,
|
.select_usb = options->select_usb,
|
||||||
.select_tcpip = options->select_tcpip,
|
.select_tcpip = options->select_tcpip,
|
||||||
|
|
|
@ -213,7 +213,7 @@ execute_server(struct sc_server *server,
|
||||||
cmd[count++] = p; \
|
cmd[count++] = p; \
|
||||||
}
|
}
|
||||||
|
|
||||||
ADD_PARAM("uid=%08x", params->uid);
|
ADD_PARAM("scid=%08x", params->scid);
|
||||||
ADD_PARAM("log_level=%s", log_level_to_server_string(params->log_level));
|
ADD_PARAM("log_level=%s", log_level_to_server_string(params->log_level));
|
||||||
ADD_PARAM("bit_rate=%" PRIu32, params->bit_rate);
|
ADD_PARAM("bit_rate=%" PRIu32, params->bit_rate);
|
||||||
|
|
||||||
|
@ -787,7 +787,7 @@ run_server(void *data) {
|
||||||
LOGD("Device serial: %s", serial);
|
LOGD("Device serial: %s", serial);
|
||||||
|
|
||||||
int r = asprintf(&server->device_socket_name, SC_SOCKET_NAME_PREFIX "%08x",
|
int r = asprintf(&server->device_socket_name, SC_SOCKET_NAME_PREFIX "%08x",
|
||||||
params->uid);
|
params->scid);
|
||||||
if (r == -1) {
|
if (r == -1) {
|
||||||
LOG_OOM();
|
LOG_OOM();
|
||||||
goto error_connection_failed;
|
goto error_connection_failed;
|
||||||
|
|
|
@ -22,7 +22,7 @@ struct sc_server_info {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sc_server_params {
|
struct sc_server_params {
|
||||||
uint32_t uid;
|
uint32_t scid;
|
||||||
const char *req_serial;
|
const char *req_serial;
|
||||||
enum sc_log_level log_level;
|
enum sc_log_level log_level;
|
||||||
enum sc_codec codec;
|
enum sc_codec codec;
|
||||||
|
|
|
@ -46,17 +46,17 @@ public final class DesktopConnection implements Closeable {
|
||||||
return localSocket;
|
return localSocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getSocketName(int uid) {
|
private static String getSocketName(int scid) {
|
||||||
if (uid == -1) {
|
if (scid == -1) {
|
||||||
// If no UID is set, use "scrcpy" to simplify using scrcpy-server alone
|
// If no SCID is set, use "scrcpy" to simplify using scrcpy-server alone
|
||||||
return SOCKET_NAME_PREFIX;
|
return SOCKET_NAME_PREFIX;
|
||||||
}
|
}
|
||||||
|
|
||||||
return SOCKET_NAME_PREFIX + String.format("_%08x", uid);
|
return SOCKET_NAME_PREFIX + String.format("_%08x", scid);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static DesktopConnection open(int uid, boolean tunnelForward, boolean control, boolean sendDummyByte) throws IOException {
|
public static DesktopConnection open(int scid, boolean tunnelForward, boolean control, boolean sendDummyByte) throws IOException {
|
||||||
String socketName = getSocketName(uid);
|
String socketName = getSocketName(scid);
|
||||||
|
|
||||||
LocalSocket videoSocket;
|
LocalSocket videoSocket;
|
||||||
LocalSocket controlSocket = null;
|
LocalSocket controlSocket = null;
|
||||||
|
|
|
@ -7,7 +7,7 @@ import java.util.List;
|
||||||
public class Options {
|
public class Options {
|
||||||
|
|
||||||
private Ln.Level logLevel = Ln.Level.DEBUG;
|
private Ln.Level logLevel = Ln.Level.DEBUG;
|
||||||
private int uid = -1; // 31-bit non-negative value, or -1
|
private int scid = -1; // 31-bit non-negative value, or -1
|
||||||
private int maxSize;
|
private int maxSize;
|
||||||
private VideoCodec codec = VideoCodec.H264;
|
private VideoCodec codec = VideoCodec.H264;
|
||||||
private int bitRate = 8000000;
|
private int bitRate = 8000000;
|
||||||
|
@ -41,12 +41,12 @@ public class Options {
|
||||||
this.logLevel = logLevel;
|
this.logLevel = logLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getUid() {
|
public int getScid() {
|
||||||
return uid;
|
return scid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUid(int uid) {
|
public void setScid(int scid) {
|
||||||
this.uid = uid;
|
this.scid = scid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMaxSize() {
|
public int getMaxSize() {
|
||||||
|
|
|
@ -66,7 +66,7 @@ public final class Server {
|
||||||
|
|
||||||
Thread initThread = startInitThread(options);
|
Thread initThread = startInitThread(options);
|
||||||
|
|
||||||
int uid = options.getUid();
|
int scid = options.getScid();
|
||||||
boolean tunnelForward = options.isTunnelForward();
|
boolean tunnelForward = options.isTunnelForward();
|
||||||
boolean control = options.getControl();
|
boolean control = options.getControl();
|
||||||
boolean sendDummyByte = options.getSendDummyByte();
|
boolean sendDummyByte = options.getSendDummyByte();
|
||||||
|
@ -84,7 +84,7 @@ public final class Server {
|
||||||
Workarounds.fillAppInfo();
|
Workarounds.fillAppInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
try (DesktopConnection connection = DesktopConnection.open(uid, tunnelForward, control, sendDummyByte)) {
|
try (DesktopConnection connection = DesktopConnection.open(scid, tunnelForward, control, sendDummyByte)) {
|
||||||
VideoCodec codec = options.getCodec();
|
VideoCodec codec = options.getCodec();
|
||||||
if (options.getSendDeviceMeta()) {
|
if (options.getSendDeviceMeta()) {
|
||||||
Size videoSize = device.getScreenInfo().getVideoSize();
|
Size videoSize = device.getScreenInfo().getVideoSize();
|
||||||
|
@ -158,12 +158,12 @@ public final class Server {
|
||||||
String key = arg.substring(0, equalIndex);
|
String key = arg.substring(0, equalIndex);
|
||||||
String value = arg.substring(equalIndex + 1);
|
String value = arg.substring(equalIndex + 1);
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case "uid":
|
case "scid":
|
||||||
int uid = Integer.parseInt(value, 0x10);
|
int scid = Integer.parseInt(value, 0x10);
|
||||||
if (uid < -1) {
|
if (scid < -1) {
|
||||||
throw new IllegalArgumentException("uid may not be negative (except -1 for 'none'): " + uid);
|
throw new IllegalArgumentException("scid may not be negative (except -1 for 'none'): " + scid);
|
||||||
}
|
}
|
||||||
options.setUid(uid);
|
options.setScid(scid);
|
||||||
break;
|
break;
|
||||||
case "log_level":
|
case "log_level":
|
||||||
Ln.Level level = Ln.Level.valueOf(value.toUpperCase(Locale.ENGLISH));
|
Ln.Level level = Ln.Level.valueOf(value.toUpperCase(Locale.ENGLISH));
|
||||||
|
|
Loading…
Reference in a new issue