Changeset 2f19103 in mainline for uspace/srv/net/tcp/service.c
- Timestamp:
- 2015-05-22T07:21:37Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 58e9dec
- Parents:
- bf7587b0
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/tcp/service.c
rbf7587b0 r2f19103 108 108 tcp_clst_t *clst; 109 109 tcp_cconn_t *cconn; 110 inet_ep2_t epp; 110 111 int rc; 111 112 tcp_error_t trc; … … 145 146 /* Replenish sentinel connection */ 146 147 147 trc = tcp_uc_open(&clst->elocal, NULL, ap_passive, tcp_open_nonblock, 148 inet_ep2_init(&epp); 149 epp.local = clst->elocal; 150 151 trc = tcp_uc_open(&epp, ap_passive, tcp_open_nonblock, 148 152 &conn); 149 153 if (trc != TCP_EOK) { … … 331 335 tcp_conn_t *conn; 332 336 tcp_cconn_t *cconn; 333 tcp_sock_t local; 334 tcp_sock_t remote; 335 inet_addr_t local_addr; 337 inet_ep2_t cepp; 336 338 int rc; 337 339 tcp_error_t trc; … … 340 342 341 343 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl"); 344 345 cepp = *epp; 342 346 343 347 /* Fill in local address? */ … … 345 349 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl: " 346 350 "determine local address"); 347 rc = inet_get_srcaddr(&epp->remote.addr, 0, & local_addr);351 rc = inet_get_srcaddr(&epp->remote.addr, 0, &cepp.local.addr); 348 352 if (rc != EOK) { 349 353 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl: " … … 354 358 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl: " 355 359 "local address specified"); 356 local_addr = epp->local.addr;357 360 } 358 361 359 362 /* Allocate local port? */ 360 if ( epp->local.port == 0) {361 epp->local.port = 49152; /* XXX */362 }363 364 local.addr = local_addr;365 local.port = epp->local.port;366 remote.addr = epp->remote.addr;367 remote.port = epp->remote.port;368 369 inet_addr_format(& local_addr, &slocal);370 inet_addr_format(& remote.addr, &sremote);363 if (cepp.local.port == 0) { 364 cepp.local.port = 49152; /* XXX */ 365 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl: " 366 "allocated local port %" PRIu16, cepp.local.port); 367 } else { 368 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create_impl: " 369 "local port %" PRIu16 " specified", cepp.local.port); 370 } 371 372 inet_addr_format(&cepp.local.addr, &slocal); 373 inet_addr_format(&cepp.remote.addr, &sremote); 371 374 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_conn_create: local=%s remote=%s", 372 375 slocal, sremote); 373 374 trc = tcp_uc_open(&local, &remote, ap_active, tcp_open_nonblock, &conn); 376 free(slocal); 377 free(sremote); 378 379 trc = tcp_uc_open(&cepp, ap_active, tcp_open_nonblock, &conn); 375 380 if (trc != TCP_EOK) 376 381 return EIO; … … 386 391 tcp_uc_set_cb(conn, &tcp_service_cb, cconn); 387 392 388 // assoc->cb = &udp_cassoc_cb;389 // assoc->cb_arg = cassoc;390 391 393 *rconn_id = cconn->id; 392 394 return EOK; … … 415 417 tcp_conn_t *conn; 416 418 tcp_clst_t *clst; 417 tcp_sock_t local;419 inet_ep2_t epp; 418 420 int rc; 419 421 tcp_error_t trc; … … 421 423 log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_listener_create_impl"); 422 424 423 local.addr = ep->addr; 424 local.port = ep->port; 425 426 trc = tcp_uc_open(&local, NULL, ap_passive, tcp_open_nonblock, &conn); 425 inet_ep2_init(&epp); 426 epp.local.addr = ep->addr; 427 epp.local.port = ep->port; 428 429 trc = tcp_uc_open(&epp, ap_passive, tcp_open_nonblock, &conn); 427 430 if (trc != TCP_EOK) 428 431 return EIO; … … 435 438 } 436 439 437 clst->elocal = local;440 clst->elocal = epp.local; 438 441 439 442 /* XXX Is there a race here (i.e. the connection is already active)? */
Note:
See TracChangeset
for help on using the changeset viewer.