X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=socket_server.c;h=166080dbc750160c4eb1bc1a0ccb75aa6e442a0f;hp=fd18ff5673072dc158e67cfeb3563d9ecd68ed83;hb=08aad9a8c5ad279759e0a870b1dd0d8159ce3444;hpb=507c264f37ff3122dd2f9406cefad01a205f5284 diff --git a/socket_server.c b/socket_server.c index fd18ff5..166080d 100644 --- a/socket_server.c +++ b/socket_server.c @@ -15,7 +15,7 @@ #include -char *socket_name = SOCKET_NAME; +char socket_name[128]; int sock = -1; struct sockaddr_un sock_address; @@ -36,6 +36,7 @@ int admin_init(void) } fhuse++; memset(&sock_address, 0, sizeof(sock_address)); + SPRINT(socket_name, SOCKET_NAME, options.lock); sock_address.sun_family = AF_UNIX; UCPY(sock_address.sun_path, socket_name); unlink(socket_name); @@ -66,6 +67,10 @@ int admin_init(void) PERROR("Failed to set socket \"%s\" into non-blocking mode. (errno=%d)\n", sock_address.sun_path, errno); return(-1); } + if (chmod(socket_name, options.socketrights) < 0) + { + PERROR("Failed to change socket rigts to %d. (errno=%d)\n", options.socketrights, errno); + } return(0); } @@ -176,6 +181,8 @@ void admin_cleanup(void) close(sock); fhuse--; } + + unlink(socket_name); } @@ -185,7 +192,7 @@ void admin_cleanup(void) int admin_interface(struct admin_queue **responsep) { struct admin_queue *response; /* response pointer */ - char *err_txt = ""; + const char *err_txt = ""; int err = 0; if (read_interfaces()) @@ -562,7 +569,7 @@ int admin_call(struct admin_list *admin, struct admin_message *msg) /* * this function is called for response whenever a call state changes. */ -void admin_call_response(int adminid, int message, char *connected, int cause, int location, int notify) +void admin_call_response(int adminid, int message, const char *connected, int cause, int location, int notify) { struct admin_list *admin; struct admin_queue *response, **responsep; /* response pointer */ @@ -919,6 +926,7 @@ int admin_state(struct admin_queue **responsep) response->am[num].u.i.busy[i] = mISDNport->b_state[i]; if (mISDNport->b_port[i]) response->am[num].u.i.port[i] = mISDNport->b_port[i]->p_serial; + response->am[num].u.i.mode[i] = mISDNport->b_mode[i]; i++; } }