Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | static int _netopen6 (char *, char *, int); | - |
23 | | - |
24 | | - |
25 | static int _netopen (char *, char *, int); | - |
26 | static int | - |
27 | _netopen6 (host, serv, typ) | - |
28 | char *host, *serv; | - |
29 | int typ; | - |
30 | { | - |
31 | int s, e; | - |
32 | struct addrinfo hints, *res, *res0; | - |
33 | int gerr; | - |
34 | | - |
35 | memset ((char *)&hints, 0, sizeof (hints)); | - |
36 | | - |
37 | | - |
38 | hints.ai_family = | - |
39 | 2 | - |
40 | ; | - |
41 | | - |
42 | | - |
43 | | - |
44 | hints.ai_socktype = (TRUE | never evaluated | FALSE | never evaluated |
typ == 't')TRUE | never evaluated | FALSE | never evaluated |
? | 0 |
45 | SOCK_STREAM | - |
46 | : | - |
47 | SOCK_DGRAM | - |
48 | ; | - |
49 | | - |
50 | gerr = getaddrinfo (host, serv, &hints, &res0); | - |
51 | if (gerrTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
52 | { | - |
53 | if (gerr == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
54 | -8TRUE | never evaluated | FALSE | never evaluated |
| 0 |
55 | ) | - |
56 | internal_error ("%s: %s", serv, gai_strerror (gerr)); never executed: internal_error ("%s: %s", serv, gai_strerror (gerr)); | 0 |
57 | else | - |
58 | internal_error ("%s: %s", host, gai_strerror (gerr)); never executed: internal_error ("%s: %s", host, gai_strerror (gerr)); | 0 |
59 | | - |
60 | (*__errno_location ()) | - |
61 | = | - |
62 | 22 | - |
63 | ; | - |
64 | return never executed: return -1; -1;never executed: return -1; | 0 |
65 | } | - |
66 | | - |
67 | for (res = res0; resTRUE | never evaluated | FALSE | never evaluated |
; res = res->ai_next) | 0 |
68 | { | - |
69 | if ((TRUE | never evaluated | FALSE | never evaluated |
s = socket (res->ai_family, res->ai_socktype, res->ai_protocol)) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
70 | { | - |
71 | if (res->ai_nextTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
72 | continue; never executed: continue; | 0 |
73 | sys_error ("socket"); | - |
74 | freeaddrinfo (res0); | - |
75 | return never executed: return -1; -1;never executed: return -1; | 0 |
76 | } | - |
77 | if (connect (s, res->ai_addr, res->ai_addrlen) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
78 | { | - |
79 | if (res->ai_nextTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
80 | { | - |
81 | close (s); | - |
82 | continue; never executed: continue; | 0 |
83 | } | - |
84 | e = | - |
85 | (*__errno_location ()) | - |
86 | ; | - |
87 | sys_error ("connect"); | - |
88 | close (s); | - |
89 | freeaddrinfo (res0); | - |
90 | | - |
91 | (*__errno_location ()) | - |
92 | = e; | - |
93 | return never executed: return -1; -1;never executed: return -1; | 0 |
94 | } | - |
95 | freeaddrinfo (res0); | - |
96 | break; never executed: break; | 0 |
97 | } | - |
98 | return never executed: return s; s;never executed: return s; | 0 |
99 | } | - |
100 | | - |
101 | | - |
102 | | - |
103 | | - |
104 | | - |
105 | | - |
106 | | - |
107 | static int | - |
108 | _netopen(host, serv, typ) | - |
109 | char *host, *serv; | - |
110 | int typ; | - |
111 | { | - |
112 | | - |
113 | return never executed: return (_netopen6 (host, serv, typ)); (_netopen6 (host, serv, typ));never executed: return (_netopen6 (host, serv, typ)); | 0 |
114 | | - |
115 | | - |
116 | | - |
117 | } | - |
118 | | - |
119 | | - |
120 | | - |
121 | | - |
122 | | - |
123 | int | - |
124 | netopen (path) | - |
125 | char *path; | - |
126 | { | - |
127 | char *np, *s, *t; | - |
128 | int fd; | - |
129 | | - |
130 | np = (char *)sh_xmalloc((strlen (path) + 1), "netopen.c", 299); | - |
131 | strcpy (np, path); | - |
132 | | - |
133 | s = np + 9; | - |
134 | t = | - |
135 | (__extension__ (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
136 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
137 | )TRUE | never evaluated | FALSE | never evaluated |
&& !__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
138 | sTRUE | never evaluated | FALSE | never evaluated |
| 0 |
139 | )TRUE | never evaluated | FALSE | never evaluated |
&& (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
140 | '/'TRUE | never evaluated | FALSE | never evaluated |
| 0 |
141 | ) == '\0'TRUE | never evaluated | FALSE | never evaluated |
? (char *) __rawmemchr ( | 0 |
142 | s | - |
143 | , | - |
144 | '/' | - |
145 | ) : __builtin_strchr ( | - |
146 | s | - |
147 | , | - |
148 | '/' | - |
149 | ))) | - |
150 | ; | - |
151 | if (t == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
152 | { | - |
153 | internal_error ( | - |
154 | dcgettext (((void *)0), | - |
155 | "%s: bad network path specification" | - |
156 | , 5) | - |
157 | , path); | - |
158 | sh_xfree((np), "netopen.c", 307); | - |
159 | return never executed: return -1; -1;never executed: return -1; | 0 |
160 | } | - |
161 | *t++ = '\0'; | - |
162 | fd = _netopen (s, t, path[5]); | - |
163 | sh_xfree((np), "netopen.c", 312); | - |
164 | | - |
165 | return never executed: return fd; fd;never executed: return fd; | 0 |
166 | } | - |
| | |