SDB: annotate device connect 39/15839/1
authorho.namkoong <ho.namkoong@samsung.com>
Wed, 29 Jan 2014 04:10:42 +0000 (13:10 +0900)
committerho.namkoong <ho.namkoong@samsung.com>
Wed, 29 Jan 2014 04:10:42 +0000 (13:10 +0900)
annote device connect which is not provided until security issue is resolved

Change-Id: I931c12970d8d4a45052fe91a70eb03b02e37c744

src/common_modules.h
src/sockets.c
src/sockets.h
src/transport.c
src/transport_local.c
src/transport_usb.c

index 512d69ce1dca537f1ccef420d112e70eeb1c3d29..273105c45ba637770800afca5228c2aa2e037b9d 100644 (file)
@@ -71,15 +71,17 @@ typedef enum transport_type {
         kTransportLocal,
         kTransportAny,
         kTransportConnect,
-        kTransportRemoteDevCon
+        //TODO REMOTE_DEVICE_CONNECT
+        //kTransportRemoteDevCon
 } transport_type;
 
 typedef struct transport TRANSPORT;
 struct transport
 {
     LIST_NODE* node;
+    //TODO REMOTE_DEVICE_CONNECT
     //list for remote sockets which wait for CNXN
-    LIST_NODE* remote_cnxn_socket;
+    //LIST_NODE* remote_cnxn_socket;
 
     int (*read_from_remote)(TRANSPORT* t, void* data, int len);
     int (*write_to_remote)(PACKET *p, TRANSPORT *t);
index a35b503c8b275b943812c91700a34c03ec6cb001..f2f9a47ee003a3e4930845b268edec90fe1f08ae 100755 (executable)
@@ -47,14 +47,15 @@ static int find_transports(char **serial_out, const char *prefix);
 static void unregister_all_tcp_transports();
 static void connect_emulator(char* host, int port, char* buf, int buf_len);
 
-const unsigned int unsigned_int_bit = sizeof(unsigned int) * 8;
-const unsigned int remote_con_right_padding = ~(~0 << sizeof(unsigned int) * 4);
-const unsigned int remote_con_flag = 1 << (sizeof(unsigned int) * 8 - 1);
-unsigned int remote_con_cur_r_id = 1;
-unsigned int remote_con_cur_l_number = 0;
-const unsigned int remote_con_l_max = 16; // Ox1111
-const unsigned int remote_con_r_max = ~(~0 << (sizeof(unsigned int) * 8 - 5));
-unsigned int remote_con_l_table[16] = {0,};
+//TODO REMOTE_DEVICE_CONNECT
+//const unsigned int unsigned_int_bit = sizeof(unsigned int) * 8;
+//const unsigned int remote_con_right_padding = ~(~0 << sizeof(unsigned int) * 4);
+//const unsigned int remote_con_flag = 1 << (sizeof(unsigned int) * 8 - 1);
+//unsigned int remote_con_cur_r_id = 1;
+//unsigned int remote_con_cur_l_number = 0;
+//const unsigned int remote_con_l_max = 16; // Ox1111
+//const unsigned int remote_con_r_max = ~(~0 << (sizeof(unsigned int) * 8 - 5));
+//unsigned int remote_con_l_table[16] = {0,};
 
 static unsigned local_socket_next_id = 1;
 
@@ -148,24 +149,25 @@ static void destroy_socket(void* data) {
     SDB_SOCKET* socket = data;
     socket->node = NULL;
 
-    if(HAS_SOCKET_STATUS(socket, REMOTE_CON)) {
-        free(socket->read_packet);
-        unsigned int id = socket->local_id & ~remote_con_flag;
-
-        TRANSPORT* t = socket->transport;
-        if(t != NULL) {
-            LIST_NODE* node = t->remote_cnxn_socket;
-            while(node != NULL) {
-                SDB_SOCKET* s = node->data;
-                node = node->next_ptr;
-                if(s == socket) {
-                    remove_node(&(t->remote_cnxn_socket), s->node, no_free);
-                    break;
-                }
-            }
-        }
-        remote_con_l_table[id] = 0;
-    }
+    //TODO REMOTE_DEVICE_CONNECT
+//    if(HAS_SOCKET_STATUS(socket, REMOTE_CON)) {
+//        free(socket->read_packet);
+//        unsigned int id = socket->local_id & ~remote_con_flag;
+//
+//        TRANSPORT* t = socket->transport;
+//        if(t != NULL) {
+//            LIST_NODE* node = t->remote_cnxn_socket;
+//            while(node != NULL) {
+//                SDB_SOCKET* s = node->data;
+//                node = node->next_ptr;
+//                if(s == socket) {
+//                    remove_node(&(t->remote_cnxn_socket), s->node, no_free);
+//                    break;
+//                }
+//            }
+//        }
+//        remote_con_l_table[id] = 0;
+//    }
     socket->local_id = 0;
     free(socket);
 }
@@ -445,13 +447,14 @@ static void local_socket_event_func(int fd, unsigned ev, void *_s)
         PACKET *p = get_apacket();
 
         void *x;
-        if(HAS_SOCKET_STATUS(s, REMOTE_CON)) {
-            x = &p->msg;
-            p->ptr = &p->msg;
-        }
-        else {
+        //TODO REMOTE_DEVICE_CONNECT
+//        if(HAS_SOCKET_STATUS(s, REMOTE_CON)) {
+//            x = &p->msg;
+//            p->ptr = &p->msg;
+//        }
+//        else {
             x = p->data;
-        }
+//        }
         size_t avail = MAX_PAYLOAD;
         int r = 1;
 
@@ -515,12 +518,13 @@ SDB_SOCKET *create_local_socket(int fd)
     return s;
 }
 
