64 }
65
66 static ssize_t
67 pt_socket_send(void *handle, void *buf, size_t len)
68 {
69 s_handle_t *sh = handle;
70
71 return (send(sh->sockfd, buf, len, 0));
72 }
73
74 static void *
75 pt_socket_connect(int server_node, char *server)
76 {
77 int sfd, new_sfd;
78 s_handle_t *sh = NULL;
79 int on = 1;
80 struct sockaddr_in cli_addr, serv_addr;
81 struct sockaddr_in sin;
82 int cliLen = sizeof (cli_addr);
83
84 if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) <= 0) {
85 syslog(LOG_DAEMON|LOG_WARNING,
86 "socket() call failed: %d", errno);
87 return (NULL);
88 }
89
90 if (server_node) {
91
92 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &on,
93 sizeof (on)) < 0) {
94 syslog(LOG_DAEMON|LOG_WARNING,
95 "setsockopt() failed: %d", errno);
96 goto serv_out;
97 }
98
99 bzero(&serv_addr, sizeof (serv_addr));
100 serv_addr.sin_family = AF_INET;
101 serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
102 /* XXX get from smf? */
103 serv_addr.sin_port = htons(6543);
104
|
64 }
65
66 static ssize_t
67 pt_socket_send(void *handle, void *buf, size_t len)
68 {
69 s_handle_t *sh = handle;
70
71 return (send(sh->sockfd, buf, len, 0));
72 }
73
74 static void *
75 pt_socket_connect(int server_node, char *server)
76 {
77 int sfd, new_sfd;
78 s_handle_t *sh = NULL;
79 int on = 1;
80 struct sockaddr_in cli_addr, serv_addr;
81 struct sockaddr_in sin;
82 int cliLen = sizeof (cli_addr);
83
84 if ((sfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
85 syslog(LOG_DAEMON|LOG_WARNING,
86 "socket() call failed: %d", errno);
87 return (NULL);
88 }
89
90 if (server_node) {
91
92 if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &on,
93 sizeof (on)) < 0) {
94 syslog(LOG_DAEMON|LOG_WARNING,
95 "setsockopt() failed: %d", errno);
96 goto serv_out;
97 }
98
99 bzero(&serv_addr, sizeof (serv_addr));
100 serv_addr.sin_family = AF_INET;
101 serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
102 /* XXX get from smf? */
103 serv_addr.sin_port = htons(6543);
104
|