Don't bother with diffs to b_sock.c. Instead, if you have code which uses it, talk to krw.
There is a monster diff coming which rewrites it all. And by the way, all that code disapears and is replaced by 2 lines. > Not sure this is sensible as it encourages people to simply > update the table. > > I was inclined to remove the code entirely but I am not sure > what broken systems might rely on this. > > Only build tested. > > Thoughts? > > Index: b_sock.c > =================================================================== > RCS file: /cvs/src/lib/libssl/src/crypto/bio/b_sock.c,v > retrieving revision 1.33 > diff -u -p -r1.33 b_sock.c > --- b_sock.c 26 Apr 2014 18:56:37 -0000 1.33 > +++ b_sock.c 29 Apr 2014 13:55:39 -0000 > @@ -140,6 +140,19 @@ BIO_get_port(const char *str, unsigned s > { > int i; > struct servent *s; > + size_t len; > + struct { > + const char *name; > + int port; > + } servmap[] = { > + { "http", 80 }, > + { "telnet", 23 }, > + { "socks", 1080 }, > + { "https", 443 }, > + { "ssl", 443 }, > + { "ftp", 21 }, > + { "gopher", 70 } > + }; > > if (str == NULL) { > BIOerr(BIO_F_BIO_GET_PORT, BIO_R_NO_PORT_DEFINED); > @@ -155,21 +168,14 @@ BIO_get_port(const char *str, unsigned s > *port_ptr = ntohs((unsigned short)s->s_port); > CRYPTO_w_unlock(CRYPTO_LOCK_GETSERVBYNAME); > if (s == NULL) { > - if (strcmp(str, "http") == 0) > - *port_ptr = 80; > - else if (strcmp(str, "telnet") == 0) > - *port_ptr = 23; > - else if (strcmp(str, "socks") == 0) > - *port_ptr = 1080; > - else if (strcmp(str, "https") == 0) > - *port_ptr = 443; > - else if (strcmp(str, "ssl") == 0) > - *port_ptr = 443; > - else if (strcmp(str, "ftp") == 0) > - *port_ptr = 21; > - else if (strcmp(str, "gopher") == 0) > - *port_ptr = 70; > - else { > + len = sizeof(servmap) / sizeof(servmap[0]); > + for (i = 0; i < len; i++) { > + if (strcmp(str, servmap[i].name) == 0) { > + *port_ptr = servmap[i].port; > + break; > + } > + } > + if (i == len) { > SYSerr(SYS_F_GETSERVBYNAME, errno); > ERR_asprintf_error_data("service='%s'", str); > return (0); >