* Sebastian Hammer, Adam Dickmeiss
*
* $Log: xmosi.c,v $
- * Revision 1.1 1995-06-14 09:58:20 quinn
+ * Revision 1.7 1995-10-30 12:41:17 quinn
+ * Added hostname lookup for server.
+ *
+ * Revision 1.6 1995/09/29 17:12:00 quinn
+ * Smallish
+ *
+ * Revision 1.5 1995/09/28 10:24:32 quinn
+ * Windows changes
+ *
+ * Revision 1.4 1995/09/27 15:02:45 quinn
+ * Modified function heads & prototypes.
+ *
+ * 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
int mosi_bind(COMSTACK h, void *address, int mode);
int mosi_listen(COMSTACK h, char *addrp, int *addrlen);
COMSTACK mosi_accept(COMSTACK h);
+char *mosi_addrstr(COMSTACK h);
typedef struct mosi_state
{
r->f_bind = mosi_bind;
r->f_listen = mosi_listen;
r->f_accept = mosi_accept;
+ r->f_addrstr = mosi_addrstr;
if (!blocking)
flags |= O_NONBLOCK;
* addressing specific to our hack of OSI transport. A sockaddr_in wrapped
* up in a t_mosiaddr in a netbuf (on a stick).
*/
-struct netbuf *mosi_strtoaddr(const char *str)
+struct netbuf MDF *mosi_strtoaddr(const char *str)
{
struct netbuf *ret = malloc(sizeof(struct netbuf));
struct sockaddr_in *add = malloc(sizeof(struct sockaddr_in));
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));
{
int res;
struct t_bind bnd;
+ int one = 1;
+ if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0)
+ {
+ h->cerrno = CSYSERR;
+ return -1;
+ }
if (mode == CS_SERVER)
bnd.qlen = 3;
else
if (h->state != CS_INCON)
{
- h->errno = CSOUTSTATE;
+ h->cerrno = CSOUTSTATE;
return 0;
}
if (!(new = malloc(sizeof(*new))))
free(h);
return 0;
}
+
+char *mosi_addrstr(COMSTACK h)
+{
+ return "osi:[UNIMPLEMENTED";
+}