Lines Matching refs:el_ent
81 extern int cp_cfent(struct cfent *cf_ent, struct cfextra *el_ent);
97 static int merg(struct cfextra *el_ent, struct cfent *cf_ent);
98 static int do_like_ent(VFP_T *vfpo, struct cfextra *el_ent,
100 static int do_new_ent(VFP_T *vfpo, struct cfextra *el_ent, int ctrl);
101 static int typechg(struct cfent *el_ent, struct cfent *cf_ent,
104 static void set_change(struct cfextra *el_ent);
119 struct cfextra *el_ent; /* extlist entry under review */ in pkgdbmerg() local
130 for (eptnum = 0; (el_ent = extlist[eptnum]) != NULL; eptnum++) { in pkgdbmerg()
136 if ((el_ent->cf_ent.ftype == 'i') || in pkgdbmerg()
137 (el_ent->cf_ent.ftype == 'n')) { in pkgdbmerg()
146 if ((eptnum > 0) && (strncmp(el_ent->cf_ent.path, in pkgdbmerg()
166 if (cl_dvfy(el_ent->cf_ent.pkg_class_idx) == in pkgdbmerg()
180 if (cl_dvfy(el_ent->cf_ent.pkg_class_idx) == in pkgdbmerg()
183 cl_nam(el_ent->cf_ent.pkg_class_idx)); in pkgdbmerg()
188 cl_def_dverify(el_ent->cf_ent.pkg_class_idx); in pkgdbmerg()
196 if (is_setuid(&(el_ent->cf_ent))) { in pkgdbmerg()
197 el_ent->mstat.setuid = 1; in pkgdbmerg()
199 if (is_setgid(&(el_ent->cf_ent))) { in pkgdbmerg()
200 el_ent->mstat.setgid = 1; in pkgdbmerg()
207 if (nosetuid && (el_ent->mstat.setgid || in pkgdbmerg()
208 el_ent->mstat.setuid)) { in pkgdbmerg()
209 el_ent->cf_ent.ainfo.mode &= ~(S_ISUID | S_ISGID); in pkgdbmerg()
213 n = srchcfile(&cf_ent, el_ent->cf_ent.path, server); in pkgdbmerg()
239 el_ent->mstat.osetuid = 1; in pkgdbmerg()
243 el_ent->mstat.osetgid = 1; in pkgdbmerg()
253 (el_ent->cf_ent.ftype == 'd')) { in pkgdbmerg()
255 int plen = strlen(el_ent->cf_ent.path); in pkgdbmerg()
257 if (strncmp(el_ent->cf_ent.path, in pkgdbmerg()
266 if (do_like_ent(tmpvfp, el_ent, &cf_ent, assume_ok)) { in pkgdbmerg()
274 if (do_new_ent(tmpvfp, el_ent, assume_ok)) { in pkgdbmerg()
290 do_like_ent(VFP_T *vfpo, struct cfextra *el_ent, struct cfent *cf_ent, int ctrl) in do_like_ent() argument
305 if (el_ent->mstat.preloaded) { in do_like_ent()
319 cf_ent->pinfo = el_ent->cf_ent.pinfo; in do_like_ent()
327 el_ent->mstat.shared = 1; in do_like_ent()
330 if (el_ent->cf_ent.ftype == RM_RDY) { in do_like_ent()
356 el_ent->cf_ent.pinfo = in do_like_ent()
359 el_ent->cf_ent.pinfo->next = NULL; in do_like_ent()
360 el_ent->cf_ent.pinfo->status = SERVED_FILE; in do_like_ent()
384 if ((nocnflct && el_ent->mstat.shared && el_ent->cf_ent.ftype != 'e')) { in do_like_ent()
389 set_change(el_ent); in do_like_ent()
395 if (cp_cfent(cf_ent, el_ent) == 0) in do_like_ent()
400 mrg_result = merg(el_ent, cf_ent); in do_like_ent()
418 el_ent->mstat.contchg = 1; /* subject to change */ in do_like_ent()
428 if (!el_ent->mstat.contchg && !ignore) { in do_like_ent()
433 set_change(el_ent); in do_like_ent()
442 pkgpinfo = eptstat(&(el_ent->cf_ent), pkginst, in do_like_ent()
455 if (is_served(el_ent->server_path, in do_like_ent()
456 &(el_ent->fsys_value))) in do_like_ent()
459 if (!ignore && el_ent->mstat.contchg) { in do_like_ent()
461 eptstat(&(el_ent->cf_ent), pkginst, in do_like_ent()
463 } else if (!ignore && el_ent->mstat.attrchg) { in do_like_ent()
465 eptstat(&(el_ent->cf_ent), pkginst, in do_like_ent()
467 } else if (!ignore && el_ent->mstat.shared) { in do_like_ent()
469 eptstat(&(el_ent->cf_ent), pkginst, in do_like_ent()
473 pkgpinfo = eptstat(&(el_ent->cf_ent), in do_like_ent()
489 output(vfpo, &(el_ent->cf_ent), pkgpinfo); in do_like_ent()
494 (void) strcpy(el_ent->cf_ent.pkg_class, pkgpinfo->aclass); in do_like_ent()
503 if (el_ent->mstat.contchg && pkgpinfo->status == INST_RDY) { in do_like_ent()
507 if (!(el_ent->mstat.preloaded)) in do_like_ent()
508 el_ent->cf_ent.pinfo = NULL; in do_like_ent()
514 if (!el_ent->mstat.attrchg && !el_ent->mstat.contchg && in do_like_ent()
515 !el_ent->mstat.replace) in do_like_ent()
522 do_new_ent(VFP_T *vfpo, struct cfextra *el_ent, int ctrl) in do_new_ent() argument
528 if (el_ent->cf_ent.ftype == RM_RDY) { in do_new_ent()
532 tp = el_ent->server_path; in do_new_ent()
541 if ((!el_ent->mstat.parentsyml2dir) && (access(tp, F_OK) == 0)) { in do_new_ent()
551 el_ent->mstat.shared = 1; in do_new_ent()
552 el_ent->mstat.rogue = 1; in do_new_ent()
553 set_change(el_ent); in do_new_ent()
556 el_ent->mstat.rogue = 0; in do_new_ent()
557 el_ent->mstat.contchg = 1; in do_new_ent()
558 el_ent->mstat.attrchg = 1; in do_new_ent()
561 if (el_ent->cf_ent.ainfo.mode == WILDCARD) { in do_new_ent()
562 if (el_ent->cf_ent.ftype == 'd') { in do_new_ent()
563 el_ent->cf_ent.ainfo.mode = DEFAULT_MODE; in do_new_ent()
565 el_ent->cf_ent.ainfo.mode = DEFAULT_MODE_FILE; in do_new_ent()
567 logerr(WRN_SET_DEF_MODE, el_ent->cf_ent.path, in do_new_ent()
568 (int)el_ent->cf_ent.ainfo.mode); in do_new_ent()
571 if (strcmp(el_ent->cf_ent.ainfo.owner, DB_UNDEFINED_ENTRY) == 0) in do_new_ent()
572 (void) strcpy(el_ent->cf_ent.ainfo.owner, in do_new_ent()
574 if (strcmp(el_ent->cf_ent.ainfo.group, DB_UNDEFINED_ENTRY) == 0) in do_new_ent()
575 (void) strcpy(el_ent->cf_ent.ainfo.group, in do_new_ent()
583 if (nocnflct && el_ent->mstat.shared) { in do_new_ent()
588 if (el_ent->mstat.preloaded) { in do_new_ent()
590 pinfo = eptstat(&(el_ent->cf_ent), pkginst, DUP_ENTRY); in do_new_ent()
592 el_ent->cf_ent.npkgs = 1; in do_new_ent()
599 el_ent->cf_ent.pinfo = pinfo; in do_new_ent()
611 if (is_served(el_ent->server_path, in do_new_ent()
612 &(el_ent->fsys_value))) in do_new_ent()
618 output(vfpo, &(el_ent->cf_ent), pinfo); in do_new_ent()
622 el_ent->cf_ent.pinfo = NULL; in do_new_ent()
624 if (!el_ent->mstat.attrchg && !el_ent->mstat.contchg) { in do_new_ent()
643 set_change(struct cfextra *el_ent) in set_change() argument
648 tp = el_ent->server_path; in set_change()
649 if ((el_ent->cf_ent.ftype == 'f') || (el_ent->cf_ent.ftype == 'e') || in set_change()
650 (el_ent->cf_ent.ftype == 'v')) { in set_change()
651 if (cverify(0, &(el_ent->cf_ent.ftype), tp, in set_change()
652 &(el_ent->cf_ent.cinfo), 1)) { in set_change()
653 el_ent->mstat.contchg = 1; in set_change()
654 } else if (!el_ent->mstat.contchg && !el_ent->mstat.attrchg) { in set_change()
655 if (averify(0, &(el_ent->cf_ent.ftype), tp, in set_change()
656 &(el_ent->cf_ent.ainfo))) in set_change()
657 el_ent->mstat.attrchg = 1; in set_change()
659 } else if (!el_ent->mstat.attrchg && in set_change()
660 ((el_ent->cf_ent.ftype == 'd') || in set_change()
661 (el_ent->cf_ent.ftype == 'x') || in set_change()
662 (el_ent->cf_ent.ftype == 'c') || in set_change()
663 (el_ent->cf_ent.ftype == 'b') || in set_change()
664 (el_ent->cf_ent.ftype == 'p'))) { in set_change()
665 n = averify(0, &(el_ent->cf_ent.ftype), tp, in set_change()
666 &(el_ent->cf_ent.ainfo)); in set_change()
668 el_ent->mstat.attrchg = 1; in set_change()
670 el_ent->mstat.contchg = 1; in set_change()
672 } else if (!el_ent->mstat.attrchg && in set_change()
673 ((el_ent->cf_ent.ftype == 's') || in set_change()
674 (el_ent->cf_ent.ftype == 'l'))) { in set_change()
675 n = averify(0, &(el_ent->cf_ent.ftype), tp, in set_change()
676 &(el_ent->cf_ent.ainfo)); in set_change()
678 el_ent->mstat.attrchg = 1; in set_change()
680 el_ent->mstat.contchg = 1; in set_change()
727 typechg(struct cfent *el_ent, struct cfent *cf_ent, struct mergstat *mstat) in typechg() argument
732 if (cf_ent->ftype == el_ent->ftype) in typechg()
740 cf_ent->ftype = el_ent->ftype; in typechg()
745 if (el_ent->ftype == BADFTYPE) in typechg()
753 if (el_ent->ftype == 'x' && cf_ent->ftype == 'd') { in typechg()
754 logerr(gettext(WRN_TOEXCL), el_ent->path); in typechg()
762 if (strchr(types[i], el_ent->ftype)) { in typechg()
795 logerr(gettext(WRN_NOTFILE), el_ent->path); in typechg()
799 logerr(gettext(WRN_NOTSYMLN), el_ent->path); in typechg()
803 logerr(gettext(WRN_NOTLINK), el_ent->path); in typechg()
807 logerr(gettext(WRN_NOTDIR), el_ent->path); in typechg()
811 logerr(gettext(WRN_NOTCHAR), el_ent->path); in typechg()
815 logerr(gettext(WRN_NOTBLOCK), el_ent->path); in typechg()
819 logerr(gettext(WRN_NOTPIPE), el_ent->path); in typechg()
843 merg(struct cfextra *el_ent, struct cfent *cf_ent) in merg() argument
857 el_ent->cf_ent.pinfo = cf_ent->pinfo; in merg()
859 if (dbst == INST_RDY && el_ent->cf_ent.ftype == '?') { in merg()
860 el_ent->cf_ent.ftype = cf_ent->ftype; in merg()
868 if (cf_ent->ftype != el_ent->cf_ent.ftype) { in merg()
869 n = typechg(&(el_ent->cf_ent), cf_ent, &(el_ent->mstat)); in merg()
877 el_ent->mstat.contchg = 1; in merg()
883 if (cp_cfent(cf_ent, el_ent) == 0) in merg()
889 el_ent->mstat.replace = 1; in merg()
905 if (strcmp(cf_ent->pkg_class, el_ent->cf_ent.pkg_class)) { in merg()
913 el_ent->cf_ent.pkg_class); in merg()
914 (void) strcpy(el_ent->cf_ent.pkg_class, in merg()
916 chgclass(&(el_ent->cf_ent), pkgpinfo); in merg()
924 if (((el_ent->cf_ent.ftype == 's') || (el_ent->cf_ent.ftype == 'l'))) { in merg()
927 if (cf_ent->ainfo.local && el_ent->cf_ent.ainfo.local) { in merg()
933 el_ent->cf_ent.ainfo.local) != NULL) { in merg()
941 if (strcmp(el_ent->cf_ent.ainfo.local, in merg()
944 el_ent->cf_ent.ainfo.local, in merg()
948 el_ent->mstat.contchg = 1; in merg()
954 } else if (el_ent->cf_ent.ftype == 'e') { in merg()
961 el_ent->mstat.contchg = 1; in merg()
963 } else if (((el_ent->cf_ent.ftype == 'f') || in merg()
964 (el_ent->cf_ent.ftype == 'v'))) { in merg()
974 if (cf_ent->cinfo.size != el_ent->cf_ent.cinfo.size) { in merg()
976 el_ent->mstat.contchg = 1; in merg()
978 el_ent->cf_ent.cinfo.modtime) { in merg()
980 el_ent->mstat.contchg = 1; in merg()
981 } else if (cf_ent->cinfo.cksum != el_ent->cf_ent.cinfo.cksum) { in merg()
983 el_ent->mstat.contchg = 1; in merg()
985 } else if (((el_ent->cf_ent.ftype == 'c') || in merg()
986 (el_ent->cf_ent.ftype == 'b'))) { in merg()
993 if (cf_ent->ainfo.major != el_ent->cf_ent.ainfo.major) { in merg()
995 if (el_ent->cf_ent.ainfo.major == BADMAJOR) { in merg()
996 el_ent->cf_ent.ainfo.major = in merg()
999 el_ent->mstat.contchg = 1; in merg()
1002 if (cf_ent->ainfo.minor != el_ent->cf_ent.ainfo.minor) { in merg()
1004 if (el_ent->cf_ent.ainfo.minor == BADMINOR) in merg()
1005 el_ent->cf_ent.ainfo.minor = in merg()
1008 el_ent->mstat.contchg = 1; in merg()
1016 if (cf_ent->ainfo.mode != el_ent->cf_ent.ainfo.mode) { in merg()
1018 if (el_ent->cf_ent.ainfo.mode == BADMODE) { in merg()
1019 el_ent->cf_ent.ainfo.mode = cf_ent->ainfo.mode; in merg()
1020 } else if (el_ent->cf_ent.ainfo.mode == WILDCARD) { in merg()
1025 el_ent->cf_ent.ainfo.mode = cf_ent->ainfo.mode; in merg()
1026 el_ent->mstat.attrchg = 0; in merg()
1028 el_ent->mstat.attrchg = 1; in merg()
1031 if (strcmp(cf_ent->ainfo.owner, el_ent->cf_ent.ainfo.owner) != 0) { in merg()
1033 if (strcmp(el_ent->cf_ent.ainfo.owner, BADOWNER) == 0) in merg()
1034 (void) strcpy(el_ent->cf_ent.ainfo.owner, in merg()
1037 el_ent->mstat.attrchg = 1; in merg()
1039 if (strcmp(cf_ent->ainfo.group, el_ent->cf_ent.ainfo.group) != 0) { in merg()
1041 if (strcmp(el_ent->cf_ent.ainfo.group, BADGROUP) == 0) in merg()
1042 (void) strcpy(el_ent->cf_ent.ainfo.group, in merg()
1045 el_ent->mstat.attrchg = 1; in merg()