ReferenceNode *AddReference(ReferenceNode *rn, char *system, char *id) { ReferenceNode *newNode; if(system == NULL || id == NULL) { ErrorMessage("NULL reference argument\n"); return rn; } /* create the new node */ if(!(newNode = (ReferenceNode *)malloc(sizeof(ReferenceNode)))) { FatalError("Out of memory in AddReference\n"); } memset(newNode, 0, sizeof(ReferenceNode)); /* lookup the reference system */ if(!(newNode->system = ReferenceSystemLookup(system))) { newNode->system = ReferenceSystemAdd(system, NULL); } newNode->id = strdup(id); /* add the node to the list */ newNode->next = rn; return newNode; }
ReferenceNode * AddReference(Barnyard2Config *bc, ReferenceNode **head, char *system, char *id) { ReferenceNode *node; if ((system == NULL) || (id == NULL) || (bc == NULL) || (head == NULL)) { return NULL; } /* create the new node */ node = (ReferenceNode *)SnortAlloc(sizeof(ReferenceNode)); /* lookup the reference system */ node->system = ReferenceSystemLookup(bc->references, system); if (node->system == NULL) node->system = ReferenceSystemAdd(&bc->references, system, NULL); node->id = SnortStrdup(id); /* Add the node to the front of the list */ node->next = *head; *head = node; return node; }
void ParseReferenceSystemConfig(char *args) { char **toks; char *name = NULL; char *url = NULL; int num_toks; int i; /* 2 tokens: name <url> */ toks = mSplit(args, " ", 2, &num_toks, 0); name = toks[0]; if(num_toks == 2) { url = toks[1]; while(isspace((int)*url)) url++; if(url[0] == '\0') url = NULL; } ReferenceSystemAdd(name, url); for(i = 0; i < num_toks; i++) free(toks[i]); return; }