|
@@ -751,7 +751,15 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event,
|
|
|
char *socket_info = RT_NULL;
|
|
char *socket_info = RT_NULL;
|
|
|
int base_socket = 0;
|
|
int base_socket = 0;
|
|
|
|
|
|
|
|
|
|
+ rt_sscanf(buff, "SOCKET:%d", &base_socket);
|
|
|
|
|
+ LOG_D("ACCEPT BASE SOCKET: %d", base_socket);
|
|
|
/* avoid use bottom driver to alloc "socket" */
|
|
/* avoid use bottom driver to alloc "socket" */
|
|
|
|
|
+ new_sock = at_get_base_socket(base_socket);
|
|
|
|
|
+ if (new_sock)
|
|
|
|
|
+ {
|
|
|
|
|
+ new_sock->state = AT_SOCKET_CONNECT;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
new_socket = at_socket(AF_AT, SOCK_STREAM, 0);
|
|
new_socket = at_socket(AF_AT, SOCK_STREAM, 0);
|
|
|
if (new_socket == -1)
|
|
if (new_socket == -1)
|
|
|
{
|
|
{
|
|
@@ -759,8 +767,6 @@ static void at_connect_notice_cb(struct at_socket *sock, at_socket_evt_t event,
|
|
|
}
|
|
}
|
|
|
new_sock = at_get_socket(new_socket);
|
|
new_sock = at_get_socket(new_socket);
|
|
|
new_sock->state = AT_SOCKET_CONNECT;
|
|
new_sock->state = AT_SOCKET_CONNECT;
|
|
|
- rt_sscanf(buff, "SOCKET:%d", &base_socket);
|
|
|
|
|
- LOG_D("ACCEPT BASE SOCKET: %d", base_socket);
|
|
|
|
|
new_sock->user_data = (void *)base_socket;
|
|
new_sock->user_data = (void *)base_socket;
|
|
|
|
|
|
|
|
/* find out the listen socket */
|
|
/* find out the listen socket */
|
|
@@ -995,6 +1001,7 @@ __exit:
|
|
|
if (result < 0)
|
|
if (result < 0)
|
|
|
{
|
|
{
|
|
|
at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE);
|
|
at_do_event_changes(sock, AT_EVENT_ERROR, RT_TRUE);
|
|
|
|
|
+ return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return new_sock->socket;
|
|
return new_sock->socket;
|