-void create_remote_connection_socket(SDB_SOCKET* socket) {
-    LOG_INFO("FD(%d)\n", socket->fd);
-    SET_SOCKET_STATUS(socket, REMOTE_CON);
-    socket->read_packet = malloc(sizeof(PACKET));
-    socket->read_packet->len = 0;
-}
+//TODO REMOTE_DEVICE_CONNECT
+//void create_remote_connection_socket(SDB_SOCKET* socket) {
+//    LOG_INFO("FD(%d)\n", socket->fd);
+//    SET_SOCKET_STATUS(socket, REMOTE_CON);
+//    socket->read_packet = malloc(sizeof(PACKET));
+//    socket->read_packet->len = 0;
+//}
 
 void connect_to_remote(SDB_SOCKET *s, const char* destination)
 {
@@ -1239,37 +1243,38 @@ fail:
     return -1;
 }
 
-int assign_remote_connect_socket_rid (SDB_SOCKET* s) {
-    if(remote_con_cur_r_id > remote_con_r_max) {
-        LOG_ERROR("remote connect socket exceeds limit. cannot create remote socket for LS(%X) FD(%d)\n", s->local_id, s->fd);
-        return -1;
-    }
-    int remote_id = (remote_con_cur_r_id << 4) | remote_con_flag;
-    LOG_INFO("LS(%X) -> LS_R(%X)\n", s->local_id, remote_id);
-    s->local_id = remote_id;
-    remote_con_cur_r_id++;
-    return 0;
-}
-
-int assign_remote_connect_socket_lid (SDB_SOCKET* s) {
-    if(remote_con_cur_l_number >= remote_con_l_max) {
-        LOG_ERROR("remote connect socket exceeds limit. cannot create remote socket for LS(%X) FD(%d)\n", s->local_id, s->fd);
-        return -1;
-    }
-    int i = 0;
-    for(i = 0; i< remote_con_l_max; i++) {
-        if(remote_con_l_table[i] == 0) {
-            unsigned int remote_id = i | remote_con_flag;
-            remote_con_cur_l_number++;
-            LOG_INFO("LS(%X) -> LS_L(%X)\n", s->local_id, remote_id);
-            s->local_id = remote_id;
-            remote_con_l_table[i] = 1;
-            return 0;
-        }
-    }
-    LOG_ERROR("not enough space in remote_con_l_table\n");
-    return -1;
-}
+//TODO REMOTE_DEVICE_CONNECT
+//int assign_remote_connect_socket_rid (SDB_SOCKET* s) {
+//    if(remote_con_cur_r_id > remote_con_r_max) {
+//        LOG_ERROR("remote connect socket exceeds limit. cannot create remote socket for LS(%X) FD(%d)\n", s->local_id, s->fd);
+//        return -1;
+//    }
+//    int remote_id = (remote_con_cur_r_id << 4) | remote_con_flag;
+//    LOG_INFO("LS(%X) -> LS_R(%X)\n", s->local_id, remote_id);
+//    s->local_id = remote_id;
+//    remote_con_cur_r_id++;
+//    return 0;
+//}
+
+//int assign_remote_connect_socket_lid (SDB_SOCKET* s) {
+//    if(remote_con_cur_l_number >= remote_con_l_max) {
+//        LOG_ERROR("remote connect socket exceeds limit. cannot create remote socket for LS(%X) FD(%d)\n", s->local_id, s->fd);
+//        return -1;
+//    }
+//    int i = 0;
+//    for(i = 0; i< remote_con_l_max; i++) {
+//        if(remote_con_l_table[i] == 0) {
+//            unsigned int remote_id = i | remote_con_flag;
+//            remote_con_cur_l_number++;
+//            LOG_INFO("LS(%X) -> LS_L(%X)\n", s->local_id, remote_id);
+//            s->local_id = remote_id;
+//            remote_con_l_table[i] = 1;
+//            return 0;
+//        }
+//    }
+//    LOG_ERROR("not enough space in remote_con_l_table\n");
+//    return -1;
+//}
 
 int
 device_tracker_send( SDB_SOCKET* local_socket,
index 363e617df60bf4df0683a2231806f9be7bf4c400..b066fc99b01f7944af58c4e8a364f84bd632c465 100644 (file)
 #define REMOVE_SOCKET_STATUS(asocket, _status) ((asocket)->status &= ~(1 << _status))
 #define HAS_SOCKET_STATUS(asocket, _status) ((asocket)->status & (1 << _status))
 
-extern const unsigned int unsigned_int_bit;
-extern const unsigned int remote_con_right_padding;
-extern const unsigned int remote_con_flag;
-extern unsigned int remote_con_cur_r_id;
-extern unsigned int remote_con_cur_l_number;
-extern const unsigned int remote_con_l_max; // Ox1111
-extern const unsigned int remote_con_r_max;
-extern unsigned int remote_con_l_table[16];
+//TODO REMOTE_DEVICE_CONNECT
+//extern const unsigned int unsigned_int_bit;
+//extern const unsigned int remote_con_right_padding;
+//extern const unsigned int remote_con_flag;
+//extern unsigned int remote_con_cur_r_id;
+//extern unsigned int remote_con_cur_l_number;
+//extern const unsigned int remote_con_l_max; // Ox1111
+//extern const unsigned int remote_con_r_max;
+//extern unsigned int remote_con_l_table[16];
 
 typedef enum {
     NOTIFY = 0,
     DEVICE_TRACKER,
     REMOTE_SOCKET,
-    REMOTE_CON,
+    //TODO REMOTE_DEVICE_CONNECT
+//    REMOTE_CON,
     QEMU_SOCKET
 } SOCKET_STATUS;
 
@@ -58,6 +60,7 @@ void local_socket_ready(SDB_SOCKET *s);
 void local_socket_close(SDB_SOCKET *s);
 SDB_SOCKET *create_local_socket(int fd);
 void connect_to_remote(SDB_SOCKET *s, const char* destination);
-int assign_remote_connect_socket_rid (SDB_SOCKET* s);
+//TODO REMOTE_DEVICE_CONNECT
+//int assign_remote_connect_socket_rid (SDB_SOCKET* s);
 int device_tracker_send( SDB_SOCKET* local_socket, const char* buffer, int len );
 #endif /* SOCKETS_H_ */
index dd2d7e0b062e19a8a41808b0ee9c7e276cc5e8bf..a0fe185ea7b0a40c2ff22ead5c6015e5a12abd02 100755 (executable)
@@ -734,16 +734,17 @@ static int check_data(PACKET *p)
     }
 }
 
