~jsvoboda/helenos/dnsr

« back to all changes in this revision

Viewing changes to uspace/srv/net/dnsres/transport.c

  • Committer: Jiri Svoboda
  • Date: 2012-08-13 10:40:17 UTC
  • Revision ID: jiri@wiwaxia-20120813104017-t9y6pdrjuky39557
Terminate UDP receive fibril when socket is closed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
        void *req_data;
52
52
        size_t req_size;
53
53
        struct sockaddr_in addr;
 
54
        struct sockaddr_in laddr;
54
55
        int fd;
55
56
 
56
57
        addr.sin_family = AF_INET;
57
58
        addr.sin_port = htons(53);
58
 
        addr.sin_addr.s_addr = htonl((192 << 24) | (168 << 16) | (0 << 8) | 1);
 
59
        addr.sin_addr.s_addr = htonl((10 << 24) | (0 << 16) | (0 << 8) | 1);
 
60
 
 
61
        laddr.sin_family = AF_INET;
 
62
        laddr.sin_port = htons(12345);
 
63
        laddr.sin_addr.s_addr = INADDR_ANY;
59
64
 
60
65
        req_data = NULL;
61
66
        fd = -1;
70
75
                goto error;
71
76
        }
72
77
 
 
78
        rc = bind(fd, (struct sockaddr *)&laddr, sizeof(laddr));
 
79
        if (rc != EOK)
 
80
                goto error;
 
81
 
73
82
        printf("fd=%d req_data=%p, req_size=%zu\n", fd, req_data, req_size);
74
83
        rc = sendto(fd, req_data, req_size, 0, (struct sockaddr *)&addr,
75
84
            sizeof(addr));
76
85
        if (rc != EOK)
77
86
                goto error;
78
87
 
 
88
        closesocket(fd);
 
89
        free(req_data);
 
90
 
79
91
        resp = NULL;
80
92
        *rresp = resp;
81
93
        return EOK;