- ret = sscanf(str_uri + strlen(net), "://%255[^:]:%u:%u", dst,
- &ctrl_port, &data_port);
- if (ret < 0) {
- printf("bad URI\n");
- goto error;
+ if (sscanf(str_uri + str_offset, "://%255[^:]:%u:%u/%s", dst, &ctrl_port,
+ &data_port, subdir) == 4) {
+ /* All set */
+ } else if (sscanf(str_uri + str_offset, "://%255[^:]:%u:%u", dst,
+ &ctrl_port, &data_port) == 3) {
+ } else if (sscanf(str_uri + str_offset, "://%255[^:]:%u/%s", dst,
+ &ctrl_port, subdir) == 3) {
+ } else if (sscanf(str_uri + str_offset, "://%255[^:]:%u", dst,
+ &ctrl_port) == 2) {
+ } else if (sscanf(str_uri + str_offset, "://%255[^/]/%s", dst,
+ subdir) == 2) {
+ } else {
+ ret = sscanf(str_uri + str_offset, "://%255[^:]", dst);
+ if (ret < 0) {
+ ERR("Bad URI");
+ goto error;
+ }