-static unsigned int decoding_to_remote_ls_id(unsigned int encoded_ls_id) {
-    unsigned int remote_ls_id = encoded_ls_id & ~15;
-    return remote_ls_id;
-}
-
-static unsigned int decoding_to_local_ls_id(unsigned encoded_ls_id) {
-    unsigned int local_ls_id = encoded_ls_id & 15;
-    local_ls_id |= remote_con_flag;
-    return local_ls_id;
-}
+//TODO REMOTE_DEVICE_CONNECT
+//static unsigned int decoding_to_remote_ls_id(unsigned int encoded_ls_id) {
+//    unsigned int remote_ls_id = encoded_ls_id & ~15;
+//    return remote_ls_id;
+//}
+//
+//static unsigned int decoding_to_local_ls_id(unsigned encoded_ls_id) {
+//    unsigned int local_ls_id = encoded_ls_id & 15;
+//    local_ls_id |= remote_con_flag;
+//    return local_ls_id;
+//}
 
 void wakeup_select_func(int _fd, unsigned ev, void *data) {
     T_PACKET* t_packet = NULL;
@@ -765,30 +766,32 @@ void wakeup_select_func(int _fd, unsigned ev, void *data) {
     unsigned int local_id = p->msg.arg1;
     unsigned int remote_id = p->msg.arg0;
     SDB_SOCKET* sock = NULL;
+
+    //TODO REMOTE_DEVICE_CONNECT
     //CNXN cannot be distinguished using remote_con_flag
-    if(t->remote_cnxn_socket != NULL && cmd == A_CNXN) {
-        dump_packet("remote_con", "wakeup_select_func", p);
-        sock = t->remote_cnxn_socket->data;
-        if(sock != NULL) {
-            remove_first(&(t->remote_cnxn_socket), no_free);
-            LOG_INFO("LS_L(%X)\n", sock->local_id);
-            p->ptr = (void*)(&p->msg);
-            p->len = sizeof(MESSAGE) + p->msg.data_length;
-            local_socket_enqueue(sock, p);
-        }
-        goto endup;
-    }
-    //If transport is remote device, packet should not have to be decoded.
-    if((local_id & remote_con_flag) && t->type != kTransportRemoteDevCon) {
-        LOG_INFO("LS_L(%X), LS_R(%X), LS_E(%X)\n", decoding_to_local_ls_id(local_id),
-                decoding_to_remote_ls_id(local_id), local_id);
-        sock = find_local_socket(decoding_to_local_ls_id(local_id));
-        p->msg.arg1 = decoding_to_remote_ls_id(local_id);
-        p->ptr = (void*)(&p->msg);
-        p->len = sizeof(MESSAGE) + p->msg.data_length;
-        local_socket_enqueue(sock, p);
-        goto endup;
-    }
+//    if(t->remote_cnxn_socket != NULL && cmd == A_CNXN) {
+//        dump_packet("remote_con", "wakeup_select_func", p);
+//        sock = t->remote_cnxn_socket->data;
+//        if(sock != NULL) {
+//            remove_first(&(t->remote_cnxn_socket), no_free);
+//            LOG_INFO("LS_L(%X)\n", sock->local_id);
+//            p->ptr = (void*)(&p->msg);
+//            p->len = sizeof(MESSAGE) + p->msg.data_length;
+//            local_socket_enqueue(sock, p);
+//        }
+//        goto endup;
+//    }
+//    //If transport is remote device, packet should not have to be decoded.
+//    if((local_id & remote_con_flag) && t->type != kTransportRemoteDevCon) {
+//        LOG_INFO("LS_L(%X), LS_R(%X), LS_E(%X)\n", decoding_to_local_ls_id(local_id),
+//                decoding_to_remote_ls_id(local_id), local_id);
+//        sock = find_local_socket(decoding_to_local_ls_id(local_id));
+//        p->msg.arg1 = decoding_to_remote_ls_id(local_id);
+//        p->ptr = (void*)(&p->msg);
+//        p->len = sizeof(MESSAGE) + p->msg.data_length;
+//        local_socket_enqueue(sock, p);
+//        goto endup;
+//    }
     sock = find_local_socket(local_id);
 
     if(c_state != CS_OFFLINE && sock != NULL) {
index 61ddc2837ebc143f608e2a81a4689415d5f76002..39629dd5080b95d64774d61ce557920175198d6c 100755 (executable)
@@ -245,7 +245,8 @@ void register_socket_transport(int s, const char *serial, char* host, int port,
     t->sdb_port = port;
     t->suspended = 0;
     t->type = ttype;
-    t->remote_cnxn_socket = NULL;
+    //TODO REMOTE_DEVICE_CONNECT
+//    t->remote_cnxn_socket = NULL;
 
     if(host) {
         snprintf(t->host, 20, "%s", host);
index b364e871caab8daeaaeddf60ae4aa27382f7fd22..41dfa19b3c19cbaeaa22ac019bcec0d306e7fec1 100755 (executable)
@@ -102,7 +102,8 @@ void register_usb_transport(usb_handle *usb, const char *serial)
     if(serial) {
         t->serial = strdup(serial);
     }
-    t->remote_cnxn_socket = NULL;
+    //TODO REMOTE_DEVICE_CONNECT
+//    t->remote_cnxn_socket = NULL;
     register_transport(t);
 
     /* tizen specific */