ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/netproc.c
(Generate patch)

Comparing ray/src/util/netproc.c (file contents):
Revision 2.5 by greg, Mon Jun 24 10:06:40 1996 UTC vs.
Revision 2.13 by greg, Mon Nov 10 16:52:24 2003 UTC

# Line 1 | Line 1
1 /* Copyright (c) 1996 Regents of the University of California */
2
1   #ifndef lint
2 < static char SCCSid[] = "$SunId$ LBL";
2 > static const char       RCSid[] = "$Id$";
3   #endif
6
4   /*
5   * Parallel network process handling routines
6   */
7  
8 + #include <stdlib.h>
9   #include <stdio.h>
10 < #include <sys/types.h>
10 > #include <string.h>
11   #include <signal.h>
12   #include <fcntl.h>
13 + #include <unistd.h>
14 +
15 + #include "selcall.h"
16   #include "netproc.h"
17   #include "paths.h"
17 #include "vfork.h"
18                                        /* select call compatibility stuff */
19 #ifndef FD_SETSIZE
20 #include <sys/param.h>
21 #define FD_SETSIZE      NOFILE          /* maximum # select file descriptors */
22 #endif
23 #ifndef FD_SET
24 #ifndef NFDBITS
25 #define NFDBITS         (8*sizeof(int)) /* number of bits per fd_mask */
26 #endif
27 #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
28 #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
29 #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
30 #ifndef BSD
31 #define bzero(d,n)      (void)memset(d,0,n)
32 #endif
33 #define FD_ZERO(p)      bzero((char *)(p), sizeof(*(p)))
34 #endif
18  
19   PSERVER *pslist = NULL;         /* global process server list */
20  
21 < static PROC     *pindex[FD_SETSIZE];    /* process index table */
21 > static NETPROC  *pindex[FD_SETSIZE];    /* process index table */
22  
23   static char     ourhost[64];    /* this host name */
24 < static char     ourdir[MAXPATH];        /* our working directory */
24 > static char     ourdir[PATH_MAX];       /* our working directory */
25   static char     ouruser[32];    /* our user name */
26   static char     *ourshell;      /* our user's shell */
27  
# Line 47 | Line 30 | static int     maxfd;          /* maximum assigned descriptor */
30  
31   extern char     *remsh;         /* externally defined remote shell program */
32  
50 extern char     *malloc(), *realloc();
51 extern char     *getenv();
33  
53
34   PSERVER *
35   addpserver(host, dir, usr, np)          /* add a new process server */
36   char    *host, *dir, *usr;
# Line 60 | Line 40 | int    np;
40                                          /* allocate the struct */
41          if (np < 1)
42                  return(NULL);
43 <        ps = (PSERVER *)malloc(sizeof(PSERVER)+(np-1)*sizeof(PROC));
43 >        ps = (PSERVER *)malloc(sizeof(PSERVER)+(np-1)*sizeof(NETPROC));
44          if (ps == NULL)
45                  return(NULL);
46          if (!ourhost[0]) {              /* initialize */
47 <                char    dirtmp[MAXPATH];
47 >                char    dirtmp[PATH_MAX];
48                  register char   *cp;
49                  register int    len;
50  
51                  strcpy(ourhost, myhostname());
52 <                getwd(dirtmp);
52 >                getcwd(dirtmp, sizeof(dirtmp));
53                  if ((cp = getenv("HOME")) != NULL) {
54                          if (!strcmp(cp, dirtmp))
55                                  ourdir[0] = '\0';
# Line 143 | Line 123 | PSERVER        *ps;
123                                          /* remove server from list */
124          psp->next = ps->next;
125          pslist = pstart.next;
126 <        free((char *)ps);               /* free associated memory */
126 >        free((void *)ps);               /* free associated memory */
127   }
128  
129  
# Line 170 | Line 150 | register PSERVER       *ps;
150   char    *command;
151   int     (*compf)();
152   {
153 <        char    udirt[MAXPATH];
153 >        char    udirt[PATH_MAX];
154          char    *av[16];
155          int     pfd[2], pid;
156          register int    i;
# Line 251 | Line 231 | int    fd;
231   {
232          char    errbuf[BUFSIZ];
233          int     nr;
234 <        register PROC   *pp;
234 >        register NETPROC        *pp;
235                                  /* look up associated process */
236          if ((pp = pindex[fd]) == NULL)
237                  abort();                /* serious consistency error */
# Line 266 | Line 246 | int    fd;
246          if (pp->elen == 0)
247                  pp->errs = (char *)malloc(nr+1);
248          else
249 <                pp->errs = (char *)realloc(pp->errs, pp->elen+nr+1);
249 >                pp->errs = (char *)realloc((void *)pp->errs, pp->elen+nr+1);
250          if (pp->errs == NULL) {
251                  perror("malloc failed");
252                  exit(1);
# Line 305 | Line 285 | PSERVER        *ps;
285   int     pn;
286   int     status;
287   {
288 <        register PROC   *pp;
288 >        register NETPROC        *pp;
289  
290          pp = ps->proc + pn;
291          if (pp->cf != NULL)                     /* client cleanup */
# Line 313 | Line 293 | int    status;
293          close(pp->efd);                         /* close error stream */
294          pindex[pp->efd] = NULL;
295          FD_CLR(pp->efd, &errdesc);
296 <        free((char *)pp->errs);
296 >        free((void *)pp->errs);
297          pp->com = NULL;                         /* clear settings */
298          pp->pid = -1;
299          pp->efd = -1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines