aboutsummaryrefslogtreecommitdiff
path: root/src/gns/nss/nss_gns_query.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2012-09-29 22:29:39 +0000
committerChristian Grothoff <christian@grothoff.org>2012-09-29 22:29:39 +0000
commitae2c79e76ba294b1132b44230aec3c456ef83824 (patch)
tree6c1b851bb5b9b71fb0a50460e0a1389a41c3fdb9 /src/gns/nss/nss_gns_query.c
parent9533351f60cd5d4089c8449912d7494ad02462e1 (diff)
downloadgnunet-ae2c79e76ba294b1132b44230aec3c456ef83824.tar.gz
gnunet-ae2c79e76ba294b1132b44230aec3c456ef83824.zip
-fixing style issue
Diffstat (limited to 'src/gns/nss/nss_gns_query.c')
-rw-r--r--src/gns/nss/nss_gns_query.c92
1 files changed, 48 insertions, 44 deletions
diff --git a/src/gns/nss/nss_gns_query.c b/src/gns/nss/nss_gns_query.c
index b8f6c164d..4ce903e48 100644
--- a/src/gns/nss/nss_gns_query.c
+++ b/src/gns/nss/nss_gns_query.c
@@ -33,70 +33,74 @@
33 * @param u the userdata (result struct) 33 * @param u the userdata (result struct)
34 * @return -1 on error else 0 34 * @return -1 on error else 0
35 */ 35 */
36int gns_resolve_name(int af, const char *name, struct userdata *u) 36int
37gns_resolve_name (int af,
38 const char *name,
39 struct userdata *u)
37{ 40{
38 FILE *p; 41 FILE *p;
39 char *cmd; 42 char *cmd;
40 char line[128]; 43 char line[128];
41 44
42 if (af == AF_INET6) 45 if (AF_INET6 == af)
43 { 46 {
44 if (-1 == asprintf(&cmd, "%s -t AAAA -u %s\n", "gnunet-gns -r", name)) 47 if (-1 == asprintf (&cmd,
48 "%s -t AAAA -u %s\n",
49 "gnunet-gns -r", name))
45 return -1; 50 return -1;
46 } 51 }
47 else 52 else
48 { 53 {
49 if (-1 == asprintf(&cmd, "%s %s\n", "gnunet-gns -r -u", name)) 54 if (-1 == asprintf (&cmd,
55 "%s %s\n",
56 "gnunet-gns -r -u", name))
50 return -1; 57 return -1;
51 } 58 }
52 59 if (NULL == (p = popen (cmd, "r")))
53 p = popen(cmd,"r"); 60 {
54 61 free (cmd);
55 if (p != NULL ) 62 return -1;
63 }
64 while (NULL != fgets (line, sizeof(line), p))
56 { 65 {
57 while (fgets( line, sizeof(line), p ) != NULL) 66 if (u->count >= MAX_ENTRIES)
67 break;
68 if (line[strlen(line)-1] == '\n')
58 { 69 {
59 70 line[strlen(line)-1] = '\0';
60 if (u->count >= MAX_ENTRIES) 71 if (AF_INET == af)
61 break;
62
63 if (line[strlen(line)-1] == '\n')
64 { 72 {
65 line[strlen(line)-1] = '\0'; 73 if (inet_pton(af, line, &(u->data.ipv4[u->count])))
66 if (af == AF_INET)
67 { 74 {
68 if (inet_pton(af, line, &(u->data.ipv4[u->count]))) 75 u->count++;
69 { 76 u->data_len += sizeof(ipv4_address_t);
70 u->count++; 77 }
71 u->data_len += sizeof(ipv4_address_t); 78 else
72 } 79 {
73 else 80 fclose (p);
74 { 81 free (cmd);
75 fclose (p); 82 return -1;
76 free (cmd); 83 }
77 return -1; 84 }
78 } 85 else if (AF_INET6 == af)
79 } 86 {
80 else if ((af == AF_INET6)) 87 if (inet_pton(af, line, &(u->data.ipv6[u->count])))
88 {
89 u->count++;
90 u->data_len += sizeof(ipv6_address_t);
91 }
92 else
81 { 93 {
82 if (inet_pton(af, line, &(u->data.ipv6[u->count]))) 94 fclose (p);
83 { 95 free (cmd);
84 u->count++; 96 return -1;
85 u->data_len += sizeof(ipv6_address_t); 97 }
86 }
87 else
88 {
89 fclose (p);
90 free (cmd);
91 return -1;
92 }
93 }
94 } 98 }
95 } 99 }
96 fclose (p);
97 } 100 }
101 fclose (p);
98 free (cmd); 102 free (cmd);
99
100 return 0; 103 return 0;
101
102} 104}
105
106/* end of nss_gns_query.c */