summaryrefslogtreecommitdiff
path: root/src/ipcpd/ipcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd/ipcp.c')
-rw-r--r--src/ipcpd/ipcp.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c
index 24f580e5..5c066cb0 100644
--- a/src/ipcpd/ipcp.c
+++ b/src/ipcpd/ipcp.c
@@ -42,11 +42,22 @@ struct ipcp * ipcp_instance_create()
i->irmd_fd = -1;
i->state = IPCP_INIT;
- pthread_rwlock_init(&i->state_lock, NULL);
+ pthread_mutex_init(&i->state_lock, NULL);
+ pthread_cond_init(&i->state_cond, NULL);
return i;
}
+void ipcp_state_change(struct ipcp * ipcp,
+ enum ipcp_state state)
+{
+ if (ipcp == NULL)
+ return;
+
+ ipcp->state = state;
+ pthread_cond_broadcast(&ipcp->state_cond);
+}
+
int ipcp_parse_arg(int argc, char * argv[])
{
char * log_file;