/* * rb_linebuf_new_line * * Create a new line, and link it to the given linebuf. * It will be initially empty. */ static buf_line_t * rb_linebuf_new_line(buf_head_t * bufhead) { buf_line_t *bufline; bufline = rb_linebuf_allocate(); if(bufline == NULL) return NULL; ++bufline_count; /* Stick it at the end of the buf list */ rb_dlinkAddTailAlloc(bufline, &bufhead->list); bufline->refcount++; /* And finally, update the allocated size */ bufhead->alloclen++; bufhead->numlines++; return bufline; }
struct Client *make_remote_server_full(struct Client *uplink, const char *name, const char *id) { struct Client *client; client = make_client(NULL); client->servptr = uplink; attach_server_conf(client, find_server_conf(name)); rb_strlcpy(client->name, name, sizeof(client->name)); rb_strlcpy(client->id, id, sizeof(client->id)); rb_dlinkAdd(client, &client->lnode, &uplink->serv->servers); rb_dlinkMoveNode(&client->localClient->tnode, &unknown_list, &serv_list); rb_dlinkAddTailAlloc(client, &global_serv_list); make_server(client); SetServer(client); add_to_client_hash(client->name, client); return client; }