* Sebastian Hammer, Adam Dickmeiss
*
* $Log: xmosi.c,v $
- * Revision 1.6 1995-09-29 17:12:00 quinn
+ * Revision 1.11 1996-02-23 10:00:41 quinn
+ * WAIS Work
+ *
+ * Revision 1.10 1996/02/10 12:23:13 quinn
+ * Enablie inetd operations fro TCP/IP stack
+ *
+ * Revision 1.9 1996/01/02 08:57:28 quinn
+ * Changed enums in the ASN.1 .h files to #defines. Changed oident.class to oclass
+ *
+ * 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
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
{
char *str;
ent.proto = proto;
- ent.class = class;
+ ent.oclass = class;
ent.value = value;
if (!(oid = oid_getoidbyent(&ent)))
return -1;
return 0;
}
-COMSTACK mosi_type(int blocking, int protocol)
+COMSTACK mosi_type(int s, int blocking, int protocol)
{
COMSTACK r;
mosi_state *state;
int flags = O_RDWR;
- if (!(r = malloc(sizeof(*r))))
+ if (s >= 0)
+ return 0;
+
+ 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;
*/
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;
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]";
+}