Lines Matching full:syscall
10 "syscall"
20 p, err := syscall.GetProtoByName(name)
68 h, err := syscall.GetHostByName(name)
73 case syscall.AF_INET:
81 return nil, syscall.EWINDOWS
112 hints := syscall.AddrinfoW{
113 Family: syscall.AF_UNSPEC,
114 Socktype: syscall.SOCK_STREAM,
115 Protocol: syscall.IPPROTO_IP,
117 var result *syscall.AddrinfoW
118 e := syscall.GetAddrInfoW(syscall.StringToUTF16Ptr(name), nil, &hints, &result)
122 defer syscall.FreeAddrInfoW(result)
127 case syscall.AF_INET:
128 a := (*syscall.RawSockaddrInet4)(addr).Addr
130 case syscall.AF_INET6:
131 a := (*syscall.RawSockaddrInet6)(addr).Addr
132 zone := zoneToString(int((*syscall.RawSockaddrInet6)(addr).Scope_id))
135 return nil, &DNSError{Err: syscall.EWINDOWS.Error(), Name: name}
150 s, err := syscall.GetServByName(service, network)
154 return int(syscall.Ntohs(s.Port)), nil
186 stype = syscall.SOCK_STREAM
188 stype = syscall.SOCK_DGRAM
190 hints := syscall.AddrinfoW{
191 Family: syscall.AF_UNSPEC,
193 Protocol: syscall.IPPROTO_IP,
195 var result *syscall.AddrinfoW
196 e := syscall.GetAddrInfoW(nil, syscall.StringToUTF16Ptr(service), &hints, &result)
200 defer syscall.FreeAddrInfoW(result)
202 return 0, &DNSError{Err: syscall.EINVAL.Error(), Name: network + "/" + service}
206 case syscall.AF_INET:
207 a := (*syscall.RawSockaddrInet4)(addr)
208 return int(syscall.Ntohs(a.Port)), nil
209 case syscall.AF_INET6:
210 a := (*syscall.RawSockaddrInet6)(addr)
211 return int(syscall.Ntohs(a.Port)), nil
213 return 0, &DNSError{Err: syscall.EINVAL.Error(), Name: network + "/" + service}
219 var r *syscall.DNSRecord
220 e := syscall.DnsQuery(name, syscall.DNS_TYPE_CNAME, 0, nil, &r, nil)
222 if errno, ok := e.(syscall.Errno); ok && errno == syscall.DNS_INFO_NO_RECORDS {
232 defer syscall.DnsRecordListFree(r, 1)
234 resolved := resolveCNAME(syscall.StringToUTF16Ptr(name), r)
235 cname := syscall.UTF16ToString((*[256]uint16)(unsafe.Pointer(resolved))[:]) + "."
248 var r *syscall.DNSRecord
249 e := syscall.DnsQuery(target, syscall.DNS_TYPE_SRV, 0, nil, &r, nil)
253 defer syscall.DnsRecordListFree(r, 1)
256 for _, p := range validRecs(r, syscall.DNS_TYPE_SRV, target) {
257 v := (*syscall.DNSSRVData)(unsafe.Pointer(&p.Data[0]))
258 srvs = append(srvs, &SRV{syscall.UTF16ToString((*[256]uint16)(unsafe.Pointer(v.Target))[:]), v.Port, v.Priority, v.Weight})
267 var r *syscall.DNSRecord
268 e := syscall.DnsQuery(name, syscall.DNS_TYPE_MX, 0, nil, &r, nil)
272 defer syscall.DnsRecordListFree(r, 1)
275 for _, p := range validRecs(r, syscall.DNS_TYPE_MX, name) {
276 v := (*syscall.DNSMXData)(unsafe.Pointer(&p.Data[0]))
277 mxs = append(mxs, &MX{syscall.UTF16ToString((*[256]uint16)(unsafe.Pointer(v.NameExchange))[:]) + ".", v.Preference})
286 var r *syscall.DNSRecord
287 e := syscall.DnsQuery(name, syscall.DNS_TYPE_NS, 0, nil, &r, nil)
291 defer syscall.DnsRecordListFree(r, 1)
294 for _, p := range validRecs(r, syscall.DNS_TYPE_NS, name) {
295 v := (*syscall.DNSPTRData)(unsafe.Pointer(&p.Data[0]))
296 nss = append(nss, &NS{syscall.UTF16ToString((*[256]uint16)(unsafe.Pointer(v.Host))[:]) + "."})
304 var r *syscall.DNSRecord
305 e := syscall.DnsQuery(name, syscall.DNS_TYPE_TEXT, 0, nil, &r, nil)
309 defer syscall.DnsRecordListFree(r, 1)
312 for _, p := range validRecs(r, syscall.DNS_TYPE_TEXT, name) {
313 d := (*syscall.DNSTXTData)(unsafe.Pointer(&p.Data[0]))
315 s := syscall.UTF16ToString((*[1 << 20]uint16)(unsafe.Pointer(v))[:])
329 var r *syscall.DNSRecord
330 e := syscall.DnsQuery(arpa, syscall.DNS_TYPE_PTR, 0, nil, &r, nil)
334 defer syscall.DnsRecordListFree(r, 1)
337 for _, p := range validRecs(r, syscall.DNS_TYPE_PTR, arpa) {
338 v := (*syscall.DNSPTRData)(unsafe.Pointer(&p.Data[0]))
339 ptrs = append(ptrs, syscall.UTF16ToString((*[256]uint16)(unsafe.Pointer(v.Host))[:]))
347 func validRecs(r *syscall.DNSRecord, dnstype uint16, name string) []*syscall.DNSRecord {
348 cname := syscall.StringToUTF16Ptr(name)
349 if dnstype != syscall.DNS_TYPE_CNAME {
352 rec := make([]*syscall.DNSRecord, 0, 10)
354 if p.Dw&dnsSectionMask != syscall.DnsSectionAnswer {
360 if !syscall.DnsNameCompare(cname, p.Name) {
369 func resolveCNAME(name *uint16, r *syscall.DNSRecord) *uint16 {
374 if p.Dw&dnsSectionMask != syscall.DnsSectionAnswer {
377 if p.Type != syscall.DNS_TYPE_CNAME {
380 if !syscall.DnsNameCompare(name, p.Name) {
383 name = (*syscall.DNSPTRData)(unsafe.Pointer(&r.Data[0])).Host