Lines Matching defs:pd
59 setprotoent_r(int f, struct protoent_data *pd)
61 if (pd->fp == NULL) {
66 pd->fp = fopen(buffer, "re");
68 rewind(pd->fp);
69 pd->stayopen |= f;
73 endprotoent_r(struct protoent_data *pd)
75 if (pd->fp) {
76 (void)fclose(pd->fp);
77 pd->fp = NULL;
79 if (pd->aliases) {
80 free(pd->aliases);
81 pd->aliases = NULL;
82 pd->maxaliases = 0;
84 if (pd->line) {
85 free(pd->line);
86 pd->line = NULL;
88 pd->stayopen = 0;
92 getprotoent_r(struct protoent *pr, struct protoent_data *pd)
98 if (pd->fp == NULL)
99 setprotoent_r(0, pd);
100 if (pd->fp == NULL)
104 if (pd->line)
105 free(pd->line);
106 pd->line = fparseln(pd->fp, NULL, NULL, NULL,
108 if (pd->line == NULL)
110 pr->p_name = p = pd->line;
121 if (pd->aliases == NULL) {
122 pd->maxaliases = 10;
123 pd->aliases = malloc(pd->maxaliases * sizeof(char *));
124 if (pd->aliases == NULL) {
126 endprotoent_r(pd);
131 q = pr->p_aliases = pd->aliases;
139 if (i == pd->maxaliases - 2) {
140 pd->maxaliases *= 2;
142 pd->maxaliases * sizeof(char *));
145 endprotoent_r(pd);
149 pr->p_aliases = pd->aliases = q;