@@ -319,6 +319,8 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
319
319
char portNumberStr [32 ];
320
320
const char * familyDesc ;
321
321
char familyDescBuf [64 ];
322
+ const char * addrDesc ;
323
+ char addrBuf [NI_MAXHOST ];
322
324
char * service ;
323
325
struct addrinfo * addrs = NULL ,
324
326
* addr ;
@@ -407,7 +409,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
407
409
break ;
408
410
}
409
411
410
- /* set up family name for possible error messages */
412
+ /* set up address family name for log messages */
411
413
switch (addr -> ai_family )
412
414
{
413
415
case AF_INET :
@@ -431,13 +433,28 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
431
433
break ;
432
434
}
433
435
436
+ /* set up text form of address for log messages */
437
+ #ifdef HAVE_UNIX_SOCKETS
438
+ if (addr -> ai_family == AF_UNIX )
439
+ addrDesc = unixSocketPath ;
440
+ else
441
+ #endif
442
+ {
443
+ pg_getnameinfo_all ((const struct sockaddr_storage * ) addr -> ai_addr ,
444
+ addr -> ai_addrlen ,
445
+ addrBuf , sizeof (addrBuf ),
446
+ NULL , 0 ,
447
+ NI_NUMERICHOST );
448
+ addrDesc = addrBuf ;
449
+ }
450
+
434
451
if ((fd = socket (addr -> ai_family , SOCK_STREAM , 0 )) == PGINVALID_SOCKET )
435
452
{
436
453
ereport (LOG ,
437
454
(errcode_for_socket_access (),
438
- /* translator: %s is IPv4, IPv6, or Unix */
439
- errmsg ("could not create %s socket: %m" ,
440
- familyDesc )));
455
+ /* translator: first %s is IPv4, IPv6, or Unix */
456
+ errmsg ("could not create %s socket for address \"%s\" : %m" ,
457
+ familyDesc , addrDesc )));
441
458
continue ;
442
459
}
443
460
@@ -461,7 +478,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
461
478
{
462
479
ereport (LOG ,
463
480
(errcode_for_socket_access (),
464
- errmsg ("setsockopt(SO_REUSEADDR) failed: %m" )));
481
+ /* translator: first %s is IPv4, IPv6, or Unix */
482
+ errmsg ("setsockopt(SO_REUSEADDR) failed for %s address \"%s\": %m" ,
483
+ familyDesc , addrDesc )));
465
484
closesocket (fd );
466
485
continue ;
467
486
}
@@ -476,7 +495,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
476
495
{
477
496
ereport (LOG ,
478
497
(errcode_for_socket_access (),
479
- errmsg ("setsockopt(IPV6_V6ONLY) failed: %m" )));
498
+ /* translator: first %s is IPv4, IPv6, or Unix */
499
+ errmsg ("setsockopt(IPV6_V6ONLY) failed for %s address \"%s\": %m" ,
500
+ familyDesc , addrDesc )));
480
501
closesocket (fd );
481
502
continue ;
482
503
}
@@ -494,9 +515,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
494
515
{
495
516
ereport (LOG ,
496
517
(errcode_for_socket_access (),
497
- /* translator: %s is IPv4, IPv6, or Unix */
498
- errmsg ("could not bind %s socket : %m" ,
499
- familyDesc ),
518
+ /* translator: first %s is IPv4, IPv6, or Unix */
519
+ errmsg ("could not bind %s address \"%s\" : %m" ,
520
+ familyDesc , addrDesc ),
500
521
(IS_AF_UNIX (addr -> ai_family )) ?
501
522
errhint ("Is another postmaster already running on port %d?"
502
523
" If not, remove socket file \"%s\" and retry." ,
@@ -533,12 +554,18 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
533
554
{
534
555
ereport (LOG ,
535
556
(errcode_for_socket_access (),
536
- /* translator: %s is IPv4, IPv6, or Unix */
537
- errmsg ("could not listen on %s socket : %m" ,
538
- familyDesc )));
557
+ /* translator: first %s is IPv4, IPv6, or Unix */
558
+ errmsg ("could not listen on %s address \"%s\" : %m" ,
559
+ familyDesc , addrDesc )));
539
560
closesocket (fd );
540
561
continue ;
541
562
}
563
+
564
+ ereport (LOG ,
565
+ /* translator: first %s is IPv4, IPv6, or Unix */
566
+ (errmsg ("listening on %s address \"%s\"" ,
567
+ familyDesc , addrDesc )));
568
+
542
569
ListenSocket [listen_index ] = fd ;
543
570
added ++ ;
544
571
}
0 commit comments