Print this page
Only exploit ipf state keeping for CFW logging.
        
*** 1522,1531 ****
--- 1522,1534 ----
                  is->is_sync = ipfsync_new(SMC_STATE, fin, is);
  #endif
          if (ifs->ifs_ipstate_logging)
                  ipstate_log(is, ISL_NEW, ifs);
  
+         if (IFS_CFWLOG(ifs))
+                 ipf_log_cfwlog(is, ISL_NEW, ifs);
+ 
          RWLOCK_EXIT(&ifs->ifs_ipf_state);
          fin->fin_rev = IP6_NEQ(&is->is_dst, &fin->fin_daddr);
          fin->fin_flx |= FI_STATE;
          if (fin->fin_flx & FI_FRAG)
                  (void) fr_newfrag(fin, pass ^ FR_KEEPSTATE);
*** 2312,2321 ****
--- 2315,2326 ----
                          is->is_maxdend = is->is_dend + 1;
                  }
                  is->is_flags &= ~(SI_W_SPORT|SI_W_DPORT);
                  if ((flags & SI_CLONED) && ifs->ifs_ipstate_logging)
                          ipstate_log(is, ISL_CLONE, ifs);
+                 if ((flags & SI_CLONED) && IFS_CFWLOG(ifs))
+                         ipf_log_cfwlog(is, ISL_CLONE, ifs);
          }
  
          ret = -1;
  
          if (is->is_flx[out][rev] == 0) {
*** 3395,3405 ****
                  is->is_pnext = NULL;
          }
   
          if (ifs->ifs_ipstate_logging != 0 && why != 0)
                  ipstate_log(is, why, ifs);
! 
          if (is->is_rule != NULL) {
                  is->is_rule->fr_statecnt--;
                  (void)fr_derefrule(&is->is_rule, ifs);
          }
  
--- 3400,3418 ----
                  is->is_pnext = NULL;
          }
   
          if (ifs->ifs_ipstate_logging != 0 && why != 0)
                  ipstate_log(is, why, ifs);
! #if 0
!         /*
!          * For now, ipf_log_cfwlog() copes with all "why" values.
!          * strictly speaking, though, they all map to one event, which for
!          * now is not supported.
!          */
!         if (why != 0 && IFS_CFWLOG(ifs))
!                 ipf_log_cfwlog(is, why, ifs);
! #endif
          if (is->is_rule != NULL) {
                  is->is_rule->fr_statecnt--;
                  (void)fr_derefrule(&is->is_rule, ifs);
          }
  
*** 3929,3939 ****
          }
  
          return rval;
  }
  
- 
  /* ------------------------------------------------------------------------ */
  /* Function:    ipstate_log                                                 */
  /* Returns:     Nil                                                         */
  /* Parameters:  is(I)   - pointer to state structure                        */
  /*              type(I) - type of log entry to create                       */
--- 3942,3951 ----