Lines Matching defs:dmd

134     struct dmdata *dmd;
146 dmd = calloc(1, sizeof(struct dmdata));
147 if (dmd == NULL) {
153 dmd->user.uid = (uid_t) -1;
154 dmd->user.gid = (gid_t) -1;
155 dmd->user.projid = (projid_t) -1;
159 dmd->pipeFD = dtlogin_create_pipe(displayNumber, dmd);
161 if (dmd->pipeFD == -1) {
162 free(dmd);
166 dmHandlerData = dmd;
170 (pointer) dmd);
216 struct dmdata *dmd = (struct dmdata *) data;
219 FD_SET(dmd->pipeFD, LastSelectMask);
228 struct dmdata *dmd = (struct dmdata *) data;
233 if (FD_ISSET(dmd->pipeFD, LastSelectMask))
235 FD_CLR(dmd->pipeFD, LastSelectMask);
236 dtlogin_receive_packet(dmd);
237 /* dmd may have been freed in dtlogin_receive_packet, do
244 dtlogin_create_pipe(int port, struct dmdata *dmd)
272 dmd->pipename = xstrdup(pipename);
280 static void dtlogin_close_pipe(struct dmdata *dmd)
283 DtloginWakeupHandler, dmd);
285 close(dmd->pipeFD);
286 remove(dmd->pipename);
287 free(dmd->pipename);
288 free(dmd->buf);
289 free(dmd->user.homedir);
290 free(dmd);
292 if (dmHandlerData == dmd) {
298 dtlogin_receive_packet(struct dmdata *dmd)
304 if (dmd->buf == NULL) {
305 dmd->bufsize = BUFLEN;
306 dmd->buf = malloc(dmd->bufsize);
307 dmd->buf[0] = '\0';
312 bufLen = strlen(dmd->buf);
318 if (bufLen > (dmd->bufsize/2)) {
319 dmd->bufsize += BUFLEN;
320 dmd->buf = realloc(dmd->buf, dmd->bufsize);
323 nbRead = read(dmd->pipeFD, dmd->buf + bufLen,
324 dmd->bufsize - bufLen - 1);
332 dtlogin_close_pipe(dmd);
338 dtlogin_close_pipe(dmd);
343 dmd->buf[bufLen] = '\0';
345 DtloginInfo("Data buffer: %s\n", dmd->buf);
347 p = dmd->buf;
351 done = dtlogin_parse_packet(dmd, p);
353 dtlogin_close_pipe(dmd); /* free's dmd */
360 if (p < (dmd->buf + bufLen)) {
362 strcpy(dmd->buf, p);
375 dtlogin_parse_packet(struct dmdata *dmd, char *s)
379 while (s < (dmd->buf + dmd->bufsize)) {
421 /* Found key & value, now process & put into dmd */
424 dtlogin_process(&(dmd->user), 1);
428 dmd->user.homedir = xstrdup(v);
452 dmd->user.uid = (uid_t) val;
455 dmd->user.gid = (gid_t) val;
458 if (dmd->user.groupid_cnt < NGROUPS_UMAX) {
459 dmd->user.groupids[dmd->user.groupid_cnt++] = (gid_t) val;