|
|
1.1 root 1: #include <ipc.h>
2: #include "defs.h"
3:
4: /*
5: * Perform a remote execution of a command.
6: */
7: ipcexec(name, param, cmd)
8: char *name;
9: char *param;
10: char *cmd;
11: {
12: return _ipcexec(name, "dk", "exec", param, cmd);
13: }
14:
15: ipcmesgexec(name, param, cmd)
16: char *name;
17: char *param;
18: char *cmd;
19: {
20: return _ipcexec(name, "dk", "mesgexec", param, cmd);
21: }
22:
23: _ipcexec(name, def, service, param, cmd)
24: char *name;
25: char *service;
26: char *def;
27: char *param;
28: char *cmd;
29: {
30: int fd, len;
31:
32: fd = ipcopen(ipcpath(name, def, service), param);
33: if (fd<0)
34: return -1;
35: if (ipclogin(fd)<0) {
36: close(fd);
37: return -1;
38: }
39: len = strlen(cmd)+1;
40: cmd[len-1] = '\n';
41: if (write(fd, cmd, len)!=len) {
42: errstr = "write error";
43: close(fd);
44: return -1;
45: }
46: cmd[len-1] = '\0';
47: return fd;
48: }
49:
50: ipcrexec(name, param, cmd)
51: char *name;
52: char *param;
53: char *cmd;
54: {
55: int fd;
56:
57: fd = ipcopen(ipcpath(name, "tcp", "tcp.514"), param);
58: if (fd<0)
59: return -1;
60: if (ipcrogin(fd, cmd)<0) {
61: close(fd);
62: return -1;
63: }
64: return fd;
65: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.