* Sebastian Hammer, Adam Dickmeiss
*
* $Log: xmosi.c,v $
- * Revision 1.4 1995-09-27 15:02:45 quinn
+ * Revision 1.8 1995-11-01 13:54:29 quinn
+ * Minor adjustments
+ *
+ * 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
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
{
return 0;
}
-COMSTACK MDF mosi_type(int blocking, int protocol)
+COMSTACK mosi_type(int blocking, int protocol)
{
COMSTACK r;
mosi_state *state;
int flags = O_RDWR;
- if (!(r = malloc(sizeof(*r))))
+ if (!(r = xmalloc(sizeof(*r))))
return 0;
- if (!(state = r->private = malloc(sizeof(*state))))
+ if (!(state = r->private = xmalloc(sizeof(*state))))
return 0;
state->call = 0;
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 MDF netbuf MDF *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));
- struct t_mosiaddr *mosiaddr = malloc(sizeof(struct t_mosiaddr));
+ struct netbuf *ret = xmalloc(sizeof(struct netbuf));
+ struct sockaddr_in *add = xmalloc(sizeof(struct sockaddr_in));
+ struct t_mosiaddr *mosiaddr = xmalloc(sizeof(struct t_mosiaddr));
struct hostent *hp;
char *p, *b, buf[512], *nsap;
short int port = 102;
if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) < 0)
{
- h->errno = CSYSERR;
+ h->cerrno = CSYSERR;
return -1;
}
if (mode == CS_SERVER)
if (h->state != CS_INCON)
{
- h->errno = CSOUTSTATE;
+ h->cerrno = CSOUTSTATE;
return 0;
}
- if (!(new = malloc(sizeof(*new))))
+ if (!(new = xmalloc(sizeof(*new))))
return 0;
*new = *h;
- if (!(new->private = ns = malloc(sizeof(*ns))))
+ if (!(new->private = ns = xmalloc(sizeof(*ns))))
return 0;
*ns = *st;
if (!h->blocking)
{
if (!*bufsize)
{
- if (!(*buf = malloc(*bufsize = CS_MOSI_BUFCHUNK)))
+ if (!(*buf = xmalloc(*bufsize = CS_MOSI_BUFCHUNK)))
return -1;
}
else if (*bufsize - ct->hasread < CS_MOSI_BUFCHUNK)
- if (!(*buf = realloc(*buf, *bufsize *= 2)))
+ if (!(*buf =xrealloc(*buf, *bufsize *= 2)))
return -1;
if ((res = u_rcv(h->iofile, *buf + ct->hasread, CS_MOSI_BUFCHUNK,
int mosi_close(COMSTACK h)
{
- free(h->private);
+ xfree(h->private);
if (h->iofile >= 0)
u_close(h->iofile);
- free(h);
+ xfree(h);
return 0;
}
+
+char *mosi_addrstr(COMSTACK h)
+{
+ return "osi:[UNIMPLEMENTED";
+}