Lines Matching defs:iconf

307 servicename(struct inetconfent *iconf)
316 len = strlen(iconf->service) + strlen(iconf->protocol) +
325 (void) strlcpy(buf, propertyname(iconf->service,
326 iconf->isrpc ? "rpc-": "s-"), len);
329 proto = iconf->protocol;
330 if (iconf->isrpc && (strcmp(iconf->protocol, "rpc/*") == 0))
382 valid_basic_properties(struct inetconfent *iconf, struct fileinfo *finfo)
387 char *proto = iconf->protocol;
388 char *svc_name = iconf->service;
395 put_prop_value_boolean(prop, PR_ISRPC_NAME, iconf->isrpc);
396 put_prop_value_boolean(prop, PR_ISWAIT_NAME, iconf->wait);
397 if (iconf->isrpc) {
399 iconf->rpc_low_version);
401 iconf->rpc_high_version);
402 svc_name = iconf->rpc_prog;
406 if (!put_prop_value_string(prop, PR_SOCK_TYPE_NAME, iconf->endpoint) ||
433 valid_inetconfent(struct inetconfent *iconf, struct fileinfo *finfo)
441 char *proto = iconf->protocol;
443 iconf->isrpc = B_FALSE;
444 if (strncmp(iconf->protocol, "rpc/", 4) == 0) {
445 iconf->isrpc = B_TRUE;
446 iconf->rpc_prog = safe_strdup(iconf->service);
449 iconf->rpc_low_version = 1;
450 iconf->rpc_high_version = 1;
451 if ((cp = strrchr(iconf->rpc_prog, '/')) != NULL) {
455 iconf->rpc_low_version = strtol(cp, &endp, 10);
463 iconf->rpc_high_version = strtol(cp,
468 iconf->rpc_high_version =
469 iconf->rpc_low_version;
476 finfo->lineno, iconf->service);
491 if (strcmp(iconf->wait_status, "wait") == 0) {
492 iconf->wait = B_TRUE;
493 } else if (strcmp(iconf->wait_status, "nowait") == 0) {
494 iconf->wait = B_FALSE;
499 iconf->wait_status);
504 if ((pwd = getpwnam(iconf->username)) == NULL) {
508 iconf->username);
512 iconf->groupname = safe_strdup(grp->gr_name);
518 iconf->groupname = safe_malloc(len);
519 (void) snprintf(iconf->groupname, len, "%d",
525 if (strcmp(iconf->server_program, "internal") == 0) {
527 if ((strcmp(iconf->service, "echo") == 0) ||
528 (strcmp(iconf->service, "discard") == 0) ||
529 (strcmp(iconf->service, "time") == 0) ||
530 (strcmp(iconf->service, "daytime") == 0) ||
531 (strcmp(iconf->service, "chargen") == 0)) {
539 finfo->filename, finfo->lineno, iconf->service);
541 } else if ((stat(iconf->server_program, &statb) == -1) &&
546 iconf->server_program);
550 return (valid && valid_basic_properties(iconf, finfo));
554 free_inetconfent(struct inetconfent *iconf)
556 if (iconf == NULL)
559 free(iconf->service);
560 free(iconf->endpoint);
561 free(iconf->protocol);
562 free(iconf->wait_status);
563 free(iconf->username);
564 free(iconf->server_program);
565 free(iconf->server_args);
566 free(iconf->rpc_prog);
567 free(iconf->groupname);
568 free(iconf->exec);
569 free(iconf->arg0);
571 free(iconf);
578 struct inetconfent *iconf;
580 iconf = safe_malloc(sizeof (struct inetconfent));
581 (void) memset(iconf, 0, sizeof (struct inetconfent));
585 iconf->service = safe_strdup(cp);
589 iconf->endpoint = safe_strdup(cp);
593 iconf->protocol = safe_strdup(cp);
597 iconf->wait_status = safe_strdup(cp);
601 iconf->username = safe_strdup(cp);
605 iconf->server_program = safe_strdup(cp);
609 iconf->server_args = safe_strdup(cp);
612 if (iconf->server_args == NULL) {
613 iconf->exec = safe_strdup(iconf->server_program);
618 len = strlen(iconf->server_program) +
619 strlen(iconf->server_args) + 1;
620 iconf->exec = safe_malloc(len);
621 (void) strlcpy(iconf->exec, iconf->server_program, len);
623 args = safe_strdup(iconf->server_args);
625 if ((endp = strrchr(iconf->exec, '/')) == NULL)
626 endp = iconf->exec;
631 iconf->arg0 = safe_strdup(cp);
633 (void) strlcat(iconf->exec, " ", len);
634 (void) strlcat(iconf->exec, cp, len);
640 return (iconf);
642 free_inetconfent(iconf);
660 struct inetconfent *iconf;
689 if ((iconf = line_to_inetconfent(line)) == NULL) {
697 if (!validate || valid_inetconfent(iconf, finfo))
698 return (iconf);
701 free_inetconfent(iconf);
715 print_manifest(FILE *f, char *filename, struct inetconfent *iconf)
721 iconf->isrpc ? iconf->rpc_prog : iconf->service) < 0)
724 if (fprintf(f, xml_service_bundle, iconf->service) < 0)
726 if (fprintf(f, xml_service_name, servicename(iconf)) < 0)
732 if (iconf->isrpc) {
738 iconf->exec, PR_USER_NAME, iconf->username, iconf->groupname) < 0)
740 if (iconf->arg0 != NULL) {
741 if (fprintf(f, xml_arg0, PR_ARG0_NAME, iconf->arg0) < 0)
753 if (iconf->wait) {
764 PR_SOURCE_LINE_NAME, iconf->service,
765 iconf->endpoint, iconf->protocol, iconf->wait_status,
766 iconf->username, iconf->server_program,
767 iconf->server_args == NULL ? "" : " ",
768 iconf->server_args == NULL ? "" : iconf->server_args) < 0)
774 PR_SVC_NAME_NAME, iconf->isrpc ? iconf->rpc_prog : iconf->service,
775 PR_SOCK_TYPE_NAME, iconf->endpoint,
776 PR_PROTO_NAME, iconf->isrpc ? iconf->protocol + 4 :
777 iconf->protocol,
778 PR_ISWAIT_NAME, boolstr(iconf->wait),
779 PR_ISRPC_NAME, boolstr(iconf->isrpc)) < 0)
781 if (iconf->isrpc) {
783 PR_RPC_LW_VER_NAME, iconf->rpc_low_version,
784 PR_RPC_HI_VER_NAME, iconf->rpc_high_version) < 0)
793 iconf->isrpc ? iconf->rpc_prog : iconf->service) < 0)
798 (void) printf("%s -> %s\n", iconf->service, filename);
856 struct inetconfent *iconf,
866 if (iconf->isrpc)
872 len = strlen(destdir) + strlen(iconf->service) +
873 strlen(iconf->protocol) + sizeof ("/-visible.xml");
881 (void) strlcat(dstfile, iconf->service, len);
884 proto = iconf->protocol;
885 if (iconf->isrpc && (strcmp(iconf->protocol, "rpc/*") == 0))
902 progname, iconf->service, dstfile);
1225 struct inetconfent *iconf = (struct inetconfent *)buf;
1299 cp = strchr(iconf->service, '/');
1306 * iconf fields, and they're either both RPC or both non-RPC,
1312 if (strcmp(name, iconf->service) == 0 &&
1313 strcmp(endpoint, iconf->endpoint) == 0 &&
1314 *isrpc == (strncmp(iconf->protocol, "rpc/", 4) == 0)) {
1316 if ((strcmp(iconf->server_program, "internal") != 0) &&
1317 (strcmp(iconf->exec, prog) != 0)) {
1323 svc_name, PR_EXEC_NAME, iconf->exec);
1324 if (iconf->arg0 != NULL) {
1327 PR_ARG0_NAME, iconf->arg0);
1334 PR_EXEC_NAME, iconf->exec) != 1)
1343 iconf->exec);
1346 if (iconf->arg0 != NULL) {
1349 iconf->arg0) != 1) {
1359 PR_ARG0_NAME, iconf->arg0);
1414 struct inetconfent *iconf;
1477 while ((iconf = fgetinetconfent(srcfinfo, !enable)) != NULL) {
1483 rval = scf_simple_walk_instances(SCF_STATE_ALL, iconf,
1485 free_inetconfent(iconf);
1499 if ((rval = open_dstfile(destdir, overwrite, iconf, &dstfinfo))
1507 free_inetconfent(iconf);
1510 rval = print_manifest(dstfinfo->fp, dstfinfo->filename, iconf);
1522 free_inetconfent(iconf);