+ struct lls_parse_result *lpr = rn->lpr;
+ struct flowopts *fo = NULL;
+ uint8_t *ccids = NULL;
+ int fd, ret, i;
+ const struct lls_opt_result *r_c = RECV_CMD_OPT_RESULT(DCCP, CCID, lpr);
+ const char *host = RECV_CMD_OPT_STRING_VAL(DCCP, HOST, lpr);
+ uint32_t port = RECV_CMD_OPT_UINT32_VAL(DCCP, PORT, lpr);
+ unsigned given;
+
+ ret = dccp_recv_ccid_support_check(lpr);
+ if (ret < 0)
+ return ret;
+ /* Copy CCID preference list (u8 array required) */
+ given = lls_opt_given(r_c);
+ if (given) {
+ ccids = para_malloc(given);
+ fo = flowopt_new();
+ for (i = 0; i < given; i++)
+ ccids[i] = lls_int32_val(i, r_c);
+ OPT_ADD(fo, SOL_DCCP, DCCP_SOCKOPT_CCID, ccids, i);
+ }