Changes in uspace/srv/net/tcp/conn.c [f0a2720:78192cc7] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tcp/conn.c
rf0a2720 r78192cc7 36 36 37 37 #include <adt/list.h> 38 #include < bool.h>38 #include <stdbool.h> 39 39 #include <errno.h> 40 40 #include <io/log.h> … … 78 78 goto error; 79 79 80 conn->tw_timer = fibril_timer_create(); 80 fibril_mutex_initialize(&conn->lock); 81 82 conn->tw_timer = fibril_timer_create(&conn->lock); 81 83 if (conn->tw_timer == NULL) 82 84 goto error; 83 84 fibril_mutex_initialize(&conn->lock);85 85 86 86 /* One for the user, one for not being in closed state */ … … 164 164 static void tcp_conn_free(tcp_conn_t *conn) 165 165 { 166 log_msg(L VL_DEBUG, "%s: tcp_conn_free(%p)", conn->name, conn);166 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_free(%p)", conn->name, conn); 167 167 tcp_tqueue_fini(&conn->retransmit); 168 168 … … 184 184 void tcp_conn_addref(tcp_conn_t *conn) 185 185 { 186 log_msg(L VL_DEBUG2, "%s: tcp_conn_addref(%p)", conn->name, conn);186 log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_addref(%p)", conn->name, conn); 187 187 atomic_inc(&conn->refcnt); 188 188 } … … 196 196 void tcp_conn_delref(tcp_conn_t *conn) 197 197 { 198 log_msg(L VL_DEBUG2, "%s: tcp_conn_delref(%p)", conn->name, conn);198 log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_delref(%p)", conn->name, conn); 199 199 200 200 if (atomic_predec(&conn->refcnt) == 0) … … 202 202 } 203 203 204 /** Lock connection. 205 * 206 * Must be called before any other connection-manipulating function, 207 * except tcp_conn_{add|del}ref(). Locks the connection including 208 * its timers. Must not be called inside any of the connection 209 * timer handlers. 210 * 211 * @param conn Connection 212 */ 213 void tcp_conn_lock(tcp_conn_t *conn) 214 { 215 fibril_mutex_lock(&conn->lock); 216 } 217 218 /** Unlock connection. 219 * 220 * @param conn Connection 221 */ 222 void tcp_conn_unlock(tcp_conn_t *conn) 223 { 224 fibril_mutex_unlock(&conn->lock); 225 } 226 204 227 /** Delete connection. 205 228 * … … 211 234 void tcp_conn_delete(tcp_conn_t *conn) 212 235 { 213 log_msg(L VL_DEBUG, "%s: tcp_conn_delete(%p)", conn->name, conn);236 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_delete(%p)", conn->name, conn); 214 237 215 238 assert(conn->deleted == false); … … 245 268 tcp_cstate_t old_state; 246 269 247 log_msg(L VL_DEBUG, "tcp_conn_state_set(%p)", conn);270 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_state_set(%p)", conn); 248 271 249 272 old_state = conn->cstate; … … 253 276 /* Run user callback function */ 254 277 if (conn->cstate_cb != NULL) { 255 log_msg(L VL_DEBUG, "tcp_conn_state_set() - run user CB");278 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_state_set() - run user CB"); 256 279 conn->cstate_cb(conn, conn->cstate_cb_arg); 257 280 } else { 258 log_msg(L VL_DEBUG, "tcp_conn_state_set() - no user CB");281 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_state_set() - no user CB"); 259 282 } 260 283 … … 293 316 case st_syn_received: 294 317 case st_established: 295 log_msg(L VL_DEBUG, "%s: FIN sent -> Fin-Wait-1", conn->name);318 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN sent -> Fin-Wait-1", conn->name); 296 319 tcp_conn_state_set(conn, st_fin_wait_1); 297 320 break; 298 321 case st_close_wait: 299 log_msg(L VL_DEBUG, "%s: FIN sent -> Last-Ack", conn->name);322 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN sent -> Last-Ack", conn->name); 300 323 tcp_conn_state_set(conn, st_last_ack); 301 324 break; 302 325 default: 303 log_msg(L VL_ERROR, "%s: Connection state %d", conn->name,326 log_msg(LOG_DEFAULT, LVL_ERROR, "%s: Connection state %d", conn->name, 304 327 conn->cstate); 305 328 assert(false); … … 312 335 static bool tcp_socket_match(tcp_sock_t *sock, tcp_sock_t *patt) 313 336 { 314 log_msg(L VL_DEBUG2, "tcp_socket_match(sock=(%x,%u), pat=(%x,%u))",315 sock->addr.ipv4, sock->port, patt->addr.ipv4, patt->port);316 317 if ( patt->addr.ipv4 != TCP_IPV4_ANY&&318 patt->addr.ipv4 != sock->addr.ipv4)337 log_msg(LOG_DEFAULT, LVL_DEBUG2, 338 "tcp_socket_match(sock=(%u), pat=(%u))", sock->port, patt->port); 339 340 if ((!inet_addr_is_any(&patt->addr)) && 341 (!inet_addr_compare(&patt->addr, &sock->addr))) 319 342 return false; 320 343 321 if ( patt->port != TCP_PORT_ANY&&322 patt->port != sock->port)344 if ((patt->port != TCP_PORT_ANY) && 345 (patt->port != sock->port)) 323 346 return false; 324 347 325 log_msg(L VL_DEBUG2, " -> match");348 log_msg(LOG_DEFAULT, LVL_DEBUG2, " -> match"); 326 349 327 350 return true; … … 331 354 static bool tcp_sockpair_match(tcp_sockpair_t *sp, tcp_sockpair_t *pattern) 332 355 { 333 log_msg(L VL_DEBUG2, "tcp_sockpair_match(%p, %p)", sp, pattern);356 log_msg(LOG_DEFAULT, LVL_DEBUG2, "tcp_sockpair_match(%p, %p)", sp, pattern); 334 357 335 358 if (!tcp_socket_match(&sp->local, &pattern->local)) … … 353 376 tcp_conn_t *tcp_conn_find_ref(tcp_sockpair_t *sp) 354 377 { 355 log_msg(LVL_DEBUG, "tcp_conn_find_ref(%p)", sp); 356 378 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_find_ref(%p)", sp); 379 380 log_msg(LOG_DEFAULT, LVL_DEBUG2, "compare conn (f:(%u), l:(%u))", 381 sp->foreign.port, sp->local.port); 382 357 383 fibril_mutex_lock(&conn_list_lock); 358 359 list_foreach(conn_list, link) { 360 tcp_conn_t *conn = list_get_instance(link, tcp_conn_t, link); 384 385 list_foreach(conn_list, link, tcp_conn_t, conn) { 361 386 tcp_sockpair_t *csp = &conn->ident; 362 log_msg(LVL_DEBUG2, "compare with conn (f:(%x,%u), l:(%x,%u))", 363 csp->foreign.addr.ipv4, csp->foreign.port, 364 csp->local.addr.ipv4, csp->local.port); 387 388 log_msg(LOG_DEFAULT, LVL_DEBUG2, " - with (f:(%u), l:(%u))", 389 csp->foreign.port, csp->local.port); 390 365 391 if (tcp_sockpair_match(sp, csp)) { 366 392 tcp_conn_addref(conn); … … 369 395 } 370 396 } 371 397 372 398 fibril_mutex_unlock(&conn_list_lock); 373 399 return NULL; … … 378 404 * @param conn Connection 379 405 */ 380 staticvoid tcp_conn_reset(tcp_conn_t *conn)381 { 382 log_msg(L VL_DEBUG, "%s: tcp_conn_reset()", conn->name);406 void tcp_conn_reset(tcp_conn_t *conn) 407 { 408 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_reset()", conn->name); 383 409 tcp_conn_state_set(conn, st_closed); 384 410 conn->reset = true; … … 398 424 { 399 425 /* TODO */ 400 log_msg(L VL_DEBUG, "%s: tcp_reset_signal()", conn->name);426 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_reset_signal()", conn->name); 401 427 } 402 428 … … 422 448 return true; 423 449 case st_closed: 424 log_msg(L VL_WARN, "state=%d", (int) conn->cstate);450 log_msg(LOG_DEFAULT, LVL_WARN, "state=%d", (int) conn->cstate); 425 451 assert(false); 426 452 } … … 436 462 static void tcp_conn_sa_listen(tcp_conn_t *conn, tcp_segment_t *seg) 437 463 { 438 log_msg(L VL_DEBUG, "tcp_conn_sa_listen(%p, %p)", conn, seg);464 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_sa_listen(%p, %p)", conn, seg); 439 465 440 466 if ((seg->ctrl & CTL_RST) != 0) { 441 log_msg(L VL_DEBUG, "Ignoring incoming RST.");467 log_msg(LOG_DEFAULT, LVL_DEBUG, "Ignoring incoming RST."); 442 468 return; 443 469 } 444 470 445 471 if ((seg->ctrl & CTL_ACK) != 0) { 446 log_msg(L VL_DEBUG, "Incoming ACK, send acceptable RST.");472 log_msg(LOG_DEFAULT, LVL_DEBUG, "Incoming ACK, send acceptable RST."); 447 473 tcp_reply_rst(&conn->ident, seg); 448 474 return; … … 450 476 451 477 if ((seg->ctrl & CTL_SYN) == 0) { 452 log_msg(L VL_DEBUG, "SYN not present. Ignoring segment.");478 log_msg(LOG_DEFAULT, LVL_DEBUG, "SYN not present. Ignoring segment."); 453 479 return; 454 480 } 455 481 456 log_msg(L VL_DEBUG, "Got SYN, sending SYN, ACK.");482 log_msg(LOG_DEFAULT, LVL_DEBUG, "Got SYN, sending SYN, ACK."); 457 483 458 484 conn->rcv_nxt = seg->seq + 1; … … 460 486 461 487 462 log_msg(L VL_DEBUG, "rcv_nxt=%u", conn->rcv_nxt);488 log_msg(LOG_DEFAULT, LVL_DEBUG, "rcv_nxt=%u", conn->rcv_nxt); 463 489 464 490 if (seg->len > 1) 465 log_msg(L VL_WARN, "SYN combined with data, ignoring data.");491 log_msg(LOG_DEFAULT, LVL_WARN, "SYN combined with data, ignoring data."); 466 492 467 493 /* XXX select ISS */ … … 493 519 static void tcp_conn_sa_syn_sent(tcp_conn_t *conn, tcp_segment_t *seg) 494 520 { 495 log_msg(L VL_DEBUG, "tcp_conn_sa_syn_sent(%p, %p)", conn, seg);521 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_sa_syn_sent(%p, %p)", conn, seg); 496 522 497 523 if ((seg->ctrl & CTL_ACK) != 0) { 498 log_msg(L VL_DEBUG, "snd_una=%u, seg.ack=%u, snd_nxt=%u",524 log_msg(LOG_DEFAULT, LVL_DEBUG, "snd_una=%u, seg.ack=%u, snd_nxt=%u", 499 525 conn->snd_una, seg->ack, conn->snd_nxt); 500 526 if (!seq_no_ack_acceptable(conn, seg->ack)) { 501 527 if ((seg->ctrl & CTL_RST) == 0) { 502 log_msg(L VL_WARN, "ACK not acceptable, send RST");528 log_msg(LOG_DEFAULT, LVL_WARN, "ACK not acceptable, send RST"); 503 529 tcp_reply_rst(&conn->ident, seg); 504 530 } else { 505 log_msg(L VL_WARN, "RST,ACK not acceptable, drop");531 log_msg(LOG_DEFAULT, LVL_WARN, "RST,ACK not acceptable, drop"); 506 532 } 507 533 return; … … 512 538 /* If we get here, we have either an acceptable ACK or no ACK */ 513 539 if ((seg->ctrl & CTL_ACK) != 0) { 514 log_msg(L VL_DEBUG, "%s: Connection reset. -> Closed",540 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: Connection reset. -> Closed", 515 541 conn->name); 516 542 /* Reset connection */ … … 518 544 return; 519 545 } else { 520 log_msg(L VL_DEBUG, "%s: RST without ACK, drop",546 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: RST without ACK, drop", 521 547 conn->name); 522 548 return; … … 527 553 528 554 if ((seg->ctrl & CTL_SYN) == 0) { 529 log_msg(L VL_DEBUG, "No SYN bit, ignoring segment.");555 log_msg(LOG_DEFAULT, LVL_DEBUG, "No SYN bit, ignoring segment."); 530 556 return; 531 557 } … … 544 570 } 545 571 546 log_msg(L VL_DEBUG, "Sent SYN, got SYN.");572 log_msg(LOG_DEFAULT, LVL_DEBUG, "Sent SYN, got SYN."); 547 573 548 574 /* … … 551 577 * will always be accepted as new window setting. 552 578 */ 553 log_msg(L VL_DEBUG, "SND.WND := %" PRIu32 ", SND.WL1 := %" PRIu32 ", "579 log_msg(LOG_DEFAULT, LVL_DEBUG, "SND.WND := %" PRIu32 ", SND.WL1 := %" PRIu32 ", " 554 580 "SND.WL2 = %" PRIu32, seg->wnd, seg->seq, seg->seq); 555 581 conn->snd_wnd = seg->wnd; … … 558 584 559 585 if (seq_no_syn_acked(conn)) { 560 log_msg(L VL_DEBUG, "%s: syn acked -> Established", conn->name);586 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: syn acked -> Established", conn->name); 561 587 tcp_conn_state_set(conn, st_established); 562 588 tcp_tqueue_ctrl_seg(conn, CTL_ACK /* XXX */); 563 589 } else { 564 log_msg(L VL_DEBUG, "%s: syn not acked -> Syn-Received",590 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: syn not acked -> Syn-Received", 565 591 conn->name); 566 592 tcp_conn_state_set(conn, st_syn_received); … … 582 608 tcp_segment_t *pseg; 583 609 584 log_msg(L VL_DEBUG, "tcp_conn_sa_seq(%p, %p)", conn, seg);610 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_sa_seq(%p, %p)", conn, seg); 585 611 586 612 /* Discard unacceptable segments ("old duplicates") */ 587 613 if (!seq_no_segment_acceptable(conn, seg)) { 588 log_msg(L VL_DEBUG, "Replying ACK to unacceptable segment.");614 log_msg(LOG_DEFAULT, LVL_DEBUG, "Replying ACK to unacceptable segment."); 589 615 tcp_tqueue_ctrl_seg(conn, CTL_ACK); 590 616 tcp_segment_delete(seg); … … 682 708 assert(seq_no_in_rcv_wnd(conn, seg->seq)); 683 709 684 log_msg(L VL_WARN, "SYN is in receive window, should send reset. XXX");710 log_msg(LOG_DEFAULT, LVL_WARN, "SYN is in receive window, should send reset. XXX"); 685 711 686 712 /* … … 705 731 if (!seq_no_ack_acceptable(conn, seg->ack)) { 706 732 /* ACK is not acceptable, send RST. */ 707 log_msg(L VL_WARN, "Segment ACK not acceptable, sending RST.");733 log_msg(LOG_DEFAULT, LVL_WARN, "Segment ACK not acceptable, sending RST."); 708 734 tcp_reply_rst(&conn->ident, seg); 709 735 tcp_segment_delete(seg); … … 711 737 } 712 738 713 log_msg(L VL_DEBUG, "%s: SYN ACKed -> Established", conn->name);739 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: SYN ACKed -> Established", conn->name); 714 740 715 741 tcp_conn_state_set(conn, st_established); … … 730 756 static cproc_t tcp_conn_seg_proc_ack_est(tcp_conn_t *conn, tcp_segment_t *seg) 731 757 { 732 log_msg(L VL_DEBUG, "tcp_conn_seg_proc_ack_est(%p, %p)", conn, seg);733 734 log_msg(L VL_DEBUG, "SEG.ACK=%u, SND.UNA=%u, SND.NXT=%u",758 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_seg_proc_ack_est(%p, %p)", conn, seg); 759 760 log_msg(LOG_DEFAULT, LVL_DEBUG, "SEG.ACK=%u, SND.UNA=%u, SND.NXT=%u", 735 761 (unsigned)seg->ack, (unsigned)conn->snd_una, 736 762 (unsigned)conn->snd_nxt); 737 763 738 764 if (!seq_no_ack_acceptable(conn, seg->ack)) { 739 log_msg(L VL_DEBUG, "ACK not acceptable.");765 log_msg(LOG_DEFAULT, LVL_DEBUG, "ACK not acceptable."); 740 766 if (!seq_no_ack_duplicate(conn, seg->ack)) { 741 log_msg(L VL_WARN, "Not acceptable, not duplicate. "767 log_msg(LOG_DEFAULT, LVL_WARN, "Not acceptable, not duplicate. " 742 768 "Send ACK and drop."); 743 769 /* Not acceptable, not duplicate. Send ACK and drop. */ … … 746 772 return cp_done; 747 773 } else { 748 log_msg(L VL_DEBUG, "Ignoring duplicate ACK.");774 log_msg(LOG_DEFAULT, LVL_DEBUG, "Ignoring duplicate ACK."); 749 775 } 750 776 } else { … … 758 784 conn->snd_wl2 = seg->ack; 759 785 760 log_msg(L VL_DEBUG, "Updating send window, SND.WND=%" PRIu32786 log_msg(LOG_DEFAULT, LVL_DEBUG, "Updating send window, SND.WND=%" PRIu32 761 787 ", SND.WL1=%" PRIu32 ", SND.WL2=%" PRIu32, 762 788 conn->snd_wnd, conn->snd_wl1, conn->snd_wl2); … … 785 811 786 812 if (conn->fin_is_acked) { 787 log_msg(L VL_DEBUG, "%s: FIN acked -> Fin-Wait-2", conn->name);813 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN acked -> Fin-Wait-2", conn->name); 788 814 tcp_conn_state_set(conn, st_fin_wait_2); 789 815 } … … 850 876 851 877 if (conn->fin_is_acked) { 852 log_msg(L VL_DEBUG, "%s: FIN acked -> Closed", conn->name);878 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN acked -> Closed", conn->name); 853 879 tcp_conn_remove(conn); 854 880 tcp_conn_state_set(conn, st_closed); … … 881 907 static cproc_t tcp_conn_seg_proc_ack(tcp_conn_t *conn, tcp_segment_t *seg) 882 908 { 883 log_msg(L VL_DEBUG, "%s: tcp_conn_seg_proc_ack(%p, %p)",909 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_seg_proc_ack(%p, %p)", 884 910 conn->name, conn, seg); 885 911 886 912 if ((seg->ctrl & CTL_ACK) == 0) { 887 log_msg(L VL_WARN, "Segment has no ACK. Dropping.");913 log_msg(LOG_DEFAULT, LVL_WARN, "Segment has no ACK. Dropping."); 888 914 tcp_segment_delete(seg); 889 915 return cp_done; … … 940 966 size_t xfer_size; 941 967 942 log_msg(L VL_DEBUG, "%s: tcp_conn_seg_proc_text(%p, %p)",968 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_seg_proc_text(%p, %p)", 943 969 conn->name, conn, seg); 944 970 … … 982 1008 fibril_condvar_broadcast(&conn->rcv_buf_cv); 983 1009 984 log_msg(L VL_DEBUG, "Received %zu bytes of data.", xfer_size);1010 log_msg(LOG_DEFAULT, LVL_DEBUG, "Received %zu bytes of data.", xfer_size); 985 1011 986 1012 /* Advance RCV.NXT */ … … 998 1024 tcp_conn_trim_seg_to_wnd(conn, seg); 999 1025 } else { 1000 log_msg(L VL_DEBUG, "%s: Nothing left in segment, dropping "1026 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: Nothing left in segment, dropping " 1001 1027 "(xfer_size=%zu, SEG.LEN=%" PRIu32 ", seg->ctrl=%u)", 1002 1028 conn->name, xfer_size, seg->len, (unsigned int) seg->ctrl); … … 1018 1044 static cproc_t tcp_conn_seg_proc_fin(tcp_conn_t *conn, tcp_segment_t *seg) 1019 1045 { 1020 log_msg(L VL_DEBUG, "%s: tcp_conn_seg_proc_fin(%p, %p)",1046 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_seg_proc_fin(%p, %p)", 1021 1047 conn->name, conn, seg); 1022 log_msg(L VL_DEBUG, " seg->len=%zu, seg->ctl=%u", (size_t) seg->len,1048 log_msg(LOG_DEFAULT, LVL_DEBUG, " seg->len=%zu, seg->ctl=%u", (size_t) seg->len, 1023 1049 (unsigned) seg->ctrl); 1024 1050 1025 1051 /* Only process FIN if no text is left in segment. */ 1026 1052 if (tcp_segment_text_size(seg) == 0 && (seg->ctrl & CTL_FIN) != 0) { 1027 log_msg(L VL_DEBUG, " - FIN found in segment.");1053 log_msg(LOG_DEFAULT, LVL_DEBUG, " - FIN found in segment."); 1028 1054 1029 1055 /* Send ACK */ … … 1042 1068 case st_syn_received: 1043 1069 case st_established: 1044 log_msg(L VL_DEBUG, "%s: FIN received -> Close-Wait",1070 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN received -> Close-Wait", 1045 1071 conn->name); 1046 1072 tcp_conn_state_set(conn, st_close_wait); 1047 1073 break; 1048 1074 case st_fin_wait_1: 1049 log_msg(L VL_DEBUG, "%s: FIN received -> Closing",1075 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN received -> Closing", 1050 1076 conn->name); 1051 1077 tcp_conn_state_set(conn, st_closing); 1052 1078 break; 1053 1079 case st_fin_wait_2: 1054 log_msg(L VL_DEBUG, "%s: FIN received -> Time-Wait",1080 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: FIN received -> Time-Wait", 1055 1081 conn->name); 1056 1082 tcp_conn_state_set(conn, st_time_wait); … … 1091 1117 static void tcp_conn_seg_process(tcp_conn_t *conn, tcp_segment_t *seg) 1092 1118 { 1093 log_msg(L VL_DEBUG, "tcp_conn_seg_process(%p, %p)", conn, seg);1119 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_seg_process(%p, %p)", conn, seg); 1094 1120 tcp_segment_dump(seg); 1095 1121 … … 1097 1123 /* XXX Permit valid ACKs, URGs and RSTs */ 1098 1124 /* if (!seq_no_segment_acceptable(conn, seg)) { 1099 log_msg(L VL_WARN, "Segment not acceptable, dropping.");1125 log_msg(LOG_DEFAULT, LVL_WARN, "Segment not acceptable, dropping."); 1100 1126 if ((seg->ctrl & CTL_RST) == 0) { 1101 1127 tcp_tqueue_ctrl_seg(conn, CTL_ACK); … … 1131 1157 */ 1132 1158 if (seg->len > 0) { 1133 log_msg(L VL_DEBUG, "Re-insert segment %p. seg->len=%zu",1159 log_msg(LOG_DEFAULT, LVL_DEBUG, "Re-insert segment %p. seg->len=%zu", 1134 1160 seg, (size_t) seg->len); 1135 1161 tcp_iqueue_insert_seg(&conn->incoming, seg); … … 1146 1172 void tcp_conn_segment_arrived(tcp_conn_t *conn, tcp_segment_t *seg) 1147 1173 { 1148 log_msg(L VL_DEBUG, "%s: tcp_conn_segment_arrived(%p)",1174 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: tcp_conn_segment_arrived(%p)", 1149 1175 conn->name, seg); 1150 1176 … … 1165 1191 tcp_conn_sa_queue(conn, seg); break; 1166 1192 case st_closed: 1167 log_msg(L VL_DEBUG, "state=%d", (int) conn->cstate);1193 log_msg(LOG_DEFAULT, LVL_DEBUG, "state=%d", (int) conn->cstate); 1168 1194 assert(false); 1169 1195 } … … 1178 1204 tcp_conn_t *conn = (tcp_conn_t *) arg; 1179 1205 1180 log_msg(L VL_DEBUG, "tw_timeout_func(%p)", conn);1181 1182 fibril_mutex_lock(&conn->lock);1206 log_msg(LOG_DEFAULT, LVL_DEBUG, "tw_timeout_func(%p)", conn); 1207 1208 tcp_conn_lock(conn); 1183 1209 1184 1210 if (conn->cstate == st_closed) { 1185 log_msg(L VL_DEBUG, "Connection already closed.");1186 fibril_mutex_unlock(&conn->lock);1211 log_msg(LOG_DEFAULT, LVL_DEBUG, "Connection already closed."); 1212 tcp_conn_unlock(conn); 1187 1213 tcp_conn_delref(conn); 1188 1214 return; 1189 1215 } 1190 1216 1191 log_msg(L VL_DEBUG, "%s: TW Timeout -> Closed", conn->name);1217 log_msg(LOG_DEFAULT, LVL_DEBUG, "%s: TW Timeout -> Closed", conn->name); 1192 1218 tcp_conn_remove(conn); 1193 1219 tcp_conn_state_set(conn, st_closed); 1194 1220 1195 fibril_mutex_unlock(&conn->lock);1221 tcp_conn_unlock(conn); 1196 1222 tcp_conn_delref(conn); 1223 1224 log_msg(LOG_DEFAULT, LVL_DEBUG, "tw_timeout_func(%p) end", conn); 1197 1225 } 1198 1226 … … 1203 1231 void tcp_conn_tw_timer_set(tcp_conn_t *conn) 1204 1232 { 1233 log_msg(LOG_DEFAULT, LVL_DEBUG2, "tcp_conn_tw_timer_set() begin"); 1205 1234 tcp_conn_addref(conn); 1206 fibril_timer_set(conn->tw_timer, TIME_WAIT_TIMEOUT, tw_timeout_func, 1207 (void *)conn); 1235 fibril_timer_set_locked(conn->tw_timer, TIME_WAIT_TIMEOUT, 1236 tw_timeout_func, (void *)conn); 1237 log_msg(LOG_DEFAULT, LVL_DEBUG2, "tcp_conn_tw_timer_set() end"); 1208 1238 } 1209 1239 … … 1214 1244 void tcp_conn_tw_timer_clear(tcp_conn_t *conn) 1215 1245 { 1216 if (fibril_timer_clear(conn->tw_timer) == fts_active) 1246 log_msg(LOG_DEFAULT, LVL_DEBUG2, "tcp_conn_tw_timer_clear() begin"); 1247 if (fibril_timer_clear_locked(conn->tw_timer) == fts_active) 1217 1248 tcp_conn_delref(conn); 1249 log_msg(LOG_DEFAULT, LVL_DEBUG2, "tcp_conn_tw_timer_clear() end"); 1218 1250 } 1219 1251 … … 1240 1272 void tcp_unexpected_segment(tcp_sockpair_t *sp, tcp_segment_t *seg) 1241 1273 { 1242 log_msg(L VL_DEBUG, "tcp_unexpected_segment(%p, %p)", sp, seg);1274 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_unexpected_segment(%p, %p)", sp, seg); 1243 1275 1244 1276 if ((seg->ctrl & CTL_RST) == 0) … … 1268 1300 tcp_segment_t *rseg; 1269 1301 1270 log_msg(L VL_DEBUG, "tcp_reply_rst(%p, %p)", sp, seg);1302 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_reply_rst(%p, %p)", sp, seg); 1271 1303 1272 1304 rseg = tcp_segment_make_rst(seg);
Note:
See TracChangeset
for help on using the changeset viewer.