s->alproto = ((DetectAppLayerEventData *)sm->ctx)->alproto;
}
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
s->flags |= SIG_FLAG_APPLAYER;
return 0;
sm->type = DETECT_DCE_IFACE;
sm->ctx = (void *)did;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_DCERPC) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
sm->type = DETECT_DCE_OPNUM;
sm->ctx = (void *)dod;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_DCERPC) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
sm->type = DETECT_DCE_STUB_DATA;
sm->ctx = NULL;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_DCERPC) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
*/
sm->ctx = NULL;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_FTP) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
return NULL;
}
-/**
- * \brief append a app layer SigMatch to the Signature structure
- * \param s pointer to the Signature
- * \param new pointer to the SigMatch of type uricontent to be appended
- */
-void SigMatchAppendAppLayer(Signature *s, SigMatch *new) {
- if (s->sm_lists[DETECT_SM_LIST_AMATCH] == NULL) {
- s->sm_lists[DETECT_SM_LIST_AMATCH] = new;
- s->sm_lists_tail[DETECT_SM_LIST_AMATCH] = new;
- new->next = NULL;
- new->prev = NULL;
- } else {
- SigMatch *cur = s->sm_lists_tail[DETECT_SM_LIST_AMATCH];
- cur->next = new;
- new->prev = cur;
- new->next = NULL;
- s->sm_lists_tail[DETECT_SM_LIST_AMATCH] = new;
- }
-
- new->idx = s->sm_cnt;
- s->sm_cnt++;
-}
-
/**
* \brief Append a SigMatch to the list type.
*
void SigMatchAppendThreshold(Signature *, SigMatch *);
void SigMatchAppendPostMatch(Signature *, SigMatch *);
void SigMatchAppendUricontent(Signature *, SigMatch *);
-void SigMatchAppendAppLayer(Signature *, SigMatch *);
void SigMatchAppendTag(Signature *, SigMatch *);
void SigMatchAppendSMToList(Signature *, SigMatch *, int);
void SigMatchRemoveSMFromList(Signature *, SigMatch *, int);
sm->type = DETECT_AL_SSH_PROTOVERSION;
sm->ctx = (void *)ssh;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_SSH) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
sm->type = DETECT_AL_SSH_SOFTWAREVERSION;
sm->ctx = (void *)ssh;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_SSH) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
}
s->alproto = ALPROTO_TLS;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
return 0;
sm->type = DETECT_AL_SSL_VERSION;
sm->ctx = (void *)ssl;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_TLS) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");
sm->type = DETECT_AL_TLS_VERSION;
sm->ctx = (void *)tls;
- SigMatchAppendAppLayer(s, sm);
+ SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_AMATCH);
if (s->alproto != ALPROTO_UNKNOWN && s->alproto != ALPROTO_TLS) {
SCLogError(SC_ERR_CONFLICTING_RULE_KEYWORDS, "rule contains conflicting keywords.");