aboutsummaryrefslogtreecommitdiff
path: root/src/gns/nss/nss_gns_query.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-10-05 15:09:28 +0200
committerChristian Grothoff <christian@grothoff.org>2019-10-05 15:09:28 +0200
commitc4e9ba925ffd758aaa3feee2ccfc0b76f26fe207 (patch)
treecac3ce030d77b4cbe7c7dc62ed58cfe6d24f73e1 /src/gns/nss/nss_gns_query.c
parentfbb71d527c7d6babf269a8fefce1db291b9f7068 (diff)
downloadgnunet-c4e9ba925ffd758aaa3feee2ccfc0b76f26fe207.tar.gz
gnunet-c4e9ba925ffd758aaa3feee2ccfc0b76f26fe207.zip
global reindent, now with uncrustify hook enabled
Diffstat (limited to 'src/gns/nss/nss_gns_query.c')
-rw-r--r--src/gns/nss/nss_gns_query.c138
1 files changed, 69 insertions, 69 deletions
diff --git a/src/gns/nss/nss_gns_query.c b/src/gns/nss/nss_gns_query.c
index 8af618618..fb431919b 100644
--- a/src/gns/nss/nss_gns_query.c
+++ b/src/gns/nss/nss_gns_query.c
@@ -33,12 +33,12 @@
33#define TIMEOUT "5s" 33#define TIMEOUT "5s"
34 34
35static void 35static void
36kwait(pid_t chld) 36kwait (pid_t chld)
37{ 37{
38 int ret; 38 int ret;
39 39
40 kill(chld, SIGKILL); 40 kill (chld, SIGKILL);
41 waitpid(chld, &ret, 0); 41 waitpid (chld, &ret, 0);
42} 42}
43 43
44 44
@@ -55,7 +55,7 @@ kwait(pid_t chld)
55 * else 0 55 * else 0
56 */ 56 */
57int 57int
58gns_resolve_name(int af, const char *name, struct userdata *u) 58gns_resolve_name (int af, const char *name, struct userdata *u)
59{ 59{
60 FILE *p; 60 FILE *p;
61 char line[128]; 61 char line[128];
@@ -63,85 +63,85 @@ gns_resolve_name(int af, const char *name, struct userdata *u)
63 int out[2]; 63 int out[2];
64 pid_t pid; 64 pid_t pid;
65 65
66 if (0 != pipe(out)) 66 if (0 != pipe (out))
67 return -1; 67 return -1;
68 pid = fork(); 68 pid = fork ();
69 if (-1 == pid) 69 if (-1 == pid)
70 return -1; 70 return -1;
71 if (0 == pid) 71 if (0 == pid)
72 { 72 {
73 char *argv[] = { "gnunet-gns", 73 char *argv[] = { "gnunet-gns",
74 "-r", 74 "-r",
75 "-t", 75 "-t",
76 (AF_INET6 == af) ? "AAAA" : "A", 76 (AF_INET6 == af) ? "AAAA" : "A",
77 "-u", 77 "-u",
78 (char *)name, 78 (char *) name,
79 "-T", 79 "-T",
80 TIMEOUT, 80 TIMEOUT,
81 NULL }; 81 NULL };
82 82
83 (void)close(STDOUT_FILENO); 83 (void) close (STDOUT_FILENO);
84 if ((0 != close(out[0])) || 84 if ((0 != close (out[0])) ||
85 (STDOUT_FILENO != dup2(out[1], STDOUT_FILENO))) 85 (STDOUT_FILENO != dup2 (out[1], STDOUT_FILENO)))
86 _exit(1); 86 _exit (1);
87 (void)execvp("gnunet-gns", argv); 87 (void) execvp ("gnunet-gns", argv);
88 _exit(1); 88 _exit (1);
89 } 89 }
90 (void)close(out[1]); 90 (void) close (out[1]);
91 p = fdopen(out[0], "r"); 91 p = fdopen (out[0], "r");
92 if (NULL == p) 92 if (NULL == p)
93 {
94 kwait (pid);
95 return -1;
96 }
97 while (NULL != fgets (line, sizeof(line), p))
98 {
99 if (u->count >= MAX_ENTRIES)
100 break;
101 if (line[strlen (line) - 1] == '\n')
93 { 102 {
94 kwait(pid); 103 line[strlen (line) - 1] = '\0';
95 return -1; 104 if (AF_INET == af)
96 } 105 {
97 while (NULL != fgets(line, sizeof(line), p)) 106 if (inet_pton (af, line, &u->data.ipv4[u->count]))
98 { 107 {
99 if (u->count >= MAX_ENTRIES) 108 u->count++;
100 break; 109 u->data_len += sizeof(ipv4_address_t);
101 if (line[strlen(line) - 1] == '\n') 110 }
111 else
112 {
113 (void) fclose (p);
114 kwait (pid);
115 errno = EINVAL;
116 return -1;
117 }
118 }
119 else if (AF_INET6 == af)
120 {
121 if (inet_pton (af, line, &u->data.ipv6[u->count]))
122 {
123 u->count++;
124 u->data_len += sizeof(ipv6_address_t);
125 }
126 else
102 { 127 {
103 line[strlen(line) - 1] = '\0'; 128 (void) fclose (p);
104 if (AF_INET == af) 129 kwait (pid);
105 { 130 errno = EINVAL;
106 if (inet_pton(af, line, &u->data.ipv4[u->count])) 131 return -1;
107 {
108 u->count++;
109 u->data_len += sizeof(ipv4_address_t);
110 }
111 else
112 {
113 (void)fclose(p);
114 kwait(pid);
115 errno = EINVAL;
116 return -1;
117 }
118 }
119 else if (AF_INET6 == af)
120 {
121 if (inet_pton(af, line, &u->data.ipv6[u->count]))
122 {
123 u->count++;
124 u->data_len += sizeof(ipv6_address_t);
125 }
126 else
127 {
128 (void)fclose(p);
129 kwait(pid);
130 errno = EINVAL;
131 return -1;
132 }
133 }
134 } 132 }
133 }
135 } 134 }
136 (void)fclose(p); 135 }
137 waitpid(pid, &ret, 0); 136 (void) fclose (p);
138 if (!WIFEXITED(ret)) 137 waitpid (pid, &ret, 0);
138 if (! WIFEXITED (ret))
139 return -1; 139 return -1;
140 if (4 == WEXITSTATUS(ret)) 140 if (4 == WEXITSTATUS (ret))
141 return -2; /* not for GNS */ 141 return -2; /* not for GNS */
142 if (3 == ret) 142 if (3 == ret)
143 return -3; /* timeout -> not found */ 143 return -3; /* timeout -> not found */
144 if ((2 == WEXITSTATUS(ret)) || (1 == WEXITSTATUS(ret))) 144 if ((2 == WEXITSTATUS (ret)) || (1 == WEXITSTATUS (ret)))
145 return -2; /* launch failure -> service unavailable */ 145 return -2; /* launch failure -> service unavailable */
146 return 0; 146 return 0;
147} 147}