version 1.20, 2009/09/23 06:12:58 |
version 1.21, 2009/09/23 06:18:47 |
|
|
{ |
{ |
struct imsg imsg; |
struct imsg imsg; |
struct msg_print_data printdata; |
struct msg_print_data printdata; |
|
struct msg_lock_data lockdata; |
ssize_t n, datalen; |
ssize_t n, datalen; |
|
|
for (;;) { |
for (;;) { |
|
|
fatalx("bad MSG_SUSPEND size"); |
fatalx("bad MSG_SUSPEND size"); |
|
|
client_suspend(); |
client_suspend(); |
|
break; |
|
case MSG_LOCK: |
|
if (datalen != sizeof lockdata) |
|
fatalx("bad MSG_LOCK size"); |
|
memcpy(&lockdata, imsg.data, sizeof lockdata); |
|
|
|
lockdata.cmd[(sizeof lockdata.cmd) - 1] = '\0'; |
|
system(lockdata.cmd); |
|
client_write_server(cctx, MSG_UNLOCK, NULL, 0); |
break; |
break; |
default: |
default: |
fatalx("unexpected message"); |
fatalx("unexpected message"); |