Lines Matching full:connect
215 static int tcp_recvpage_tls(struct connection *connect, in tcp_recvpage_tls() argument
225 if (!connect) { in tcp_recvpage_tls()
226 hmdfs_err("tcp connect == NULL"); in tcp_recvpage_tls()
229 node = connect->node; in tcp_recvpage_tls()
230 tcp = (struct tcp_handle *)(connect->connect_handle); in tcp_recvpage_tls()
393 static int tcp_recvbuffer_cipher(struct connection *connect, in tcp_recvbuffer_cipher() argument
404 tcp = (struct tcp_handle *)(connect->connect_handle); in tcp_recvbuffer_cipher()
430 ret = aeadcipher_decrypt_buffer(connect, cipherbuffer, cipherbuffer_len, in tcp_recvbuffer_cipher()
437 if (connect_recv_callback[connect->status]) { in tcp_recvbuffer_cipher()
438 connect_recv_callback[connect->status](connect, recv, outdata, in tcp_recvbuffer_cipher()
442 hmdfs_err("encypt callback NULL status %d", connect->status); in tcp_recvbuffer_cipher()
452 static int tcp_recvbuffer_tls(struct connection *connect, in tcp_recvbuffer_tls() argument
461 tcp = (struct tcp_handle *)(connect->connect_handle); in tcp_recvbuffer_tls()
481 tcp->connect->stat.recv_bytes += outlen; in tcp_recvbuffer_tls()
483 if (connect_recv_callback[connect->status]) { in tcp_recvbuffer_tls()
484 connect_recv_callback[connect->status](connect, recv, outdata, in tcp_recvbuffer_tls()
488 hmdfs_err("callback NULL status %d", connect->status); in tcp_recvbuffer_tls()
519 tcp->connect->stat.recv_bytes += sizeof(struct hmdfs_head_cmd); in tcp_receive_from_sock()
520 tcp->connect->stat.recv_message_count++; in tcp_receive_from_sock()
536 if (tcp->connect->status == CONNECT_STAT_WORKING && in tcp_receive_from_sock()
539 ret = tcp_recvpage_tls(tcp->connect, recv); in tcp_receive_from_sock()
543 if (tcp->connect->status == CONNECT_STAT_WORKING) in tcp_receive_from_sock()
544 ret = tcp_recvbuffer_tls(tcp->connect, recv); in tcp_receive_from_sock()
546 ret = tcp_recvbuffer_cipher(tcp->connect, recv); in tcp_receive_from_sock()
603 old_cred = hmdfs_override_creds(tcp->connect->node->sbi->system_cred); in tcp_recv_thread()
612 list_empty(&tcp->connect->list)) in tcp_recv_thread()
629 hmdfs_node_inc_evt_seq(tcp->connect->node); in tcp_recv_thread()
630 tcp->connect->status = CONNECT_STAT_STOP; in tcp_recv_thread()
631 if (tcp->connect->node->status != NODE_STAT_OFFLINE) in tcp_recv_thread()
632 hmdfs_reget_connection(tcp->connect); in tcp_recv_thread()
642 connection_put(tcp->connect); in tcp_recv_thread()
674 ret = aeadcipher_encrypt_buffer(tcp->connect, msg->data, msg->len, in tcp_send_message_sock_cipher()
743 tcp->connect->stat.send_bytes += send_len; in tcp_send_message_sock_tls()
746 tcp->connect->stat.send_bytes += send_len; in tcp_send_message_sock_tls()
747 tcp->connect->stat.send_message_count++; in tcp_send_message_sock_tls()
752 int tcp_send_rekey_request(struct connection *connect) in tcp_send_rekey_request() argument
756 struct tcp_handle *tcp = connect->connect_handle; in tcp_send_rekey_request()
796 static int tcp_send_message(struct connection *connect, in tcp_send_message() argument
805 if (!connect) { in tcp_send_message()
817 tcp = (struct tcp_handle *)(connect->connect_handle); in tcp_send_message()
818 if (connect->status == CONNECT_STAT_STOP) in tcp_send_message()
823 if (connect->status == CONNECT_STAT_WORKING) in tcp_send_message()
833 if (nowtime - connect->stat.rekey_time >= REKEY_LIFETIME && in tcp_send_message()
834 connect->status == CONNECT_STAT_WORKING) { in tcp_send_message()
836 connect->node->device_id); in tcp_send_message()
837 ret = tcp_send_rekey_request(connect); in tcp_send_message()
839 set_crypto_info(connect, SET_CRYPTO_SEND); in tcp_send_message()
840 connect->stat.rekey_time = nowtime; in tcp_send_message()
854 /* recv_task killed before sched, we need to put the connect */ in tcp_close_socket()
856 connection_put(tcp->connect); in tcp_close_socket()
960 memcpy(tcp->connect->master_key, master_key, HMDFS_KEY_SIZE); in tcp_update_socket()
961 memcpy(tcp->connect->send_key, master_key, HMDFS_KEY_SIZE); in tcp_update_socket()
962 memcpy(tcp->connect->recv_key, master_key, HMDFS_KEY_SIZE); in tcp_update_socket()
963 tcp->connect->tfm = crypto_alloc_aead("gcm(aes)", 0, 0); in tcp_update_socket()
964 if (IS_ERR(tcp->connect->tfm)) { in tcp_update_socket()
965 err = PTR_ERR(tcp->connect->tfm); in tcp_update_socket()
966 tcp->connect->tfm = NULL; in tcp_update_socket()
971 err = set_tfm(master_key, tcp->connect->tfm); in tcp_update_socket()
977 connection_get(tcp->connect); in tcp_update_socket()
979 node = tcp->connect->node; in tcp_update_socket()
993 connection_put(tcp->connect); in tcp_update_socket()
995 crypto_free_aead(tcp->connect->tfm); in tcp_update_socket()
996 tcp->connect->tfm = NULL; in tcp_update_socket()
1007 static struct tcp_handle *tcp_alloc_handle(struct connection *connect, in tcp_alloc_handle() argument
1015 tcp->connect = connect; in tcp_alloc_handle()
1016 tcp->connect->connect_handle = (void *)tcp; in tcp_alloc_handle()
1250 void tcp_stop_connect(struct connection *connect) in tcp_stop_connect() argument