1212 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1313 * See the License for the specific language governing permissions and
1414 * limitations under the License.
15-
16- * Author: LemmyHuang
17- * Create: 2022-02-28
1815 */
1916
2017package maps
4037
4138func listenerToGolang (goMsg * listener_v2.Listener , cMsg * C.Listener__Listener ) error {
4239 buf := make ([]byte , C .listener__listener__get_packed_size (cMsg ))
40+ if len (buf ) == 0 {
41+ return nil
42+ }
4343
4444 C .listener__listener__pack (cMsg , convertToPack (buf ))
4545 if err := proto .Unmarshal (buf , goMsg ); err != nil {
@@ -53,6 +53,9 @@ func listenerToClang(goMsg *listener_v2.Listener) (*C.Listener__Listener, error)
5353 if err != nil {
5454 return nil , err
5555 }
56+ if len (buf ) == 0 {
57+ return nil , nil
58+ }
5659
5760 cMsg := C .listener__listener__unpack (nil , C .size_t (len (buf )), convertToPack (buf ))
5861 if cMsg == nil {
@@ -72,6 +75,9 @@ func ListenerLookup(key *core_v2.SocketAddress, value *listener_v2.Listener) err
7275 if err != nil {
7376 return fmt .Errorf ("ListenerLookup %s" , err )
7477 }
78+ if cKey == nil {
79+ return nil
80+ }
7581 defer socketAddressFreeClang (cKey )
7682
7783 desc := cKey .base .descriptor
@@ -96,12 +102,18 @@ func ListenerUpdate(key *core_v2.SocketAddress, value *listener_v2.Listener) err
96102 if err != nil {
97103 return fmt .Errorf ("ListenerLookup %s" , err )
98104 }
105+ if cKey == nil {
106+ return nil
107+ }
99108 defer socketAddressFreeClang (cKey )
100109
101110 cMsg , err := listenerToClang (value )
102111 if err != nil {
103112 return fmt .Errorf ("ListenerUpdate %s" , err )
104113 }
114+ if cMsg == nil {
115+ return nil
116+ }
105117 defer listenerFreeClang (cMsg )
106118
107119 testSocketAddress (key , cKey )
@@ -125,6 +137,9 @@ func ListenerDelete(key *core_v2.SocketAddress) error {
125137 if err != nil {
126138 return fmt .Errorf ("ListenerLookup %s" , err )
127139 }
140+ if cKey == nil {
141+ return nil
142+ }
128143 defer socketAddressFreeClang (cKey )
129144
130145 desc := cKey .base .descriptor
0 commit comments