FreeCalypso > hg > freecalypso-sw
comparison rvinterf/lowlevel/localsock.c @ 195:549e6cd1e77d
rvinterf: support for socketpair invokation
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Tue, 26 Nov 2013 20:23:38 +0000 |
parents | f5f8776f7c66 |
children | 2f285f20d617 |
comparison
equal
deleted
inserted
replaced
194:9e4771bf865f | 195:549e6cd1e77d |
---|---|
16 int listener; | 16 int listener; |
17 | 17 |
18 extern struct client *client_head; | 18 extern struct client *client_head; |
19 extern int max_fd; | 19 extern int max_fd; |
20 extern char *socket_pathname; | 20 extern char *socket_pathname; |
21 extern int socketpair_fd; | |
21 | 22 |
22 create_listener_socket() | 23 create_listener_socket() |
23 { | 24 { |
24 /* local socket binding voodoo copied from osmocon */ | 25 /* local socket binding voodoo copied from osmocon */ |
25 struct sockaddr_un local; | 26 struct sockaddr_un local; |
110 prep_for_length_rx(newcli); | 111 prep_for_length_rx(newcli); |
111 output_line("*** Client program connected"); | 112 output_line("*** Client program connected"); |
112 return(0); | 113 return(0); |
113 } | 114 } |
114 | 115 |
116 create_socketpair_client() | |
117 { | |
118 struct client *cli; | |
119 | |
120 if (socketpair_fd > max_fd) | |
121 max_fd = socketpair_fd; | |
122 cli = malloc(sizeof(struct client)); | |
123 if (!cli) { | |
124 perror("rvinterf: malloc for socketpair client"); | |
125 exit(1); | |
126 } | |
127 bzero(cli, sizeof(struct client)); | |
128 cli->fd = socketpair_fd; | |
129 client_head = cli; | |
130 prep_for_length_rx(cli); | |
131 return(0); | |
132 } | |
133 | |
115 send_local_msg_to_client(cli, msg) | 134 send_local_msg_to_client(cli, msg) |
116 struct client *cli; | 135 struct client *cli; |
117 char *msg; | 136 char *msg; |
118 { | 137 { |
119 int len, len1; | 138 int len, len1; |