ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvtd.C
(Generate patch)

Comparing rxvt-unicode/src/rxvtd.C (file contents):
Revision 1.22 by root, Fri Dec 23 14:46:35 2005 UTC vs.
Revision 1.24 by root, Tue Jan 17 15:17:39 2006 UTC

71}; 71};
72 72
73unix_listener::unix_listener (const char *sockname) 73unix_listener::unix_listener (const char *sockname)
74: accept_ev (this, &unix_listener::accept_cb) 74: accept_ev (this, &unix_listener::accept_cb)
75{ 75{
76 if ((fd = socket (PF_UNIX, SOCK_STREAM, 0)) < 0) 76 if ((fd = socket (AF_UNIX, SOCK_STREAM, 0)) < 0)
77 { 77 {
78 perror ("unable to create listening socket"); 78 perror ("unable to create listening socket");
79 exit (EXIT_FAILURE); 79 exit (EXIT_FAILURE);
80 } 80 }
81 81
118 } 118 }
119} 119}
120 120
121int server::getfd (int remote_fd) 121int server::getfd (int remote_fd)
122{ 122{
123#if ENABLE_FRILLS && HAVE_UNIX_FDPASS
124 send ("GETFD"); 123 send ("GETFD");
125 send (remote_fd); 124 send (remote_fd);
126 return rxvt_recv_fd (fd); 125 return rxvt_recv_fd (fd);
127#else
128 return -1;
129#endif
130} 126}
131 127
132void server::log_msg (const char *msg) 128void server::log_msg (const char *msg)
133{ 129{
134 send ("MSG"), send (msg); 130 send ("MSG"), send (msg);
186 } 182 }
187 183
188 envv->push_back (0); 184 envv->push_back (0);
189 185
190 { 186 {
191 char **old_environ = environ;
192 environ = envv->begin ();
193
194 rxvt_term *term = new rxvt_term; 187 rxvt_term *term = new rxvt_term;
195 188
196 term->log_hook = &log_cb; 189 term->log_hook = &log_cb;
197 term->getfd_hook = &getfd_cb; 190 term->getfd_hook = &getfd_cb;
198 term->argv = argv; 191 term->argv = argv;
209 success = false; 202 success = false;
210 } 203 }
211 204
212 term->log_hook = 0; 205 term->log_hook = 0;
213 206
214 environ = old_environ;
215 chdir ("/"); 207 chdir ("/");
216 208
217 if (!success) 209 if (!success)
218 term->destroy (); 210 term->destroy ();
219 211

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines