From: Romain Forlot Date: Sat, 22 Apr 2017 11:58:26 +0000 (+0200) Subject: Fix: opening bcm socket still trying to bind as a RAW socket. X-Git-Tag: 3.99.1~142 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=1ee784aca5696286f567a4504b22a11cdaa0d0f8;p=apps%2Flow-level-can-service.git Fix: opening bcm socket still trying to bind as a RAW socket. Wrong condition testing making connect and bind happens. Change-Id: Ic75a74d044e9763fdf42e50f7643b26ffaf5d76d Signed-off-by: Romain Forlot --- diff --git a/CAN-binder/low-can-binding/utils/socket.cpp b/CAN-binder/low-can-binding/utils/socket.cpp index 01937ed..f4a3011 100644 --- a/CAN-binder/low-can-binding/utils/socket.cpp +++ b/CAN-binder/low-can-binding/utils/socket.cpp @@ -127,10 +127,13 @@ namespace utils txAddress_.can_family = AF_CAN; txAddress_.can_ifindex = ifr.ifr_ifindex; - if(bcm && connect((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0) + if(bcm) { - ERROR(binder_interface, "%s: Connect failed. %s", __FUNCTION__, strerror(errno)); - close(); + if(connect((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0) + { + ERROR(binder_interface, "%s: Connect failed. %s", __FUNCTION__, strerror(errno)); + close(); + } } // It's a RAW socket request, bind it to txAddress else if(bind((struct sockaddr *)&txAddress_, sizeof(txAddress_)) < 0)