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;