/* * make_client - create a new Client struct and set it to initial state. * * from == NULL, create local client (a client connected * to a socket). * * from, create remote client (behind a socket * associated with the client defined by * 'from'). ('from' is a local client!!). */ struct Client* make_client(struct Client* from) { struct Client* client_p = NULL; struct LocalUser *localClient; dlink_node *m; client_p = BlockHeapAlloc(client_heap); memset(client_p, 0, sizeof(struct Client)); if (from == NULL) { client_p->from = client_p; /* 'from' of local client is self! */ client_p->since = client_p->lasttime = client_p->firsttime = CurrentTime; localClient = (struct LocalUser *)BlockHeapAlloc(lclient_heap); memset(localClient, 0, sizeof(struct LocalUser)); client_p->localClient = localClient; client_p->localClient->fd = -1; client_p->localClient->ctrlfd = -1; #ifndef HAVE_SOCKETPAIR client_p->localClient->fd_r = -1; client_p->localClient->ctrlfd_r = -1; #endif /* as good a place as any... */ m = make_dlink_node(); dlinkAdd(client_p, m, &unknown_list); ++local_client_count; } else { /* from is not NULL */ client_p->localClient = NULL; client_p->from = from; /* 'from' of local client is self! */ ++remote_client_count; } client_p->status = STAT_UNKNOWN; strcpy(client_p->username, "unknown"); #if 0 client_p->name[0] = '\0'; client_p->flags = 0; client_p->next = NULL; client_p->prev = NULL; client_p->hnext = NULL; client_p->lnext = NULL; client_p->lprev = NULL; client_p->user = NULL; client_p->serv = NULL; client_p->servptr = NULL; client_p->whowas = NULL; client_p->allow_list.head = NULL; client_p->allow_list.tail = NULL; client_p->on_allow_list.head = NULL; client_p->on_allow_list.tail = NULL; #endif return client_p; }
/* make_dlink_node() * * inputs - NONE * output - pointer to new dlink_node * side effects - NONE */ dlink_node * make_dlink_node(void) { dlink_node *lp = BlockHeapAlloc(dnode_heap); return(lp); }
static struct dbuf_block * dbuf_alloc(struct dbuf_queue *qptr) { struct dbuf_block *block = BlockHeapAlloc(dbuf_heap); dlinkAddTail(block, make_dlink_node(), &qptr->blocks); return block; }
static buf_line_t * linebuf_allocate(void) { buf_line_t *t; t = BlockHeapAlloc(linebuf_heap); t->refcount = 0; return (t); }
/* creates a new node */ node_t *node_create(void) { node_t *n; /* allocate it */ n = BlockHeapAlloc(node_heap); /* initialize */ n->next = n->prev = n->data = NULL; /* up the count */ claro_state.node++; /* return a pointer to the new node */ return n; }
/* creates a new node */ node_t *node_create(void) { node_t *n; /* allocate it */ n = BlockHeapAlloc(node_heap); /* make it crash if you try to traverse or node_del() before adding */ n->next = n->prev = (void *)-1; n->data = NULL; /* up the count */ claro_state.node++; /* return a pointer to the new node */ return n; }
uv_buf_t allocate_uv_buffer(uv_handle_t *handle, size_t suggested_size) { return uv_buf_init(BlockHeapAlloc(buffer_heap), READBUF_SIZE); }