Changeset 745 for trunk/server/source4/lib/socket/socket.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source4/lib/socket/socket.c
r414 r745 25 25 #include "system/network.h" 26 26 #include "param/param.h" 27 #include "../lib/tsocket/tsocket.h" 28 #include "lib/util/util_net.h" 27 29 28 30 /* … … 343 345 344 346 return sock->ops->fn_get_my_addr(sock, mem_ctx); 347 } 348 349 _PUBLIC_ struct tsocket_address *socket_address_to_tsocket_address(TALLOC_CTX *mem_ctx, 350 const struct socket_address *a) 351 { 352 struct tsocket_address *r; 353 int ret; 354 355 if (a->sockaddr) { 356 ret = tsocket_address_bsd_from_sockaddr(mem_ctx, 357 a->sockaddr, 358 a->sockaddrlen, 359 &r); 360 } else { 361 ret = tsocket_address_inet_from_strings(mem_ctx, 362 a->family, 363 a->addr, 364 a->port, 365 &r); 366 } 367 368 if (ret != 0) { 369 return NULL; 370 } 371 372 return r; 373 } 374 375 _PUBLIC_ void socket_address_set_port(struct socket_address *a, 376 uint16_t port) 377 { 378 if (a->sockaddr) { 379 set_sockaddr_port(a->sockaddr, port); 380 } else { 381 a->port = port; 382 } 383 384 } 385 386 _PUBLIC_ struct socket_address *tsocket_address_to_socket_address(TALLOC_CTX *mem_ctx, 387 const struct tsocket_address *a) 388 { 389 ssize_t ret; 390 struct sockaddr_storage ss; 391 size_t sslen = sizeof(ss); 392 393 ret = tsocket_address_bsd_sockaddr(a, (struct sockaddr *)(void *)&ss, sslen); 394 if (ret < 0) { 395 return NULL; 396 } 397 398 return socket_address_from_sockaddr(mem_ctx, (struct sockaddr *)(void *)&ss, ret); 399 } 400 401 _PUBLIC_ struct tsocket_address *socket_get_remote_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx) 402 { 403 struct socket_address *a; 404 struct tsocket_address *r; 405 406 a = socket_get_peer_addr(sock, mem_ctx); 407 if (a == NULL) { 408 return NULL; 409 } 410 411 r = socket_address_to_tsocket_address(mem_ctx, a); 412 talloc_free(a); 413 return r; 414 } 415 416 _PUBLIC_ struct tsocket_address *socket_get_local_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx) 417 { 418 struct socket_address *a; 419 struct tsocket_address *r; 420 421 a = socket_get_my_addr(sock, mem_ctx); 422 if (a == NULL) { 423 return NULL; 424 } 425 426 r = socket_address_to_tsocket_address(mem_ctx, a); 427 talloc_free(a); 428 return r; 345 429 } 346 430
Note:
See TracChangeset
for help on using the changeset viewer.