MCPcopy Index your code
hub / github.com/1Panel-dev/1Panel / Operate

Method Operate

agent/app/service/iptables.go:156–293  ·  view source on GitHub ↗
(req dto.IptablesOp)

Source from the content-addressed store, hash-verified

154}
155
156func (s *IptablesService) Operate(req dto.IptablesOp) error {
157 targetChain := iptables.ChainInput
158 if req.Name == iptables.Chain1PanelOutput {
159 targetChain = iptables.ChainOutput
160 }
161 switch req.Operate {
162 case "init-base":
163 if ok := cmd.Which("iptables"); !ok {
164 return fmt.Errorf("failed to find iptables")
165 }
166 if err := iptables.AddChain(iptables.FilterTab, iptables.Chain1PanelBasicBefore); err != nil {
167 return err
168 }
169 if err := iptables.AddChain(iptables.FilterTab, iptables.Chain1PanelBasic); err != nil {
170 return err
171 }
172 if err := iptables.AddChain(iptables.FilterTab, iptables.Chain1PanelBasicAfter); err != nil {
173 return err
174 }
175 if err := initPreRules(); err != nil {
176 return err
177 }
178 if err := iptables.BindChain(iptables.FilterTab, iptables.ChainInput, iptables.Chain1PanelBasicBefore, 1); err != nil {
179 return err
180 }
181 if err := iptables.BindChain(iptables.FilterTab, iptables.ChainInput, iptables.Chain1PanelBasic, 2); err != nil {
182 return err
183 }
184 if err := iptables.BindChain(iptables.FilterTab, iptables.ChainInput, iptables.Chain1PanelBasicAfter, 3); err != nil {
185 return err
186 }
187 if err := iptables.SaveRulesToFile(iptables.FilterTab, iptables.Chain1PanelBasicBefore, iptables.BasicBeforeFileName); err != nil {
188 return err
189 }
190 if err := iptables.SaveRulesToFile(iptables.FilterTab, iptables.Chain1PanelBasic, iptables.BasicFileName); err != nil {
191 return err
192 }
193 if err := iptables.SaveRulesToFile(iptables.FilterTab, iptables.Chain1PanelBasicAfter, iptables.BasicAfterFileName); err != nil {
194 return err
195 }
196 _ = settingRepo.Update("IptablesStatus", constant.StatusEnable)
197 return nil
198 case "init-forward":
199 if err := client.EnableIptablesForward(); err != nil {
200 return err
201 }
202 _ = settingRepo.Update("IptablesForwardStatus", constant.StatusEnable)
203 return nil
204 case "init-advance":
205 if err := iptables.AddChain(iptables.FilterTab, iptables.Chain1PanelInput); err != nil {
206 return err
207 }
208 if err := iptables.AddChain(iptables.FilterTab, iptables.Chain1PanelOutput); err != nil {
209 return err
210 }
211 if err := iptables.BindChain(iptables.FilterTab, iptables.ChainOutput, iptables.Chain1PanelOutput, 1); err != nil {
212 return err
213 }

Callers 1

InitFunction · 0.95

Calls 3

initPreRulesFunction · 0.85
loadBindNumberFunction · 0.85
UpdateMethod · 0.65

Tested by

no test coverage detected