#include "sysdeps.h"
#include "sdb.h"
+#include "strutils.h"
#if !SDB_HOST
#include <linux/prctl.h>
#else
#include "usb_vendors.h"
#endif
-
+#include <system_info.h>
#define PROC_CMDLINE_PATH "/proc/cmdline"
#if SDB_TRACE
SDB_MUTEX_DEFINE( D_lock );
p->msg.arg1 = remote;
send_packet(p, t);
}
-
+static int device_status = 0; // 0:online, 1: password locked later
static void send_connect(atransport *t)
{
D("Calling send_connect \n");
cp->msg.command = A_CNXN;
cp->msg.arg0 = A_VERSION;
cp->msg.arg1 = MAX_PAYLOAD;
- snprintf((char*) cp->data, sizeof cp->data, "%s::",
- HOST ? "host" : sdb_device_banner);
+
+ char device_name[256]={0,};
+ int r = 0;
+
+ if (is_emulator()) {
+ r = get_emulator_name(device_name, sizeof device_name);
+ } else {
+ r = get_device_name(device_name, sizeof device_name);
+ }
+ if (r < 0) {
+ snprintf((char*) cp->data, sizeof cp->data, "%s::%s::%d", sdb_device_banner, DEFAULT_DEVICENAME, device_status);
+ } else {
+ snprintf((char*) cp->data, sizeof cp->data, "%s::%s::%d", sdb_device_banner, device_name, device_status);
+ }
+
+ D("CNXN data:%s\n", (char*)cp->data);
cp->msg.data_length = strlen((char*) cp->data) + 1;
+
send_packet(cp, t);
#if SDB_HOST
/* XXX why sleep here? */
return 0;
}
+int get_device_name(char str[], int str_size) {
+ char *value = NULL;
+ int r = system_info_get_value_string(SYSTEM_INFO_KEY_MODEL, &value);
+ if (r != SYSTEM_INFO_ERROR_NONE) {
+ D("fail to get system model:%d\n", errno);
+ return -1;
+ } else {
+ s_strncpy(str, value, str_size);
+ D("returns model_name:%s\n", value);
+ if (value != NULL) {
+ free(value);
+ }
+ return 0;
+ }
+ /*
+ int fd = unix_open(USB_SERIAL_PATH, O_RDONLY);
+ if (fd < 0) {
+ D("fail to read:%s (%d)\n", USB_SERIAL_PATH, errno);
+ return -1;
+ }
+
+ if(read_line(fd, str, str_size)) {
+ D("device serial name: %s\n", str);
+ sdb_close(fd);
+ return 0;
+ }
+ sdb_close(fd);
+ */
+ return -1;
+}
+
void parse_banner(char *banner, atransport *t)
{
char *type, *product, *end;
int get_emulator_forward_port(void);
int get_emulator_name(char str[], int str_size);
+int get_device_name(char str[], int str_size);
/* packet allocator */
apacket *get_apacket(void);
void put_apacket(apacket *p);
int handle_host_request(char *service, transport_type ttype, char* serial, int reply_fd, asocket *s);
int is_emulator(void);
+#define DEFAULT_DEVICENAME "unknown"
#if SDB_HOST /* tizen-specific */
#define DEVICEMAP_SEPARATOR ":"
#define DEVICENAME_MAX 256
#define VMS_PATH OS_PATH_SEPARATOR_STR "vms" OS_PATH_SEPARATOR_STR // should include sysdeps.h above
-#define DEFAULT_DEVICENAME "<unknown>"
+
void register_device_name(const char *device_type, const char *device_name, int port);
int get_devicename_from_shdmem(int port, char *device_name);
int read_line(const int fd, char* ptr, const size_t maxlen);