int ged_importFg4Section(struct ged *gedp, int argc, const char *argv[]) { char *cp; char *line; char *lines; int eosFlag = 0; static const char *usage = "obj section"; GED_CHECK_DATABASE_OPEN(gedp, GED_ERROR); GED_CHECK_READ_ONLY(gedp, GED_ERROR); GED_CHECK_ARGC_GT_0(gedp, argc, GED_ERROR); /* initialize result */ bu_vls_trunc(gedp->ged_result_str, 0); /* must be wanting help */ if (argc == 1) { bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return GED_HELP; } if (argc != 3) { bu_vls_printf(gedp->ged_result_str, "Usage: %s %s", argv[0], usage); return GED_ERROR; } grid_size = GRID_BLOCK; grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) , "importFg4Section: grid_pts"); lines = strdup(argv[2]); cp = line = lines; FIND_NEWLINE(cp, eosFlag); bu_strlcpy(field, line+8, sizeof(field)); group_id = atoi(field); bu_strlcpy(field, line+16, sizeof(field)); comp_id = atoi(field); region_id = group_id * 1000 + comp_id; if (comp_id > 999) { bu_log("Illegal component id number %d, changed to 999\n", comp_id); comp_id = 999; } bu_strlcpy(field, line+24, sizeof(field)); mode = atoi(field); if (mode != 1 && mode != 2) { bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n", mode, group_id, comp_id); mode = 2; } while (!eosFlag) { ++cp; line = cp; FIND_NEWLINE(cp, eosFlag); if (!bu_strncmp(line, "GRID", 4)) do_grid(line); else if (!bu_strncmp(line, "CTRI", 4)) do_tri(line); else if (!bu_strncmp(line, "CQUAD", 4)) do_quad(line); } make_bot_object(argv[1], gedp->ged_wdbp); free((void *)lines); bu_free((void *)grid_pts, "importFg4Section: grid_pts"); /* free memory associated with globals */ bu_free((void *)faces, "importFg4Section: faces"); bu_free((void *)thickness, "importFg4Section: thickness"); bu_free((void *)facemode, "importFg4Section: facemode"); faces = NULL; thickness = NULL; facemode = NULL; return TCL_OK; }
/* Read /etc/resolv.conf and configure the resolver from it. */ Boolean ssh_dns_resolver_read_resolv_conf(SshDNSResolver resolver, unsigned char *name) { #ifndef VXWORKS unsigned char *buffer, *p, *q, c; SshIpAddrStruct address[1]; size_t buffer_len; int i; if (!ssh_read_file_with_limit((char *)name, 65536, &buffer, &buffer_len)) return FALSE; ssh_dns_resolver_safety_belt_clear(resolver); i = 0; p = buffer; while (buffer_len > 0) { SKIP_SPACE(p, buffer_len); if (buffer_len < 10) break; if (strncasecmp((char *)p, "nameserver", 9) == 0 && isspace(p[10])) { p += 10; buffer_len -= 10; SKIP_SPACE(p, buffer_len); q = p; FIND_SPACE(q, buffer_len); c = *q; *q = '\0'; if (ssh_ipaddr_parse(address, p)) { ssh_dns_resolver_safety_belt_add(resolver, 1, address); i++; } *q = c; p = q; } FIND_NEWLINE(p, buffer_len); } ssh_free(buffer); if (i == 0) return FALSE; return TRUE; #else /* VXWORKS */ /* Get name server addresses from VxWorks name resolver. VxWorks resolver is enabled by defining: #define INCLUDE_DNS_RESOLVER #define RESOLVER_DOMAIN_SERVER "90.0.0.3" #define RESOLVER_DOMAIN "wrs.com" In $WIND_BASE/target/config/xxx/config.h or $WIND_BASEtarget/config/all/configAll.h. If INCLUDE_DNS_RESOLVER is not defined, VxWorks returns name server address 0.0.0.0. */ int i, addr_cnt; RESOLV_PARAMS_S resolv_params; SshIpAddrStruct address[1]; ssh_dns_resolver_safety_belt_clear(resolver); resolvParamsGet(&resolv_params); for(addr_cnt = i = 0; i < MAXNS; i++) { if (ssh_ipaddr_parse(address, resolv_params.nameServersAddr[i])) { ssh_dns_resolver_safety_belt_add(resolver, 1, address); addr_cnt++; } } return addr_cnt > 0; #endif }
int wdb_importFg4Section_cmd(struct rt_wdb *wdbp, Tcl_Interp *interp, int argc, char **argv) { char *cp; char *line; char *lines; int eosFlag = 0; if (argc != 3) { struct bu_vls vls; bu_vls_init(&vls); bu_vls_printf(&vls, "helplib_alias wdb_importFg4Section %s", argv[0]); Tcl_Eval(interp, bu_vls_addr(&vls)); bu_vls_free(&vls); return TCL_ERROR; } grid_size = GRID_BLOCK; grid_pts = (point_t *)bu_malloc(grid_size * sizeof(point_t) , "importFg4Section: grid_pts"); lines = strdup(argv[2]); cp = line = lines; FIND_NEWLINE(cp, eosFlag); bu_strlcpy(field, line+8, sizeof(field)); group_id = atoi(field); bu_strlcpy(field, line+16, sizeof(field)); comp_id = atoi(field); region_id = group_id * 1000 + comp_id; if (comp_id > 999) { bu_log( "Illegal component id number %d, changed to 999\n", comp_id ); comp_id = 999; } bu_strlcpy(field, line+24, sizeof(field)); mode = atoi(field); if (mode != 1 && mode != 2) { bu_log("Illegal mode (%d) for group %d component %d, using volume mode\n", mode, group_id, comp_id); mode = 2; } while (!eosFlag) { ++cp; line = cp; FIND_NEWLINE(cp, eosFlag); if (!strncmp(line, "GRID", 4)) do_grid(line); else if (!strncmp(line, "CTRI", 4)) do_tri(line); else if (!strncmp(line, "CQUAD", 4)) do_quad(line); } make_bot_object(argv[1], wdbp); free((void *)lines); bu_free((void *)grid_pts, "importFg4Section: grid_pts"); /* free memory associated with globals */ bu_free((void *)faces, "importFg4Section: faces"); bu_free((void *)thickness, "importFg4Section: thickness"); bu_free((void *)facemode, "importFg4Section: facemode"); faces = NULL; thickness = NULL; facemode = NULL; return TCL_OK; }