X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=comstack%2Fxmosi.c;h=f9dd6ab1b88e4acf9b6e9506eccd6fdd68cb4041;hp=9e15a289377002eabe6a139eb0d7d923b5f21b98;hb=99197c4bc292188d25b7ccda5328546dc899648e;hpb=8a425ff5328260fff0dcc28f08b5bdf6bfac84ab diff --git a/comstack/xmosi.c b/comstack/xmosi.c index 9e15a28..f9dd6ab 100644 --- a/comstack/xmosi.c +++ b/comstack/xmosi.c @@ -4,7 +4,13 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: xmosi.c,v $ - * Revision 1.1 1995-06-14 09:58:20 quinn + * Revision 1.3 1995-06-16 10:30:38 quinn + * Added REUSEADDR. + * + * Revision 1.2 1995/06/15 12:30:07 quinn + * Added @ as hostname alias for INADDR ANY. + * + * Revision 1.1 1995/06/14 09:58:20 quinn * Renamed yazlib to comstack. * * Revision 1.15 1995/05/29 08:12:33 quinn @@ -236,7 +242,9 @@ struct netbuf *mosi_strtoaddr(const char *str) port = atoi(b + 1); } add->sin_port = htons(port); - if ((hp = gethostbyname(buf))) + if (!strcmp("@", buf)) + add->sin_addr.s_addr = INADDR_ANY; + else if ((hp = gethostbyname(buf))) memcpy(&add->sin_addr.s_addr, *hp->h_addr_list, sizeof(struct in_addr)); else if ((tmpadd = inet_addr(buf)) != 0) memcpy(&add->sin_addr.s_addr, &tmpadd, sizeof(struct in_addr)); @@ -318,7 +326,13 @@ int mosi_bind(COMSTACK h, void *address, int mode) { int res; struct t_bind bnd; + int one = 1; + if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0) + { + h->errno = CSYSERR; + return -1; + } if (mode == CS_SERVER) bnd.qlen = 3; else