Ignore unreadable TLVs during LLCP activation and CONNECT/CC.

The LLCP specification defines that if a TLV cannot be interpreted,
it shall be ignored rather than generating an error.

This patch removed all error reporting on TLV interpretation. The
only error that can still happen is length inconsistency in the
whole TLV array buffer.

Change-Id: Ibf289fceb2283bfddcdc0ddee9e687ece3e90887
diff --git a/src/phFriNfc_Llcp.c b/src/phFriNfc_Llcp.c
index 13f1f92..ac38311 100644
--- a/src/phFriNfc_Llcp.c
+++ b/src/phFriNfc_Llcp.c
@@ -408,7 +408,7 @@
             if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_VERSION)
             {
                /* Error : Ill-formed VERSION parameter TLV */
-               return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+               break;
             }
             /* Get VERSION */
             version = sValueBuffer.buffer[0];
@@ -420,7 +420,7 @@
             if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_MIUX)
             {
                /* Error : Ill-formed MIUX parameter TLV */
-               return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+               break;
             }
             /* Get MIU */
             sParams.miu = PHFRINFC_LLCP_MIU_DEFAULT + ((sValueBuffer.buffer[0] << 8) | sValueBuffer.buffer[1]) & PHFRINFC_LLCP_TLV_MIUX_MASK;
@@ -432,7 +432,7 @@
             if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_WKS)
             {
                /* Error : Ill-formed MIUX parameter TLV */
-               return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+               break;
             }
             /* Get WKS */
             sParams.wks = (sValueBuffer.buffer[0] << 8) | sValueBuffer.buffer[1];
@@ -446,7 +446,7 @@
             if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_LTO)
             {
                /* Error : Ill-formed LTO parameter TLV */
-               return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+               break;
             }
             /* Get LTO */
             sParams.lto = sValueBuffer.buffer[0];
@@ -458,7 +458,7 @@
             if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_OPT)
             {
                /* Error : Ill-formed OPT parameter TLV */
-               return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+               break;;
             }
             /* Get OPT */
             sParams.option = sValueBuffer.buffer[0] & PHFRINFC_LLCP_TLV_OPT_MASK;
@@ -467,7 +467,7 @@
          default:
          {
             /* Error : Unknown Type */
-            return PHNFCSTVAL(CID_FRI_NFC_LLCP, NFCSTATUS_INVALID_PARAMETER);
+            break;
          }
       }
    }
diff --git a/src/phFriNfc_LlcpTransport_Connection.c b/src/phFriNfc_LlcpTransport_Connection.c
index fff63b4..fcdb246 100644
--- a/src/phFriNfc_LlcpTransport_Connection.c
+++ b/src/phFriNfc_LlcpTransport_Connection.c
@@ -627,7 +627,7 @@
                if(sValueBuffer.length == 0)
                {
                   /* Error : Ill-formed SN parameter TLV */
-                  return PHNFCSTVAL(CID_FRI_NFC_LLCP,NFCSTATUS_INVALID_PARAMETER);
+                  break;
                }
                /* Get the Service Name */
                *psServiceName = sValueBuffer;
@@ -639,7 +639,7 @@
                if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_RW)
                {
                   /* Error : Ill-formed MIUX parameter TLV */
-                  return PHNFCSTVAL(CID_FRI_NFC_LLCP,NFCSTATUS_INVALID_PARAMETER);
+                  break;
                }
                *pRemoteRW_Size = sValueBuffer.buffer[0];
             }break;
@@ -650,10 +650,16 @@
                if (sValueBuffer.length != PHFRINFC_LLCP_TLV_LENGTH_MIUX)
                {
                   /* Error : Ill-formed MIUX parameter TLV */
-                  return PHNFCSTVAL(CID_FRI_NFC_LLCP,NFCSTATUS_INVALID_PARAMETER);
+                  break;
                }
                *pRemoteMIU = PHFRINFC_LLCP_MIU_DEFAULT + (((sValueBuffer.buffer[0] << 8) | sValueBuffer.buffer[1]) & PHFRINFC_LLCP_TLV_MIUX_MASK);
             }break;
+
+            default:
+            {
+               /* Error : Unknown type */
+               break;
+            }
          }
       }
    }