version 1.6, 1998/08/18 04:02:15 |
version 1.7, 1999/03/03 20:43:30 |
|
|
itimer.it_value.tv_usec = 0; |
itimer.it_value.tv_usec = 0; |
itimer.it_interval = itimer.it_value; |
itimer.it_interval = itimer.it_value; |
if (listen(sockt, 5) != 0) |
if (listen(sockt, 5) != 0) |
p_error("Error on attempt to listen for caller"); |
quit("Error on attempt to listen for caller", 1); |
#ifdef MSG_EOR |
#ifdef MSG_EOR |
/* copy new style sockaddr to old, swap family (short in old) */ |
/* copy new style sockaddr to old, swap family (short in old) */ |
msg.addr = *(struct osockaddr *)&my_addr; /* XXX new to old style*/ |
msg.addr = *(struct osockaddr *)&my_addr; /* XXX new to old style*/ |
|
|
while ((new_sockt = accept(sockt, &rp, &rplen)) < 0) { |
while ((new_sockt = accept(sockt, &rp, &rplen)) < 0) { |
if (errno == EINTR) |
if (errno == EINTR) |
continue; |
continue; |
p_error("Unable to connect with your party"); |
quit("Unable to connect with your party", 1); |
} |
} |
close(sockt); |
close(sockt); |
sockt = new_sockt; |
sockt = new_sockt; |
|
|
current_state = "Trying to connect to your party's talk daemon"; |
current_state = "Trying to connect to your party's talk daemon"; |
ctl_transact(his_machine_addr, msg, ANNOUNCE, &response); |
ctl_transact(his_machine_addr, msg, ANNOUNCE, &response); |
remote_id = response.id_num; |
remote_id = response.id_num; |
if (response.answer != SUCCESS) { |
if (response.answer != SUCCESS) |
if (response.answer < NANSWERS) |
quit(response.answer < NANSWERS ? answers[response.answer] : NULL, 0); |
message(answers[response.answer]); |
|
quit(); |
|
} |
|
/* leave the actual invitation on my talk daemon */ |
/* leave the actual invitation on my talk daemon */ |
ctl_transact(my_machine_addr, msg, LEAVE_INVITE, &response); |
ctl_transact(my_machine_addr, msg, LEAVE_INVITE, &response); |
local_id = response.id_num; |
local_id = response.id_num; |