Lines Matching defs:conn_impl
37 static void hs_fill_crypto_data(struct connection *conn_impl, __u8 ops,
55 static int hs_parse_crypto_data(struct connection *conn_impl, __u8 ops,
67 conn_impl->crypto = crypto;
72 static void hs_fill_case_sense_data(struct connection *conn_impl, __u8 ops,
81 body->case_sensitive = conn_impl->node->sbi->s_case_sensitive;
84 static int hs_parse_case_sense_data(struct connection *conn_impl, __u8 ops,
88 __u8 sensitive = conn_impl->node->sbi->s_case_sensitive ? 1 : 0;
102 static void hs_fill_feature_data(struct connection *conn_impl, __u8 ops,
111 body->features = cpu_to_le64(conn_impl->node->sbi->s_features);
115 static int hs_parse_feature_data(struct connection *conn_impl, __u8 ops,
125 conn_impl->node->features = le64_to_cpu(body->features);
173 static void hs_fill_extend_data(struct connection *conn_impl, __u8 ops,
206 s_hs_extend_reg[i].filler(conn_impl, ops,
215 static int hs_parse_extend_data(struct connection *conn_impl, __u8 ops,
261 ret = s_hs_extend_reg[code].parser(conn_impl, ops,
270 static int hs_proc_msg_data(struct connection *conn_impl, __u8 ops, void *data,
286 data_len, conn_impl->node->device_id);
295 req_len, data_len, conn_impl->node->device_id);
302 ret = hs_parse_extend_data(conn_impl, ops, extend_data, extend_len);
306 ops, data_len, conn_impl->node->device_id, hs_req->len);
310 static int connection_handshake_init_tls(struct connection *conn_impl, __u8 ops)
323 update_key(conn_impl->master_key, key1, HKDF_TYPE_KEY_INITIATOR);
324 update_key(conn_impl->master_key, key2, HKDF_TYPE_KEY_ACCEPTER);
327 memcpy(conn_impl->send_key, key1, HMDFS_KEY_SIZE);
328 memcpy(conn_impl->recv_key, key2, HMDFS_KEY_SIZE);
330 memcpy(conn_impl->send_key, key2, HMDFS_KEY_SIZE);
331 memcpy(conn_impl->recv_key, key1, HMDFS_KEY_SIZE);
338 ret = tls_crypto_info_init(conn_impl);
346 static int do_send_handshake(struct connection *conn_impl, __u8 ops,
384 hs_fill_extend_data(conn_impl, ops, hs_extend_data, extend_len);
391 ((struct tcp_handle *)(conn_impl->connect_handle))->fd);
404 err = conn_impl->send_message(conn_impl, &msg);
555 void connection_send_handshake(struct connection *conn_impl, __u8 ops,
559 int err = do_send_handshake(conn_impl, ops, request_id);
564 tcp = conn_impl->connect_handle;
566 hmdfs_reget_connection(conn_impl);
595 struct connection *conn_impl = NULL;
601 list_for_each_entry(conn_impl, &node->conn_impl_list, list) {
602 if (conn_impl->type == CONNECT_TYPE_TCP &&
603 conn_impl->status == CONNECT_STAT_WAIT_RESPONSE) {
604 tcp = conn_impl->connect_handle;
606 conn_impl->status = CONNECT_STAT_WORKING;
613 void connection_handshake_recv_handler(struct connection *conn_impl, void *buf,
618 int fd = ((struct tcp_handle *)(conn_impl->connect_handle))->fd;
625 conn_impl->node->version = head->version;
627 status = conn_impl->status;
632 conn_impl->node->device_id, head->datasize, fd);
633 connection_send_handshake(conn_impl,
636 conn_impl->status = CONNECT_STAT_WAIT_ACK;
637 conn_impl->node->status = NODE_STAT_SHAKING;
642 conn_impl->node->device_id, status, fd);
644 ret = hs_proc_msg_data(conn_impl, ops, data, data_len);
647 connection_send_handshake(conn_impl,
650 hmdfs_info("respon rcv handle,conn_impl->crypto=0x%0x",
651 conn_impl->crypto);
653 ret = connection_handshake_init_tls(conn_impl, ops);
660 conn_impl->status = CONNECT_STAT_WORKING;
661 peer_online(conn_impl->node);
664 ret = hs_proc_msg_data(conn_impl, ops, data, data_len);
667 hmdfs_info("ack rcv handle, conn_impl->crypto=0x%0x",
668 conn_impl->crypto);
670 ret = connection_handshake_init_tls(conn_impl, ops);
676 conn_impl->status = CONNECT_STAT_WORKING;
677 peer_online(conn_impl->node);
687 conn_impl->status = CONNECT_STAT_NEGO_FAIL;
688 connection_handshake_notify(conn_impl->node, NOTIFY_OFFLINE);
690 conn_impl->node->device_id, fd);
732 void connection_working_recv_handler(struct connection *conn_impl, void *buf,
736 if (cmd_update_tls_crypto_key(conn_impl, buf)) {
737 update_tls_crypto_key(conn_impl, buf, data, data_len);
741 hmdfs_recv_mesg_callback(conn_impl->node, buf, data);
854 struct connection *conn_impl = NULL;
872 list_for_each_entry_safe(conn_impl, next, &local_conns, list) {
873 tcp = conn_impl->connect_handle;
883 list_del_init(&conn_impl->list);
885 connection_put(conn_impl);
950 struct connection *conn_impl = NULL;
955 list_for_each_entry(conn_impl, &node->conn_impl_list, list) {
956 if (conn_impl->type == connect_type &&
957 conn_impl->status == CONNECT_STAT_WORKING) {
958 connection_get(conn_impl);
960 return conn_impl;
971 struct connection *conn_impl = NULL;
978 list_for_each_entry(conn_impl, &node->conn_impl_list, list) {
979 if (conn_impl->type == CONNECT_TYPE_TCP &&
980 conn_impl->status == CONNECT_STAT_WORKING &&
981 conn_impl->connect_handle) {
982 tcp = (struct tcp_handle *)(conn_impl->connect_handle);