~ubuntu-branches/ubuntu/natty/shishi/natty

« back to all changes in this revision

Viewing changes to lib/netio.c

  • Committer: Bazaar Package Importer
  • Author(s): Simon Josefsson
  • Date: 2010-05-20 21:10:28 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20100520211028-n4a7e5gx7f596dnz
Tags: 1.0.0-1
New upstream version.

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
static int
35
35
sendrecv_udp (Shishi * handle,
36
36
              struct addrinfo *ai,
37
 
              const char *indata, int inlen,
38
 
              char **outdata, size_t * outlen)
 
37
              const char *indata, int inlen, char **outdata, size_t * outlen)
39
38
{
40
39
  char tmpbuf[BUFSIZ];          /* XXX can we do without it?
41
40
                                   MSG_PEEK|MSG_TRUNC doesn't work for udp.. */
107
106
static int
108
107
sendrecv_tcp (Shishi * handle,
109
108
              struct addrinfo *ai,
110
 
              const char *indata, int inlen,
111
 
              char **outdata, size_t * outlen)
 
109
              const char *indata, int inlen, char **outdata, size_t * outlen)
112
110
{
113
111
  char tmpbuf[BUFSIZ];          /* XXX can we do without it?
114
112
                                   MSG_PEEK|MSG_TRUNC doesn't work for udp.. */
231
229
      size_t j = 0;
232
230
 
233
231
      rc = getnameinfo (ai->ai_addr, ai->ai_addrlen,
234
 
                        nodename, sizeof (nodename),
235
 
                        NULL, 0, NI_NUMERICHOST);
 
232
                        nodename, sizeof (nodename), NULL, 0, NI_NUMERICHOST);
236
233
      shishi_verbose (handle, "Sending to %s (%s) port %s transport %s",
237
234
                      host, rc == 0 ? nodename : "unknown address", port,
238
235
                      _shishi_transport2string (transport));
241
238
        {
242
239
          if (transport == TCP)
243
240
            rc = sendrecv_tcp (handle, ai, indata, inlen, outdata, outlen);
 
241
#ifdef USE_STARTTLS
244
242
          else if (transport == TLS)
245
243
            rc = _shishi_sendrecv_tls (handle, ai, indata, inlen,
246
244
                                       outdata, outlen);
 
245
#endif
247
246
          else
248
247
            rc = sendrecv_udp (handle, ai, indata, inlen, outdata, outlen);
249
248
 
264
263
               const char *realm,
265
264
               const char *indata, size_t inlen,
266
265
               char **outdata, size_t * outlen,
267
 
               Shishi_dns rrs,
268
 
               bool *found_srv_records)
 
266
               Shishi_dns rrs, bool * found_srv_records)
269
267
{
270
268
  int rc = SHISHI_KDC_NOT_KNOWN_FOR_REALM;
271
269
 
285
283
 
286
284
      port = xasprintf ("%d", srv->port);
287
285
      rc = sendrecv_host (handle, transport,
288
 
                          srv->name, port,
289
 
                          indata, inlen,
290
 
                          outdata, outlen);
 
286
                          srv->name, port, indata, inlen, outdata, outlen);
291
287
      free (port);
292
288
 
293
289
      if (rc == SHISHI_OK)
302
298
               int transport,
303
299
               const char *realm,
304
300
               const char *indata, size_t inlen,
305
 
               char **outdata, size_t * outlen,
306
 
               bool *found_srv_records)
 
301
               char **outdata, size_t * outlen, bool * found_srv_records)
307
302
{
308
303
  Shishi_dns rrs;
309
304
  char *tmp;
332
327
static int
333
328
sendrecv_srv (Shishi * handle, const char *realm,
334
329
              const char *indata, size_t inlen,
335
 
              char **outdata, size_t * outlen,
336
 
              bool *found_srv_records)
 
330
              char **outdata, size_t * outlen, bool * found_srv_records)
337
331
{
338
332
  int rc = sendrecv_srv2 (handle, UDP, realm, indata, inlen,
339
333
                          outdata, outlen, found_srv_records);
405
399
  ri = _shishi_realminfo (handle, realm);
406
400
  if (ri && ri->nkdcaddresses > 0)
407
401
    /* If we have configured KDCs, never use DNS or direct method. */
408
 
    return sendrecv_static (handle, realm, indata, inlen,
409
 
                            outdata, outlen);
 
402
    return sendrecv_static (handle, realm, indata, inlen, outdata, outlen);
410
403
 
411
404
  rc = sendrecv_srv (handle, realm, indata, inlen, outdata, outlen,
412
405
                     &found_srv_records);