diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 0894cacb553..4ee3ca47862 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -5606,6 +5606,15 @@ PHP_FUNCTION(getservbyname) serv = getservbyname(name, proto); +#if defined(_AIX) + /* + On AIX, imap is only known as imap2 in /etc/services, while on Linux imap is an alias for imap2. + If a request for imap gives no result, we try again with imap2. + */ + if (serv == NULL && strcmp(name, "imap") == 0) { + serv = getservbyname("imap2", proto); + } +#endif if (serv == NULL) { RETURN_FALSE; }