mirror of
https://github.com/lxsang/antd-tunnel-publishers
synced 2024-12-26 18:08:21 +01:00
update vterm
This commit is contained in:
parent
02a0d95238
commit
625220000e
BIN
dist/antd-publishers-0.1.0a.tar.gz
vendored
BIN
dist/antd-publishers-0.1.0a.tar.gz
vendored
Binary file not shown.
@ -34,11 +34,21 @@ static void int_handler(int dummy) {
|
|||||||
running = 0;
|
running = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static vterm_proc_t* terminal_new(void)
|
static vterm_proc_t* terminal_new(const char* user)
|
||||||
{
|
{
|
||||||
int fdm, fds, rc;
|
int fdm, fds, rc;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
vterm_proc_t* proc = NULL;
|
vterm_proc_t* proc = NULL;
|
||||||
|
char cmd[64];
|
||||||
|
(void)memset(cmd, 0, sizeof(cmd));
|
||||||
|
if(user && strlen(user) > 0)
|
||||||
|
{
|
||||||
|
snprintf(cmd, sizeof(cmd),"TERM=linux sudo -iu %s", user);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
snprintf(cmd, sizeof(cmd),"TERM=linux login");
|
||||||
|
}
|
||||||
// Check arguments
|
// Check arguments
|
||||||
fdm = posix_openpt(O_RDWR);
|
fdm = posix_openpt(O_RDWR);
|
||||||
if (fdm < 0)
|
if (fdm < 0)
|
||||||
@ -112,7 +122,7 @@ static vterm_proc_t* terminal_new(void)
|
|||||||
ioctl(0, TIOCSCTTY, 1);
|
ioctl(0, TIOCSCTTY, 1);
|
||||||
|
|
||||||
//system("/bin/bash");
|
//system("/bin/bash");
|
||||||
rc = system("TERM=linux login");
|
rc = system(cmd);
|
||||||
//M_LOG("%s\n","Terminal exit");
|
//M_LOG("%s\n","Terminal exit");
|
||||||
_exit(1);
|
_exit(1);
|
||||||
}
|
}
|
||||||
@ -411,9 +421,9 @@ int main(int argc, char** argv)
|
|||||||
switch (msg.header.type)
|
switch (msg.header.type)
|
||||||
{
|
{
|
||||||
case CHANNEL_SUBSCRIBE:
|
case CHANNEL_SUBSCRIBE:
|
||||||
M_LOG(MODULE_NAME, "Client %d subscribes to the chanel", msg.header.client_id);
|
M_LOG(MODULE_NAME, "Client %d subscribes to the chanel with user [%s]", msg.header.client_id, msg.data);
|
||||||
// create new process
|
// create new process
|
||||||
vterm_proc_t* proc = terminal_new();
|
vterm_proc_t* proc = terminal_new(msg.data);
|
||||||
if(proc == NULL)
|
if(proc == NULL)
|
||||||
{
|
{
|
||||||
M_ERROR(MODULE_NAME, "Unable to create new terminal for client %d", msg.header.client_id);
|
M_ERROR(MODULE_NAME, "Unable to create new terminal for client %d", msg.header.client_id);
|
||||||
|
Loading…
Reference in New Issue
Block a user