(capabilities []string)
| 146 | } |
| 147 | |
| 148 | func (pc *NetProtocolCapabilities) parseCapabilities(capabilities []string) error { |
| 149 | // The capabilities are all bools so we can loop over to map them |
| 150 | capabilityFields := [...]*bool{ |
| 151 | &pc.Close, |
| 152 | &pc.Connect, |
| 153 | &pc.Disconnect, |
| 154 | &pc.Accept, |
| 155 | &pc.IoCtl, |
| 156 | &pc.Init, |
| 157 | &pc.Destroy, |
| 158 | &pc.Shutdown, |
| 159 | &pc.SetSockOpt, |
| 160 | &pc.GetSockOpt, |
| 161 | &pc.SendMsg, |
| 162 | &pc.RecvMsg, |
| 163 | &pc.SendPage, |
| 164 | &pc.Bind, |
| 165 | &pc.BacklogRcv, |
| 166 | &pc.Hash, |
| 167 | &pc.UnHash, |
| 168 | &pc.GetPort, |
| 169 | &pc.EnterMemoryPressure, |
| 170 | } |
| 171 | |
| 172 | for i := range capabilities { |
| 173 | switch capabilities[i] { |
| 174 | case "y": |
| 175 | *capabilityFields[i] = true |
| 176 | case "n": |
| 177 | *capabilityFields[i] = false |
| 178 | default: |
| 179 | return fmt.Errorf("%w: capability block for protocol: position %d", ErrFileParse, i) |
| 180 | } |
| 181 | } |
| 182 | return nil |
| 183 | } |
no outgoing calls